hsj2001 发表于 2019-11-5 09:08:06

name 'true' is not defined 这是什么原因??

x = True
if(x==true):
    print('xxx')
这样报错:
Traceback (most recent call last):
File "c:\xx.py", line 2, in <module>
    if(x==true):
NameError: name 'true' is not defined
这个是什么原因,请教!

冬雪雪冬 发表于 2019-11-5 09:13:32

是True,不是true

yuweb 发表于 2019-11-5 09:21:19

2楼正解 True和False都是首字母大写的

hsj2001 发表于 2019-11-5 09:23:38

x = False
if(x not True):
    print('xxx')

这样也会报错:没有错误提示,只是把if(x not True):中的True标红了,这是什么情况?

hsj2001 发表于 2019-11-5 09:24:24

冬雪雪冬 发表于 2019-11-5 09:13
是True,不是true

x = False
if(x not True):
    print('xxx')

这样也会报错:没有错误提示,只是把if(x not True):中的True标红了,这是什么情况?

Hoiste 发表于 2019-11-5 09:41:01

hsj2001 发表于 2019-11-5 09:23
x = False
if(x not True):
    print('xxx')


布尔类型表达的意思一般不是True就是False,没必要用not True这种表达。你这句话没有错误提示,是因为是语法错误,not True 虽然表达了False的意思,但是以这个程序为例,
"if x False:"这样的语句是没有意义的语句。
用x != True就没问题了。

jackz007 发表于 2019-11-5 09:43:00

本帖最后由 jackz007 于 2019-11-5 09:46 编辑

hsj2001 发表于 2019-11-5 09:24
x = False
if(x not True):
    print('xxx')


你得写成
x = False
if not x:
    print('xxx')

Hoiste 发表于 2019-11-5 09:44:40

Hoiste 发表于 2019-11-5 09:41
布尔类型表达的意思一般不是True就是False,没必要用not True这种表达。你这句话没有错误提示,是因为 ...

有点没说清楚,not作为逻辑操作符,这里还有一个逻辑操作符运用错误的问题,你对比一下not的同类
and和or的用法应该就明白语法错误的原因了

hsj2001 发表于 2019-11-5 12:59:30

谢谢大家

冬雪雪冬 发表于 2019-11-5 16:51:01

hsj2001 发表于 2019-11-5 09:24
x = False
if(x not True):
    print('xxx')


可以写成
if(x == not True):

cs_sunsky 发表于 2019-11-5 16:57:35

逻辑参数第一个字母大写

guoxuell 发表于 2020-9-18 14:51:55

冬雪雪冬 发表于 2019-11-5 09:13
是True,不是true

我也遇到这个问题了,确实如此
页: [1]
查看完整版本: name 'true' is not defined 这是什么原因??