Я создаю программу, которая позволяет студентам прогнозировать их прогресс в конце каждого учебного года.
1 б: Результаты прогрессирования в соответствии с правилами университета. Объем кредита на каждом уровне. Первая цифра Pass - вторая цифра Pass Defer, третья цифра - Fail
Я уже внес это в свою программу. однако меня попросили внедрить в программу функцию диапазона, так что если кто-то вводит что-либо, кроме 0, 20, 40, 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, deferCR, failCR)
print ("progress")
elif passCR == 100 and deferCR == 20 and failCR== 0: #2
print("Your pass, defer and fail credits are",passCR, deferCR, failCR)
print ("progress - module trailer")
elif passCR == 100 and deferCR == 0 and failCR== 20: #3
print("Your pass, defer and fail credits are",passCR, deferCR, failCR)
print ("progress - module trailer")
elif passCR == 80 and deferCR == 40 and failCR== 0: #4
print("Your pass, defer and fail credits are",passCR, deferCR, failCR)
print ("Do not progress - module trailer")
elif passCR == 80 and deferCR == 20 and failCR== 20: #5
print("Your pass, defer and fail credits are",passCR, deferCR, failCR)
print ("Do not progress - module trailer")
elif passCR == 80 and deferCR == 0 and failCR== 40: #6
print("Your pass, defer and fail credits are",passCR, deferCR, failCR)
print ("Do not progress - module trailer")
elif passCR == 60 and deferCR == 60 and failCR== 0: #7
print("Your pass, defer and fail credits are",passCR, deferCR, failCR)
print ("Do not progress - module trailer")
elif passCR == 60 and deferCR == 40 and failCR== 20: #8
print("Your pass, defer and fail credits are",passCR, deferCR, failCR)
print ("Do not progress - module trailer")
elif passCR == 60 and deferCR == 20 and failCR== 40: #9
print("Your pass, defer and fail credits are",passCR, deferCR, failCR)
print ("Do not progress - module trailer")
elif passCR == 60 and deferCR == 0 and failCR== 60: #10
print("Your pass, defer and fail credits are",passCR, deferCR, failCR)
print ("Do not progress - module trailer")
elif passCR == 40 and deferCR == 80 and failCR== 0: #11
print("Your pass, defer and fail credits are",passCR, deferCR, failCR)
print ("Do not progress - module trailer")
elif passCR == 40 and deferCR == 60 and failCR== 20: #12
print("Your pass, defer and fail credits are",passCR, deferCR, failCR)
print ("Do not progress - module trailer")
elif passCR == 40 and deferCR == 40 and failCR== 40: #13
print("Your pass, defer and fail credits are",passCR, deferCR, failCR)
print ("Do not progress - module trailer")
elif passCR == 40 and deferCR == 20 and failCR== 60: #14
print("Your pass, defer and fail credits are",passCR, deferCR, failCR)
print ("Do not progress - module trailer")
elif passCR == 40 and deferCR == 0 and failCR== 80: #15
print("Your pass, defer and fail credits are",passCR, deferCR, failCR)
print ("Exclude")
elif passCR == 20 and deferCR == 100 and failCR== 0: #16
print("Your pass, defer and fail credits are",passCR, deferCR, failCR)
print ("Do not progress - module trailer")
elif passCR == 20 and deferCR == 80 and failCR== 20: #17
print("Your pass, defer and fail credits are",passCR, deferCR, failCR)
print ("Do not progress - module trailer")
elif passCR == 20 and deferCR == 60 and failCR== 40: #18
print("Your pass, defer and fail credits are",passCR, deferCR, failCR)
print ("Do not progress - module trailer")
elif passCR == 20 and deferCR == 40 and failCR== 60: #19
print("Your pass, defer and fail credits are",passCR, deferCR, failCR)
print ("Do not progress - module trailer")
elif passCR == 20 and deferCR == 20 and failCR== 80: #20
print("Your pass, defer and fail credits are",passCR, deferCR, failCR)
print ("Exclude")
elif passCR == 20 and deferCR == 0 and failCR== 100: #21
print("Exclude",passCR, deferCR, failCR)
print ("Do not progress - module trailer")
elif passCR == 0 and deferCR == 120 and failCR== 0: #22
print("Your pass, defer and fail credits are",passCR, deferCR, failCR)
print ("Do not progress - module trailer")
elif passCR == 0 and deferCR == 100 and failCR== 20: #23
print("Your pass, defer and fail credits are",passCR, deferCR, failCR)
print ("Do not progress - module trailer")
elif passCR == 0 and deferCR == 80 and failCR== 40: #24
print("Your pass, defer and fail credits are",passCR, deferCR, failCR)
print ("Do not progress - module trailer")
elif passCR == 0 and deferCR == 60 and failCR== 60: #25
print("Your pass, defer and fail credits are",passCR, deferCR, failCR)
print ("Do not progress - module trailer")
elif passCR == 0 and deferCR == 40 and failCR== 80: #26
print("Your pass, defer and fail credits are",passCR, deferCR, failCR)
print ("Exclude")
elif passCR == 0 and deferCR == 20 and failCR== 100: #27
print("Your pass, defer and fail credits are",passCR, deferCR, failCR)
print ("Exclude")
elif passCR == 0 and deferCR == 0 and failCR== 120: #28
print("Your pass, defer and fail credits are",passCR, deferCR, failCR)
print ("Exclude")
1 - как я могу реализовать функцию диапазона, которая позволяет пользователю вводить только 0,20, 40,60,80,100,120?
2 - программа также должна сообщить пользователю, что если общая сумма прохода, отсрочки и сбоя не равна 120, тогда он должен получить сообщение «Неверный итог». затем повторите тот же вопрос.
PS Я включил изображения моей программы ниже для более четкого изображения.
https://imgur.com/0PzgE3J https://imgur.com/sSURE4h