小编Dus*_*rns的帖子

如何更改以列表形式输入for循环的变量

我正在用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循环传递的任何变量,如果它是正在传递的列表的一部分.

python for-loop list

7
推荐指数
1
解决办法
2万
查看次数

错误 - 最多输入1个参数,得到3

我已经设置了以下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)

python arguments traceback

4
推荐指数
1
解决办法
3万
查看次数

For循环只执行1次,但范围为5

我有以下代码:

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,然后它会在程序的其余部分运行,而不会提示我将下一个测试分数添加到分数列表中.我真的很好奇为什么会这样

提前感谢您抽出宝贵时间提供帮助

真诚的,〜达斯汀

python for-loop range python-3.x

0
推荐指数
1
解决办法
4540
查看次数

标签 统计

python ×3

for-loop ×2

arguments ×1

list ×1

python-3.x ×1

range ×1

traceback ×1