我正在用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.
Run Code Online (Sandbox Code Playgroud)
现在,这可以很好地显示每个测试分数等同于分数点.但是,稍后在函数中我需要计算每个等级点值的平均值.所以,我实际上想要将等级点值分配给当时通过for循环传递的特定变量.因此,当score1通过for循环,并且确定了适当的成绩点时,我如何才能将该成绩点实际分配给score1,然后将其分配给score2,等等,因为它们通过循环?
我希望这会使问题清楚.Python本身没有这种能力似乎很愚蠢,因为如果不是这样你将无法重新定义通过for循环传递的任何变量,如果它是正在传递的列表的一部分.
我已经设置了以下for循环来接受5个测试分数.我希望循环提示用户输入5个不同的分数.现在我可以通过输入"请输入你的下一个测试分数"输入来做到这一点,但我宁愿为每个输入的分数提示输入相关的数字.
因此,对于第一个输入,我希望它显示"请输入您的测试1的分数",然后在第二个分数中,显示"请输入您的测试2的分数".当我尝试运行此循环时,我收到以下错误:
Traceback(最近一次调用最后一次):
Traceback (most recent call last):
File "C:/Python32/Assignment 7.2", line 35, in <module>
main()
File "C:/Python32/Assignment 7.2", line 30, in main
scores = input_scores()
File "C:/Python32/Assignment 7.2", line 5, in input_scores
score = int(input('Please enter your score for test', y,' : '))
TypeError: input expected at most 1 arguments, got 3
Run Code Online (Sandbox Code Playgroud)
这是代码
def input_scores():
scores = []
y = 1
for num in range(5):
score = int(input('Please enter your score for test', y, ': '))
while score < …
Run Code Online (Sandbox Code Playgroud) 我有以下代码:
def input_scores():
scores = []
y = 1
for num in range(5):
score = int(input(print('Please enter your score for test %d: ' %y)))
while score < 0 or score > 100:
print ('Error --- all test scores must be between 0 and 100 points')
score = int(input('Please try again: '))
scores.append(score)
y += 1
return scores
Run Code Online (Sandbox Code Playgroud)
当我运行它时,输出如下:
Please enter your score for test 1:
None
Run Code Online (Sandbox Code Playgroud)
然后我将输入"无"旁边的测试分数,比如95,然后它会在程序的其余部分运行,而不会提示我将下一个测试分数添加到分数列表中.我真的很好奇为什么会这样
提前感谢您抽出宝贵时间提供帮助
真诚的,〜达斯汀