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

如何修复密码登录循环代码中的UnboundLocalError错误?

解决UnboundLocalError:无法访问未赋值的局部变量'input'

错误原因

你在login函数里误用了内置函数input作为变量名。第一次执行input=input("PASSWORD: ")时,虽然能正常获取用户输入,但此时input已经被覆盖成字符串类型的输入值。第二次循环时,再尝试调用input("PASSWORD: ")就会报错——因为现在的input是字符串,不是原本的输入函数,自然无法执行函数调用操作,从而触发UnboundLocalError。

修复方案

把变量名改成和内置函数不冲突的名称,比如user_input,避免覆盖内置函数。

修正后的代码

from decouple import config
from speech_rec import speak, take_user_input

LOGIN=config("SHA-512")

def login():
    while True:
        user_input=input("PASSWORD: ")
        if user_input==LOGIN:
            break
        else:
            speak("Try Again")
            continue
login()
#rest of code
for i in range(10):
    print(i)

注意事项

Python的内置函数(比如input、print、list)和关键字都不能当作自定义变量名使用,否则会覆盖原有功能,引发类似的逻辑错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 00:55:34