【发布时间】:2018-04-10 07:47:21
【问题描述】:
所以,我解决了我的代码问题,即下面的代码最初不能正常工作,但我想解释一下为什么我的原始代码不能按预期工作。如果我在 if/elif/else 部分中指定了一次变量“等级”并将“和”运算符设置为我需要它工作的参数,不应该将等级与两者进行比较而不必使用它两次?
这是无效的代码
# if and elif statements for calculating grade score letters
def grade_converter(grade):
if grade >= 90 :
return "A"
elif grade >= 80 and <= 89:
return "B"
elif grade >= 70 and <= 79:
return "C"
elif grade >= 65 and <= 69:
return "D"
else:
return "F"
# This should print an "A"
print grade_converter(92)
# This should print a "C"
print grade_converter(70)
# This should print an "F"
print grade_converter(61)
这是我的解决方法
# if and elif statements for calculating grade score letters
def grade_converter(grade):
if grade >= 90 :
return "A"
elif grade >= 80 and grade <= 89:
return "B"
elif grade >= 70 and grade <= 79:
return "C"
elif grade >= 65 and grade <= 69:
return "D"
else:
return "F"
# This should print an "A"
print grade_converter(92)
# This should print a "C"
print grade_converter(70)
# This should print an "F"
print grade_converter(61)
【问题讨论】:
-
是的,这是无效的语法。但是你可以使用
65 <= grade <= 69(链式操作符)会好很多 -
计算机语言不是英语。人类很擅长猜测复合句中重复的主题,而计算机则不然。您总是明确地在逻辑运算符的两侧说明您要测试的内容。
标签: python python-2.7