PyCharm提示‘Local variable 'c' value is not used’及缩进错误如何解决?
问题原因与解决方法
1. 变量c显示透明(提示未使用)的原因
你在start()函数内部定义了变量c,但后续的if语句写在了函数外部。函数内的局部变量只能在函数内部访问,外部代码拿不到这个c的值,所以PyCharm判定这个变量没有被实际使用,就会显示透明并给出提示。另外,外部的if语句里的c其实是未定义状态,直接运行代码会触发NameError: name 'c' is not defined错误。
2. 缩进错误的原因
Python靠缩进区分代码块,if语句如果缩进,就属于start()函数的内部代码;如果不缩进,就和函数平级,但此时函数内的c和外部的if完全没关系,而且函数没被调用的话,外部if直接访问c必然报错。
修正后的代码
把if语句缩进放入函数内部,同时修正条件判断的逻辑错误(原写法中str("c")在布尔判断里永远为真,会导致条件永远成立):
def start(): c = input("do you want to login or create an account? Type l or c ") # 判断输入既不是'l'也不是'c'时触发提示 if c not in ['l', 'c']: print("please type l or c") start() # 必须调用函数,否则代码不会执行 start()
补充说明
- 局部变量的作用域仅限定义它的函数内部,所以要把用到该变量的代码放在同一函数内。
- 条件判断要注意逻辑严谨性,
or两侧都要是布尔表达式,原写法的逻辑会导致无论输入什么都会触发提示。
内容的提问来源于stack exchange,提问作者Liam18923
相关产品推荐
相关产品推荐

