Python论坛 - 国内最好的Python中文社区

标题: python的and和or是不是弄反了?谢谢! [打印本页]

作者: lsir    时间: 2019-7-6 18:52
标题: python的and和or是不是弄反了?谢谢!
本帖最后由 lsir 于 2019-7-7 13:00 编辑

'and' 和'or' 是否错误?
我的版本:Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 03:13:28)


我的设计目标是s1-s3均为8时结束循环。
但用'and'时,s1/s2/s3任意一个数为8时while结束;
while (a1!=8 and a2!=8 and a3!=8):


用'or'时,while需要3个数都为8才跳出循环。
while (a1!=8 or a2!=8 or a3!=8):

原代码如下,谢谢:

import random
a1,a2,a3=0,0,0
ii=0
while (a1!=8 and a2!=8 and a3!=8):
    a1 = random.randint(0,10)
    a2 = random.randint(0,10)
    a3 = random.randint(0,10)

    print(ii,'  ',a1,a2,a3)
    print(a1==8 and a2==8 and a3==8)
    ii+=1




作者: lsir    时间: 2019-7-9 14:56
是不是问题很低级?谢谢
作者: echoecho    时间: 2019-7-10 22:18
在你的程序里,只有当s1 s2 s3全为8时循环才会执行。
譬如s1不等于8 s2 s3都等于8 则已然不满足循环条件,跳出循环。
所以 and or 没有错误,你再仔细体会一下逻辑语句的用法





欢迎光临 Python论坛 - 国内最好的Python中文社区 (https://bbs.pythontab.com/) Powered by Discuz! X3.4