You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python循环内调用input函数引发报错?如何存储输入值

问题分析与解决方案

你的代码不会报错,但逻辑不符合预期——它会在循环的每一次迭代中都要求你输入一次内容,而不是输入一个名字后自动匹配所有联系人。

问题根源

每次执行input()函数都会触发一次用户输入请求,你把input()写在循环的if判断里,意味着每遍历一个联系人,程序就会停下来让你输入一次。比如:

  • 第一次循环检查James,需要你输入一次
  • 第二次循环检查Amy,又要你输入一次
  • 以此类推

这既不是循环跳过输入,也不是输入值没存内存,而是你重复调用了输入函数,导致每次循环都重新获取输入。

正确实现(输入一次匹配所有联系人)

如果你想输入一个名字,然后检查这个名字是否在联系人列表里,应该把输入操作放在循环外面,把输入值存到变量中,再在循环里用这个变量做匹配:

contacts = [
    ('James', 42),
    ('Amy', 24),
    ('John', 31),
    ('Amanda', 63),
    ('Bob', 18)
]

# 只输入一次,把值存到变量里
user_input = input()

for contact in contacts:
    if user_input == contact[0]:
        print("it works bro")

如果你非要在循环内处理输入(仅输入一次)

如果想把输入逻辑放在循环里,但只输入一次,可以用一个标志位控制:

contacts = [
    ('James', 42),
    ('Amy', 24),
    ('John', 31),
    ('Amanda', 63),
    ('Bob', 18)
]

user_input = None
for contact in contacts:
    if not user_input:
        user_input = input()
    if user_input == contact[0]:
        print("it works bro")

内容的提问来源于stack exchange,提问作者Thamsanqa Sithole

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 23:42:19