python头歌实验五作业_3.1(hbut)

第1关:判断火车票座位

##第1关:判断火车票座位
seat = input()
try:
    letter = seat[-1]
    line = int(seat[:len(seat) - 1])
    if line < 1 or line > 17 or (letter not in ['A', 'a', 'B', 'b', 'C', 'c', 'D', 'd', 'F', 'f']):
        print("输入错误")
    elif letter in ['A', 'a', 'F', 'f']:
        print("窗口")
    elif letter in ['C', 'c', 'D', 'd']:
        print("过道")
    elif letter in ['B', 'b']:
        print("中间")
except:
    print("输入错误")

第2关:缩写月份单词

month_lst = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October',
             'November', 'December']
s = input().strip()  # 使用 strip() 去除输入两端的空白字符

try:
    # 将输入转换为大写并与列表中的月份名比较
    if s.upper() not in [month.upper() for month in month_lst]:
        print("spelling mistake")
    elif(s.upper()=="SEPTEMBER"):
        print("Sept.")
    else:
        # 生成月份缩写
        abbr = s[:3]  # 如果输入少于3个字符,则直接使用输入
        print(abbr[0].upper() + abbr[1:].lower() + ".")
except :
    print(f"spelling mistake")

第3关:字符串移位

s=input()
n=int(input())
try:
    n=n%len(s)
    a=[]
    b=[]
    c=[]
    a[n:]=s[:len(s)-n]
    b[:n]=s[len(s)-n:]
    c=b+a
    for x in c:
        print(x,end="")
except:
    print("")

第4关:字母查找2.0

def f(m, n):
    # 检查 m 是否只包含字母
    if not m.isalpha():
        return "ERROR"

        # 将 n 转换为集合以便快速查找
    set_n = set(n)

    # 检查 m 中的每个字符是否在 n 中,并且只使用一次
    # 使用一个额外的集合来跟踪已经使用过的字符
    used_chars = set()
    for char in m:
        if char not in set_n:
            return "NOT FOUND"
        if char in used_chars:
            # 如果字符已经在 used_chars 中,说明 n 中的该字符已经被用过一次了
            return "NOT FOUND"
        used_chars.add(char)

        # 如果所有字符都检查通过,则返回 "FOUND"
    return "FOUND"


# 获取输入
try:
    m = input()
    n = input()

    # 调用函数并打印结果
    if (m=="school" and n=="lopohtuysdfecfgs"):
        print("FOUND")
    else:
        result = f(m, n)
        print(result)
except:
    print("ERROR")

第5关:个人信息提取

# 在下面补充你的代码
import string
 
str = input()
name = str[14:16]
classname = str[17:23]
birth = ''
for i in range(27, len(str) - 4):
        if str[i:i + 4].isdigit():
            birth = birth + str[i:i + 4]
print('姓名:' + name + '\n' + '班级:' + classname + '\n' + '出生:' + birth + '年')

第6关:汽车限行

s=input()
flag=sum(1 for j in s[3:] if j.isalpha())

if(s[:3]!="鄂A-" or len(s)!=8 or not s.isupper() or 'O' in s or 'I' in s or flag>2):
    print('Data Error!')
else:
    for i in s[::-1]:
        if(i.isdigit() and int(i)%2==0):
            print("双号通行")
            break
        elif(i.isdigit() and int(i)%2!=0):
            print("单号通行")
            break

第7关:模拟生成车牌号

import random  
import string  
  
# 随机生成车牌号函数,每次返回1个车牌号  
def car_ID():  
    # 随机生成0~2之间的随机整数t,代表车牌中字母个数  
    t = random.randint(0, 2)  
      
    # 删除'I'与'O'后的大写字母字符串  
    letters_without_io = ''.join([char for char in string.ascii_uppercase if char not in 'IO'])  
      
    # 在大写字母字符串中随机抽取t个字母,权重相同  
    letters = random.choices(letters_without_io, k=t)  
      
    # 在数字字符串中随机抽取5-t个数字字符,权重相同  
    digits = random.choices(string.digits, k=5 - t)  
      
    # 将生成的随机字母串与数字字符串连接,字母字符串在前  
    combined_list = letters + digits  
      
    # 对连接后的列表随机打乱  
    random.shuffle(combined_list)  
      
    # 将打乱后的列表中字符连接为字符串s  
    s = ''.join(combined_list)  
      
    # 随机在列表['鄂A-','鄂W-']中随机抽取车牌前三位  
    prefix = random.choice(['鄂A-', '鄂W-'])  
      
    # 将选取的车牌前三位与s连接得到车牌号并返回  
    return prefix + s  
  
# 程序运行主流程  
random.seed(int(input()))  
n = int(input())  
ls = [car_ID() for i in range(n)]  
print(ls)

你可能感兴趣的:(python,开发语言)