【问题标题】:NameError: name 'number' is not defined [duplicate]NameError:名称“编号”未定义[重复]
【发布时间】:2018-06-19 17:04:38
【问题描述】:

我有如下代码

a=25
b=20
#number=0
if a < b == True:
    number = 1
elif a >b == True:
    number = 2
print(number)

当我执行此操作时,我收到以下错误

NameError: name 'number' is not defined

当我像下面这样初始化number = 0

a=25
b=20
number=0
if a < b == True:
    number = 1
elif a >b == True:
    number = 2
print(number)

那么我没有得到2 的输出,而是得到0,我在这里缺少什么

【问题讨论】:

  • 只需使用if a &lt; b:。无需将该结果显式与 True 进行比较。

标签: python


【解决方案1】:

在条件两边加上括号。

例如:

a=25
b=20
#number=0
if (a < b) == True:
    number = 1
elif (a > b) == True:
    number = 2
print(number)

或:

if a < b:
    number = 1
elif a > b:
    number = 2
print(number)
  • 你目前正在做(a &lt; b) and (b == True) & (a &gt; b) and (b == 20)

【讨论】:

  • 这个答案是正确的,但为了安全起见,您应该在 a == b 时添加一个分配数字的条件,或者在 if 语句上方为数字设置一个默认值。
  • @superbeck。你是对的。
  • 不错的答案。你能解释一下你的第一个代码的括号吗?
  • 没有括号的 if 语句正在评估 (a
  • 这解决了问题,但== True 仍然是不必要的,如果你删除== True 括号也是不必要的。
猜你喜欢
  • 2018-08-01
  • 2020-06-17
  • 2016-07-06
  • 2015-10-22
  • 2016-05-12
  • 2011-11-19
  • 1970-01-01
  • 1970-01-01
  • 2017-09-14
相关资源
最近更新 更多