我试图让这段简单的代码只接受来自(0,100)的整数和数字。我不想使用循环来验证我的输入,并希望它们只带着“无效输入”退出。我被这个部分卡住了,因为当我没有有效的输入时,我似乎不能离开("Letter grade:")部分。当我输入字母时,消息不会出现。
这是我目前所掌握的.我是一个初学者,如果有人能帮助我就太好了:)
def convert_grade_to_letter(number_grade):
letter_grade = ''
if number_grade >= 90 and number_grade <= 100:
letter_grade = 'A'
elif number_grade >= 80:
letter_grade = 'B'
elif number_grade >= 70:
letter_grade = 'C'
elif number_grade >= 60:
letter_grade = 'D'
elif number_grade < 60 and number_grade >= 0:
letter_grade = 'F'
else:
print("invalid input")
return letter_grade
def main():
number_grade = int(input("Input number grade: "))
letter_grade = convert_grade_to_letter(number_grade)
print("Letter grade: " + letter_grade)
main()
发布于 2018-06-10 04:22:45
考虑捕获ValueError
异常来验证您的成绩,包括整数验证和0-100范围验证:
try:
number_grade = int(input("Input number grade: "))
is_valid = 0 <= number_grade <= 100
if not is_valid:
raise ValueError("Number grade is not in the 0-100 range.")
letter_grade = convert_grade_to_letter(number_grade)
print("Letter grade: " + letter_grade)
except ValueError:
print("Could not parse grade")
https://stackoverflow.com/questions/50778180
复制相似问题