风百默 发表于 2022-1-5 13:09:24

各位朋友,帮我解答一下这个题目?

fish_nian 发表于 2022-1-5 13:09:25

本帖最后由 fish_nian 于 2022-1-5 15:14 编辑

如果使用题目的写就会变成
('y' <'x') and ('x' == False)
那么 非零 的值判断就是True , True == False 就是 False .
这道题就是考写法问题

fish_nian 发表于 2022-1-5 13:33:01

{:10_277:}小甲鱼的课后习题中出过类似的.

wp231957 发表于 2022-1-5 13:34:15

"y"<"x"==False
相当于

"y"<"x"and "x"==False
所以 最终结果为False

傻眼貓咪 发表于 2022-1-5 14:26:19

fish_nian 发表于 2022-1-5 13:28
如果使用题目的写就会变成

根据ord('x')的结果是 120 ,那么 非零 的值判断就是True , True == False 就 ...

如你所说,根据 ord('x') 的结果是 120 确实非零,那么 ord('\0') 呢?

试试:print(bool('\0')) # 结果是 True?

fish_nian 发表于 2022-1-5 14:37:44

傻眼貓咪 发表于 2022-1-5 14:26
如你所说,根据 ord('x') 的结果是 120 确实非零,那么 ord('\0') 呢?

试试:print(bool('\0')) # 结 ...

你这个跟我说的不是一回事,ord('x') 返回的是 int 类型的,那么int 类型的不就是 非0为True吗,那么'\0',这个是字符串形式,字符串形式的布尔类型判断为False 的是 0 和空字符,那么按你说的 print(bool(' ')),我打个空值上去也会判断为true , 那么print(bool(ord('\0'))) ,就会显示为False 了

fish_nian 发表于 2022-1-5 14:38:31

傻眼貓咪 发表于 2022-1-5 14:26
如你所说,根据 ord('x') 的结果是 120 确实非零,那么 ord('\0') 呢?

试试:print(bool('\0')) # 结 ...

{:10_257:}另外我不知道python 对于 \0 结束符会有什么判断,但是我认为他是字符串格式的

wp231957 发表于 2022-1-5 14:46:21

fish_nian 发表于 2022-1-5 14:37
你这个跟我说的不是一回事,ord('x') 返回的是 int 类型的,那么int 类型的不就是 非0为True吗,那么'\0',这 ...

斜杠0是c里面的东东

傻眼貓咪 发表于 2022-1-5 14:50:23

fish_nian 发表于 2022-1-5 14:38
另外我不知道python 对于 \0 结束符会有什么判断,但是我认为他是字符串格式的

没错,这就是python的判断,正确应该是:

if("x" == False) 和 if(ord("x") == False) 不一样,一个是字符串,一个是字符对应ASCII值

所以,
if("\0" == False) 和 if(ord("\0") == False) 也是不一样。

字符串都是True,除非是空字符串:if "":
        print(True)
else:
        print(False)

傻眼貓咪 发表于 2022-1-5 14:51:47

本帖最后由 傻眼貓咪 于 2022-1-5 14:53 编辑

wp231957 发表于 2022-1-5 14:46
斜杠0是c里面的东东

不对,\0 是 ASCII 编号为 0 的控制符

wp231957 发表于 2022-1-5 14:53:04

傻眼貓咪 发表于 2022-1-5 14:51
不对

python中好像没有斜杠0的概念

傻眼貓咪 发表于 2022-1-5 14:54:13

wp231957 发表于 2022-1-5 14:53
python中好像没有斜杠0的概念

好像比较不普遍

fish_nian 发表于 2022-1-5 15:17:10

傻眼貓咪 发表于 2022-1-5 14:50
没错,这就是python的判断,正确应该是:

if("x" == False) 和 if(ord("x") == False) 不一样,一个 ...

{:10_266:}前面说错了,脑子乱了,后面跟你一说才想起来

傻眼貓咪 发表于 2022-1-5 15:19:08

fish_nian 发表于 2022-1-5 15:17
前面说错了,脑子乱了,后面跟你一说才想起来

哈哈,有时我也会忘记基本知识{:10_245:},共同学习

Stubborn 发表于 2022-1-5 16:40:05

上面都是大佬,我也来嫌丑了。
首先不知道你为什么会选择一个B,比较运算符肯定是返回一个bool,True 或者False .
其次,如果你对题目写的有点不 明白, 你看尝试看这个x < y < z    。你想判断一个y数字在不在某个区间内。那么y必定要大于x并且小于y。
页: [1]
查看完整版本: 各位朋友,帮我解答一下这个题目?