Python使用for循环获取3个变量用户输入提示变量未定义如何解决
错误原因
你的代码存在两个核心问题:
- 执行
for i in [p, q, r]这行时,p、q、r三个变量还没有被定义,程序读到这行时无法识别变量,直接触发未定义报错。 - 即使你提前定义了三个变量,循环内给
i赋值也无法同步修改p/q/r的值:Python中整数是不可变类型,循环变量i只是临时持有列表中元素的副本,对i重新赋值只会改变i自身的指向,不会修改原变量的存储值。
正确实现方式
方法1:用列表存储输入(最推荐,适合批量输入场景)
# 提前创建空列表接收所有输入 value_list = [] # 循环3次,每次把输入转成整数后追加到列表 for _ in range(3): num = int(input("Enter any value=")) value_list.append(num) print("Your 1st value=", value_list[0]) print("Your 2nd value=", value_list[1]) print("Your 3rd value=", value_list[2])
方法2:直接解构赋值给独立变量
如果你确实需要用p/q/r三个独立变量存储结果,可以用列表推导式加解构赋值实现:
p, q, r = [int(input("Enter any value=")) for _ in range(3)] print("Your 1st value=", p) print("Your 2nd value=", q) print("Your 3rd value=", r)
- 额外提示:你原有代码的输出语句里序数词写法有误,第二个输入的描述应为
2nd,第三个应为3rd。
内容的提问来源于stack exchange,提问作者Akshay
相关产品推荐
相关产品推荐

