为什么我在 python 中得到带有嵌套列表的奇怪输出

Why I got weird Output with a nested list in python

我只是想创建一个由输入获取的名称和分数的嵌套循环,但我得到了一个相当奇怪的输出。

点击here获取我的代码和输出的图像。如您所见,我从第 3 个和第 4 个输入中获取了列表。请告诉我,为什么第一个和第二个输入被覆盖。

这是我的代码:

if __name__ == '__main__':
n = int(input())
for _ in range(n):
    name = input()
    score = float(input()) 
    record = []
    
    while True:
        report = []
        report.append(name)
        report.append(score) 
        record.append(report)
        
        if len(record) == n:
            break       

print(record)

不确定您要在这里做什么,但是

record = []

在循环中定义。在 运行 循环中,它被覆盖。

你的第二个 while 循环没有任何意义。只需抓住您的输入并将它们添加到您的列表中。记录需要在循环之外定义,否则每次迭代都会被覆盖。

record = []    
n = int(input())
for _ in range(n):
  name = input()
  score = float(input()) 
  record.append(name)
  record.append(score) 
print(record)

    

您在错误的位置创建了 recordreport 变量:

if __name__ == '__main__':

    record = []
    n = int(input())
    for _ in range(n):
        name = input()
        score = float(input()) 

        report = []
        report.append(name)
        report.append(score) 
        record.append(report)
                
    print(record)

while 循环是多余的,因为 for 循环在循环方面完成了您需要的一切。

如果您在输入中添加字符串以提示用户,您的代码会更好。 (如果输入是自动的,则不需要)