如何修复密码登录循环代码中的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
相关产品推荐
相关产品推荐

