我正在学习python,我想制作一个脚本,使您能够计算出税后的工资。当我尝试调用一个在if语句中分配的变量时,它说,
NameError: name 'bruto1' is not defined.
这是代码:
if bruto<20142 and bruto>0:
bruto1 = (bruto*0.3655)
netto = (bruto - bruto1)
由于konserw,我已经发现了问题
答案 0 :(得分:1)
在一个事件bruto为<0或> 20142的情况下,您试图访问不存在的bruto1变量(因为如果未执行语句将阻塞)。
您有2种可能-要么从定义默认值到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>)
编辑: 修正了变量名中的错字。
P.S。我建议使用pylint来捕获此类气味(或像pycharm这样的好IDE,它可以强调错别字和变量的使用前赋值)