python - 我可以从 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.
感谢您的帮助!
解决方案
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)
推荐阅读
- grafana - how to add search box on the table in grafana dashboard
- r - ggsave:设置PowerPoint图像的宽度和高度
- angular - 强制将 svg 请求为 image/svg+xml
- reactjs - 在 React 中单击两个按钮打开一个组件
- angular - anychart getJpgBase64String 不起作用
- reactjs - 在故事书故事中添加新标签
- c# - [EF Core]:实体创建后设置属性值
- python - 在 Safari 中使用 Selemium 和 Python 查找 CVV
- python-3.x - 使用 OpenCV 和 PyQT5 视频播放速度过快
- sorting - 在 Power BI 中按列名排序