- 通过对您截图代码ocr提取并整理,输出能达预期
但代码不符题目要求且有缺陷,比如学号超过8位,应该报错。所以代码结构和“算法”,都还需要调整。
建议下次提问,记得把代码放代码片中,方便答主们cv到本地调试。😄😄😄
ocr截图代码并整理
user_id = input().strip() #判断这个字符串的长度是否符合要求。
if len(user_id) >= 6:
xueli = '本科'if user_id[0] == '4' else '专科'
in_time = '20' + user_id[1:3]
class_id = user_id[3:6]
text = f"{xueli},入学年份: {in_time} 班级:{class_id}班"
print(text)
else:
print('学号输入错误')
拆分学号函数
def idSplit(stuId):
level = stuId[0]
level = '本科' if level == '4' else '专科'
year = stuId[1:3]
classNum = stuId[3:6]
return f"{level},入学年份:20{year},班级:{classNum}班"
- 学号判定函数
python代码
def isId(stuId):
b1 = stuId[0] in list('34')
b2 = 0 < int(stuId[1:3]) <= 23
#b2 = in range(100)
b3 = int(stuId[3:6]) in range(1, 1000)
b4 = int(stuId[6:]) in range(1, 100)
if b1&b2&b3&b4:
return True
else:
print(f"\n{' 学号输入错误!':~^33}")
python代码
def isId(stuId):
from re import findall
countId = len(''.join(findall(r'[34][0-2][0-3]\d{2}[1-9]\d[1-9]', stuId))) # 首位只能是3或4,年份不可大于23,班级不可以是000,学号不可以是00。
if countId == 8:
return True
else:
print(f"\n{' 学号输入错误!':~^33}")
调用函数代码
if __name__ == '__main__':
stuId = input(f'\n请输入八位学号(如41903621):\n{"":>16}_').strip() #判断这个字符串的长度是否符合要求。
stuId = '41903621' if not stuId else stuId
if isId(stuId):
print(f'\n输出:\n{"":>5}', idSplit(stuId))