我让程序按我所希望的方式工作,但我似乎不知道如何为用户测试分数输入添加验证。输入值必须介于0-100之间,并验证每个输入的分数
如何修改代码以使用验证循环将输入设置为>;=0和<;=提示分数函数中的100? 我以前尝试过while循环,但在每个输入上都忽略了它
def calc_average(scoreOne, scoreTwo, scoreThree):
average = (scoreOne + scoreTwo + scoreThree)/3
return average
def determine_grade(studentScore):
if studentScore < 60:
return "F"
elif studentScore < 70:
return "D"
elif studentScore < 80:
return "C"
elif studentScore < 90:
return "B"
elif studentScore < 101:
return "A"
def prompt_scores():
enteredScoreOne = int(input("Please enter score 1: "))
enteredScoreTwo = int(input("Please enter score 2: "))
enteredScoreThree = int(input("Please enter score 3: "))
return enteredScoreOne, enteredScoreTwo, enteredScoreThree
def print_results(scoreOne, scoreTwo, scoreThree):
print("\nScore\tLetter Grade" )
print(str(scoreOne) + "\t\t" + determine_grade(scoreOne), \
str(scoreTwo) + "\t\t" + determine_grade(scoreTwo), \
str(scoreThree) + "\t\t" + determine_grade(scoreThree), sep = "\n")
def main():
scoreOne, scoreTwo, scoreThree = prompt_scores()
print_results(scoreOne, scoreTwo, scoreThree)
print("-----------------------")
print("Average score: " + str(int(calc_average(scoreOne, scoreTwo,scoreThree))))
print(" Final grade: " + determine_grade(int(calc_average(scoreOne, scoreTwo, scoreThree))))
rerun_main = input("Do you want to continue? Enter y/n: ")
if rerun_main == "Y" or rerun_main == "y":
main()
main()
其他变量也是如此
如果您正在运行python2(假设您正在使用
input
读取字符串,那么您不会,但我会添加这个以防万一),您最好将in range(...)
替换为(0 <= enteredScoreOne <= 100)
,因为range
将返回一个列表,这将消耗一点额外的内存如果您使用函数,并且可以使用递归强制用户输入0-100之间的值,那么您可以在获取输入时检查输入的值。我还可以看到您正在使用python本身具有内置函数的附加函数,例如:
sum()
。同时尽可能地节省内存和处理,现在看来这不是什么大问题,但是当你有1000行代码的时候,即使是这些小东西也能节省你的时间。在这里,我的意思是不用两次调用函数,而是将结果保存在变量中并使用它。我在代码中添加了所有这些,并给出了答案相关问题 更多 >
编程相关推荐