【问题标题】:User input it iterate list and continue loop用户输入它迭代列表并继续循环
【发布时间】:2020-10-02 20:29:58
【问题描述】:

我正在用 python3 编写一个程序来保持 N 名玩家的分数,并且无法让每个玩家正确输入分数。粗体代码是我遇到问题的地方。在我输入第一个参赛者的分数后循环关闭,并且由于某种原因 i 等于 3,而不是从 0 增加到 1。我希望随着循环的继续而更新“i”,以便获取分数的代码继续直到每个玩家已计分。

我不知道如何得到我想要的结果。我是否使用了错误的循环语句?

我尝试过 while、if 和 for 语句。

我周二才开始编码,非常感谢任何帮助。

import csv
from array import *

names = []
con = int(input("Number of Contestants: "))
maxSurfers = con #number of surfers
while len(names) < maxSurfers:
        name = input(" Enter your Name: ")
        names.append(name)
        print("Contestants")
        print(names)
else:
       print("Thank You for Participating!\n")
       print("Sign up is now closed")


**score = array('f', [])
i = 0
n = int(input("Number of Waves for "+names[i]+": "))
while i != n:
    x=float(input("Enter score for each wave: "))
    score.append(x)
    i = i + 1
print(i)
print("Winner being decided.")**

outputs:
Number of Contestants: 2
 Enter your Name: frank
Contestants
['frank']
 Enter your Name: bart
Contestants
['frank', 'bart']
Thank You for Participating!

Sign up is now closed
Number of Waves for frank: 3
Enter score for each wave: 9.6
Enter score for each wave: 7.8
Enter score for each wave: 7.2
3
Winner being decided.

【问题讨论】:

    标签: arrays python-3.x list if-statement while-loop


    【解决方案1】:

    问题是每个波都有一个循环,但每个名称没有一个外循环。您也只有一个得分列表,因此如果您确实有一个外部循环,那么您只会有一个包含一堆数字的得分列表,并且无法将它们连接到每个玩家。您应该查看 python 字典,它们可能会让您的生活更轻松。此外,当您想要一个用于一系列数字的 python 循环时,标准方法是使用类似 for counter in range(10): 的东西,它从 0 计数到 9。

    尝试类似:

    scores = {}
    for name in names:
        numWaves = int(input("Number of Waves for "+name+": "))
        newScores = []
        for i in range(numWaves):
            newScores.append(float(input("Enter score for each wave: ")))
        scores[name] = newScores
    

    【讨论】:

    • 太棒了,谢谢!我现在就试试。不知道列表或数组是否更适合我的需要。看来我还有一些阅读要做。再次感谢!如果它有效,我会更新你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-08
    • 1970-01-01
    相关资源
    最近更新 更多