为什么我在 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)
您在错误的位置创建了 record
和 report
变量:
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
循环在循环方面完成了您需要的一切。
如果您在输入中添加字符串以提示用户,您的代码会更好。 (如果输入是自动的,则不需要)
我只是想创建一个由输入获取的名称和分数的嵌套循环,但我得到了一个相当奇怪的输出。
点击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)
您在错误的位置创建了 record
和 report
变量:
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
循环在循环方面完成了您需要的一切。
如果您在输入中添加字符串以提示用户,您的代码会更好。 (如果输入是自动的,则不需要)