【发布时间】:2012-04-15 13:36:30
【问题描述】:
我正在用 Python 编写一个基本程序,提示用户输入 5 个测试分数。然后程序会将每个测试分数转换为一个成绩点(即 4.0、3.0、2.0...),然后取这些数字的平均值。
我为每个测试分数分配了自己的变量,并将它们输入到一个 for 循环中,如下所示:
for num in [score1, score2, score3, score4, score5]:
if num >= 90
print('Your test score is a 4.0')
elif num < 90 and >= 80
.
.
# and so on for each grade point.
现在,这可以很好地显示每个测试分数相当于成绩点。但是,稍后在函数中,我需要计算每个成绩点值的平均值。所以,我实际上想为当时通过 for 循环传递的特定变量分配一个成绩点值。那么,当 score1 通过 for 循环并确定了适当的成绩点时,我如何才能将该成绩点实际分配给 score1,然后再分配给 score2 等等,因为它们通过循环?
我希望这能说明问题。 Python 没有这种能力似乎很愚蠢,因为如果没有这种能力,你将无法重新定义通过 for 循环传递的任何变量,如果它是正在传递的列表的一部分。
【问题讨论】:
-
“Python 没有这种能力似乎很愚蠢,因为如果没有这种能力,你将无法重新定义通过 for 循环传递的任何变量,如果它是正在传递的列表。” - 这就是大多数编程语言的工作方式。允许这种能力是不好的,因为它会产生一种叫做副作用的东西,这会使代码变得迟钝。