yiwai 发表于 2017-8-29 17:56:13

下面代码中 if 条件该怎么理解,请大神帮忙分析下!


a =

lh625243422 发表于 2017-8-29 18:19:05

是2倍数并且不是3的倍数

lh625243422 发表于 2017-8-29 18:21:45

if 是逻辑判断,任何非0就是真,0是假,not就是求反,并且结合右边第一个逻辑

lh625243422 发表于 2017-8-29 18:22:23

if为真就选出来

xi7yang3 发表于 2017-8-30 13:50:57

0~99中 打印不是2的倍数但是是3的倍数的数

Crazy_Snail 发表于 2017-9-1 10:00:22

从0到99找出满足以下条件的数;
      1.是偶数
      2.不是3的倍数

>>> a =
>>> a

{:9_222:}

yiwai 发表于 2017-9-1 15:23:04

Crazy_Snail 发表于 2017-9-1 10:00
从0到99找出满足以下条件的数;
      1.是偶数
      2.不是3的倍数


在书上看到的这个例子,意思:求2的倍数但是不是3的倍数的数      
这里面用的not不很理解,正常求2的倍数就是能被2除尽,即:i%2,现在在前面用个not感觉瞬间大脑死机,
不知道该怎么理解了,请详细说下if语句的情况呀

樱花冷雨 发表于 2017-9-4 15:03:16

i%2在能整除时为零*(false),不能整除时不为零(true),所以ont (i%2)在能整除时为(true)

Crazy_Snail 发表于 2017-9-11 22:26:10

yiwai 发表于 2017-9-1 15:23
在书上看到的这个例子,意思:求2的倍数但是不是3的倍数的数      
这里面用的not不很理解,正常求2的倍 ...

设A = not(i%2), 当 i 是 2 的倍数时,A为真。
B = i % 3, 当 i 不是3的倍数时,B为真。
当AB同时为真时,取数字i作为一个列表元素。
not运算符是就是取它相反的一面,比如说 a 真, 则not(a)为假。
在Python中,只有0是假,其他值都是真值。

流浪1123 发表于 2017-9-19 23:07:48

a =
print(a)

print("=========================================================")
a = []
for i in range(100):
    ifnot (i%2) and i%3:
      a.append(i)
print(a)

print("=========================================================")
a = []
for i in range(100):
    if(i%2)==0:
      if i%3:
            a.append(i)
print(a)
print("=========================================================")
a = []
for i in range(100):
    if(i%2)==0 and i%3 != 0:
            a.append(i)
print(a)

以上几种代码都是等价的。

看最后一个代码
not i%2
这里not i%2 表示(i%2) == 0意思就是能被2整除

if代码的情况请看第二个代码
if not(i%2) and i%3就是满足if not i%2的同时在满足if i%3即可。
http://bbs.1rcy.com/data/attachment/forum/201709/19/230612bhn6lyq86y21v6vx.jpg

疯子的疯 发表于 2017-9-21 09:23:25

这个确实有点绕,还是要一层一层分析,i 为偶数时(i%2)为0(False),not(i%2)即为True,所以选择的是偶数。同理其它。题主加油,共同学习{:5_91:}
页: [1]
查看完整版本: 下面代码中 if 条件该怎么理解,请大神帮忙分析下!