免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 39945 | 回复: 5

python的and和or是不是弄反了?谢谢! [复制链接]

论坛徽章:
0
发表于 2019-07-09 15:05 |显示全部楼层
本帖最后由 lsir 于 2019-07-09 15:10 编辑

'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

论坛徽章:
8
2016科比退役纪念章
日期:2018-10-24 08:24:0115-16赛季CBA联赛之北控
日期:2019-03-12 14:34:562016科比退役纪念章
日期:2019-04-01 10:33:0915-16赛季CBA联赛之山东
日期:2019-04-17 12:46:3215-16赛季CBA联赛之广夏
日期:2019-05-09 16:40:4015-16赛季CBA联赛之广夏
日期:2019-10-10 15:33:4015-16赛季CBA联赛之辽宁
日期:2019-10-15 08:37:0615-16赛季CBA联赛之北控
日期:2021-03-30 15:53:34
发表于 2019-07-09 16:19 |显示全部楼层
当然没反,是你条件写错了。
你是要 三个值 均等于8时,才退出循环,可以这么写
  1. while not (a1==8 and a2==8 and a3==8):
复制代码

论坛徽章:
0
发表于 2019-07-10 12:04 |显示全部楼层
回复 2# cfwyy

明白了!谢谢!
原来python的逻辑和我以前学的是有些区别!

论坛徽章:
8
2016科比退役纪念章
日期:2018-10-24 08:24:0115-16赛季CBA联赛之北控
日期:2019-03-12 14:34:562016科比退役纪念章
日期:2019-04-01 10:33:0915-16赛季CBA联赛之山东
日期:2019-04-17 12:46:3215-16赛季CBA联赛之广夏
日期:2019-05-09 16:40:4015-16赛季CBA联赛之广夏
日期:2019-10-10 15:33:4015-16赛季CBA联赛之辽宁
日期:2019-10-15 08:37:0615-16赛季CBA联赛之北控
日期:2021-03-30 15:53:34
发表于 2019-07-11 07:21 |显示全部楼层
不关python的事,其它的也是这个逻辑。

论坛徽章:
0
发表于 2019-07-11 10:53 |显示全部楼层
lollollol

论坛徽章:
0
发表于 2020-06-21 17:37 |显示全部楼层
跟个贴,我开始python了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP