我正在学习python,我想创建一个脚本,让你计算你的税后工资。当我试图调用我在if语句中指定的变量时,它说,
NameError: name 'bruto1' is not defined.
这是代码:
if bruto<20142 and bruto>0:
bruto1 = (bruto*0.3655)
netto = (bruto - bruto1)
我已经通过konserw找到了问题
在bruto <0或> 20142的事件中,您尝试访问不存在的bruto1变量(因为if语句中的块未被执行)。
您有两种可能性 - 从定义bruto1的默认值开始,例如0,这样每当您尝试访问该变量时,它都有一些值;或确保程序中可能的所有执行路径导致为该变量赋值,例如使用if ... else ...
brutto1 = 0
if brutto < 20142 and bruto > 0:
brutto1 = (brutto * 0.3655)
netto = (brutto - brutto1)
我认为更多的pythonic方式是在一行中对变量进行条件赋值,例如:
netto = (brutto - (brutto*0.3655)) if brutto < 20142 else (<place another calculation here>)
编辑:修复变量名称中的拼写错误。
附:我建议使用pylint来捕捉这些气味(或者像pycharm这样的好IDE,它会强调拼写错误并在变量分配之前使用)