关于if not and的理解
本帖最后由 ronald627 于 2020-4-13 16:37 编辑例如:
for x in range(100):
if not (x % 2) and x % 3:
写成列表推导就是
这个是怎么理解 你不理解的地方在哪里? 本帖最后由 sunrise085 于 2020-4-13 16:43 编辑
if not (x % 2) and x % 3
意思就是对2求余为0,对3求余不为0啊
not (x % 2)是一个逻辑表达式,当x对2求余为0,表达式的结果才为True qiuyouzhi 发表于 2020-4-13 16:38
你不理解的地方在哪里?
x 余 2
x 余 3
放到if not and中这两个条件先判断谁 ronald627 发表于 2020-4-13 16:43
x 余 2
x 余 3
放到if not and中这两个条件先判断谁
写在前面的 ronald627 发表于 2020-4-13 16:43
x 余 2
x 余 3
放到if not and中这两个条件先判断谁
not优先级要高于and
if not (x % 2) and x % 3
相当于
if (not (x % 2)) and (x % 3)
(not (x % 2)) 和 (x % 3)这两部分,从左向右进行判断 sunrise085 发表于 2020-4-13 16:41
if not (x % 2) and x % 3
意思就是对2求余为0,对3求余不为0啊
not (x % 2)是一个逻辑表达式,当x对2求 ...
看着有点懵,
if not:或者if:这种判断式,不应该理解为满足条件时返回True吗?
if not (x%2)不应该是理解成如果x 余 2不等于0 返回True吗 qiuyouzhi 发表于 2020-4-13 16:44
写在前面的
看着有点懵,
if not:或者if:这种判断式,不应该理解为满足条件时返回True吗?
if not (x%2)不应该是理解成如果x 余 2不等于0 返回True吗 ronald627 发表于 2020-4-13 16:54
看着有点懵,
if not:或者if:这种判断式,不应该理解为满足条件时返回True吗?
if not (x%2)不应该是 ...
1,是的
2,假设x等于6,6%2==0,也就是False
再用not取反,是True
也就是x余2等于0返回True ronald627 发表于 2020-4-13 16:54
看着有点懵,
if not:或者if:这种判断式,不应该理解为满足条件时返回True吗?
if not (x%2)不应该是 ...
你所说的
如果x 余 2不等于0 返回True
应该是not(x%2==0) ronald627 发表于 2020-4-13 16:54
看着有点懵,
if not:或者if:这种判断式,不应该理解为满足条件时返回True吗?
if not (x%2)不应该是 ...
并不是,not True 为 False,not False 为 True。
假设 x 是 3,3 % 2 是 1,not 1 为 False
假设 x 是 4,4 % 2 是 0,not 0 为 True 依次把100里的所有整数的值赋给x,如果x%2为零(x是偶数) 并且 x不能整除3,就把x加入到列表里
列表推导式的顺序是 for循环 -> if判断 ->把x加入列表
not优先级高于and,所以先管not,在去看and
x是偶数时:
【x%2等于0,为假】
【not(x%2)就为真,就会去判断x能否整除3】
如果能整除:
就把x加入列表
如果不能:
判断下一个数
如果不是:
判断下一个数 _荟桐_ 发表于 2020-4-13 20:06
依次把100里的所有整数的值赋给x,如果x%2为零(x是偶数) 并且 x不能整除3,就把x加入到列表里
列表推 ...
我想来想去可能我纠结的点是那个 x % 2为真哪里。x % 2是可以整除的,所以我理解应该是为真,然后前面加了个not,那这里的结果不应该是false吗。 本帖最后由 ronald627 于 2020-4-14 14:36 编辑
sunrise085 发表于 2020-4-13 16:41
if not (x % 2) and x % 3
意思就是对2求余为0,对3求余不为0啊
not (x % 2)是一个逻辑表达式,当x对2求 ...
感谢,其实你回答的已经很清楚了。现在也能理解了。
开始我纠结的点是那个 x % 2为真哪里。x % 2是可以整除的,所以我理解应该是为True,然后前面加了个not,那这里的结果不应该是false吗。
后来理解了 x如果是22%2结果是0 返回false ,然后not false就返回true了。。。 zltzlt 发表于 2020-4-13 17:16
并不是,not True 为 False,not False 为 True。
假设 x 是 3,3 % 2 是 1,not 1 为 False
您这么一说,完全理解了。感谢
页:
[1]