首页 > 解决方案 > 我可以从 for 循环中的列表中更改输入消息吗

问题描述

我正在创建一个代码,其中有一个包含名称的列表,并且代码询问每个人的年龄。是否可以创建一个 for 循环输入,消息始终根据名称更改?

我尝试了打印语法,但它似乎不起作用:

ages = [0] * 3

names = ["Julia", "Benjamin", "George"]

for i in range (0, 3):
    ages[i] = int(input("How old is", names[i]))

print(ages)

预期的输出将是一个包含年龄的列表,例如:

[23, 19, 34]

但我只收到一条错误消息:

TypeError: raw_input() takes from 1 to 2 positional arguments but 3 were given.

感谢您的帮助!

标签: pythonlistfor-loopinput

解决方案


input不使用与 相同的语法print,因此您不能编写:

input("How old is", names[i]) # doesn't work!!

但您必须输入一个完整的字符串,例如:

input("How old is {}?".format(names[i]))

请注意,您可以(并且应该)在循环时避免使用索引:

names = ["Julia", "Benjamin", "George"]
ages = []

for name in names:
    ages.append(int(input("How old is {}?".format(name)))

print(ages)

推荐阅读