我正在制作一个程序,使学生可以在每个学年末预测自己的进度。
表1:大学规定定义的升学结果。 每个级别的信贷量 拳头数字为通行证 第二个数字是Defer 第三位数是失败我已经将此添加到了我的程序中。但是我被要求在程序中实现范围功能,因此,如果有人输入了0、20、40、60、60、80,100和120以外的任何值,则他们将得到一个错误消息,提示“不在范围内”,并再次要求他们输入再次数字。
print(“欢迎来到威斯敏斯特大学成绩计算器”)
while True:
passCR = input("Enter your pass credits")
if passCR.isdigit():
passCR = int(passCR)
break
else:
print("Not an integer Value!try again")
while True:
deferCR = input("Enter your defer credits")
if deferCR.isdigit():
deferCR = int(deferCR)
break
else:
print("Not an integer Value!try again")
while True:
failCR = input("Enter your fail credits")
if failCR.isdigit():
failCR = int(failCR)
break
else:
print("Not an integer Value!try again")
def input_valid_number(which="pass"):
while True:
n = input("enter your {} credits: ".format(which))
try:
n = int(n)
if 0 <= n <= 120 and (n % 20) == 0:
return n
except:
pass
while True:
passCR = input_valid_number("pass")
deferCR = input_valid_number("defer")
failCR = input_valid_number("fail")
if sum([passCR,deferCR,failCR]) == 120:
break
print("Your Total credits do not add up to 120. Please try again!")
if passCR == 120 and deferCR == 0 and failCR== 0: #1
print("Your pass,defer and fail credits are",passCR,failCR)
print ("progress")
elif passCR == 100 and deferCR == 20 and failCR== 0: #2
print("Your pass,failCR)
print ("progress - module trailer")
elif passCR == 100 and deferCR == 0 and failCR== 20: #3
print("Your pass,failCR)
print ("progress - module trailer")
elif passCR == 80 and deferCR == 40 and failCR== 0: #4
print("Your pass,failCR)
print ("Do not progress - module trailer")
elif passCR == 80 and deferCR == 20 and failCR== 20: #5
print("Your pass,failCR)
print ("Do not progress - module trailer")
elif passCR == 80 and deferCR == 0 and failCR== 40: #6
print("Your pass,failCR)
print ("Do not progress - module trailer")
elif passCR == 60 and deferCR == 60 and failCR== 0: #7
print("Your pass,failCR)
print ("Do not progress - module trailer")
elif passCR == 60 and deferCR == 40 and failCR== 20: #8
print("Your pass,failCR)
print ("Do not progress - module trailer")
elif passCR == 60 and deferCR == 20 and failCR== 40: #9
print("Your pass,failCR)
print ("Do not progress - module trailer")
elif passCR == 60 and deferCR == 0 and failCR== 60: #10
print("Your pass,failCR)
print ("Do not progress - module trailer")
elif passCR == 40 and deferCR == 80 and failCR== 0: #11
print("Your pass,failCR)
print ("Do not progress - module trailer")
elif passCR == 40 and deferCR == 60 and failCR== 20: #12
print("Your pass,failCR)
print ("Do not progress - module trailer")
elif passCR == 40 and deferCR == 40 and failCR== 40: #13
print("Your pass,failCR)
print ("Do not progress - module trailer")
elif passCR == 40 and deferCR == 20 and failCR== 60: #14
print("Your pass,failCR)
print ("Do not progress - module trailer")
elif passCR == 40 and deferCR == 0 and failCR== 80: #15
print("Your pass,failCR)
print ("Exclude")
elif passCR == 20 and deferCR == 100 and failCR== 0: #16
print("Your pass,failCR)
print ("Do not progress - module trailer")
elif passCR == 20 and deferCR == 80 and failCR== 20: #17
print("Your pass,failCR)
print ("Do not progress - module trailer")
elif passCR == 20 and deferCR == 60 and failCR== 40: #18
print("Your pass,failCR)
print ("Do not progress - module trailer")
elif passCR == 20 and deferCR == 40 and failCR== 60: #19
print("Your pass,failCR)
print ("Do not progress - module trailer")
elif passCR == 20 and deferCR == 20 and failCR== 80: #20
print("Your pass,failCR)
print ("Exclude")
elif passCR == 20 and deferCR == 0 and failCR== 100: #21
print("Exclude",failCR)
print ("Do not progress - module trailer")
elif passCR == 0 and deferCR == 120 and failCR== 0: #22
print("Your pass,failCR)
print ("Do not progress - module trailer")
elif passCR == 0 and deferCR == 100 and failCR== 20: #23
print("Your pass,failCR)
print ("Do not progress - module trailer")
elif passCR == 0 and deferCR == 80 and failCR== 40: #24
print("Your pass,failCR)
print ("Do not progress - module trailer")
elif passCR == 0 and deferCR == 60 and failCR== 60: #25
print("Your pass,failCR)
print ("Do not progress - module trailer")
elif passCR == 0 and deferCR == 40 and failCR== 80: #26
print("Your pass,failCR)
print ("Exclude")
elif passCR == 0 and deferCR == 20 and failCR== 100: #27
print("Your pass,failCR)
print ("Exclude")
elif passCR == 0 and deferCR == 0 and failCR== 120: #28
print("Your pass,failCR)
print ("Exclude")
1-如何实现仅允许用户输入0、20、40、60、80、100、120的范围功能?
2-该程序还应该让用户知道通过,推迟和失败的总和不是120,那么他们应该得到一条消息“总计不正确”。然后重新运行相同的问题。
我在下面提供了我程序的图像,以使图像更清晰。