如何调用在python中的if语句中分配的变量?

时间:2018-07-19 18:55:17

标签: python python-3.x

我正在学习python,我想制作一个脚本,使您能够计算出税后的工资。当我尝试调用一个在if语句中分配的变量时,它说,

NameError: name 'bruto1' is not defined.

这是代码:

if bruto<20142 and bruto>0:
    bruto1 = (bruto*0.3655)

netto = (bruto - bruto1)

由于konserw,我已经发现了问题

1 个答案:

答案 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,它可以强调错别字和变量的使用前赋值)