免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
7
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:06
发表于 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的逻辑和我以前学的是有些区别!

论坛徽章:
7
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:06
发表于 2019-07-11 07:21 |显示全部楼层
不关python的事,其它的也是这个逻辑。

论坛徽章:
0
发表于 2019-07-11 10:53 |显示全部楼层
lollollol
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会 限时8.5折

【架构革新 高效可控】2020年6月4日~6日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP