Crossin的编程教室
标题: 【Python 第11课】 逻辑判断 [打印本页]
作者: crossin先生 时间: 2013-9-13 19:59
标题: 【Python 第11课】 逻辑判断
之前粗略地提到bool类型的变量,又说到if和while的判断条件。有些同学反馈说没怎么理解,为什么一会儿是bingo=False,一会又是bingo==False,一会儿是while在条件为True的时候执行,一会儿又是while在bingo==False的时候执行。别急,你听我说。
首先,要理解,一个逻辑表达式,其实最终是代表了一个bool类型的结果,比如:
1 < 3
这个就像当于是一个True的值
2 == 3
这个就是False
把它们作为判断条件放到if或者while的后面,就是根据他们的值来决定要不要执行。
同样的栗子再来几颗:
a = 1
print a>3 #False
print a==2-1 #True
b = 3
print a+b==2+2 #True
比较容易搞混的,是bool变量的值和一个逻辑表达式的值,比如:
a = False
print a #False
print a==False #True
虽然a本身的值是False,但是a==False这个表达式的值是True。(说人话!)“a”是错的,但“a是错的”这句话是对的。
回到上面那几个概念:
bingo=False
把bingo设为一个值为False的变量
bingo==False
判断bingo的值是不是False,如果是,那么这句话就是True
while在判断条件条件为True时执行循环,所以当bingo==False时,条件为True,循环是要执行的。
晕了没?谁刚学谁都晕。不晕的属于骨骼惊奇百年一遇的编程奇才,还不赶紧转行做程序员!
逻辑这东西是初学编程的一大坑,我们后面还要在这个坑里挣扎很久。
留个习题:
a = True
b = not a #不记得not请看第6课
想想下面这些逻辑运算的结果,然后用print看看你想的对不对:
b
not b
a == b
a != b
a and b
a or b
1<2 and b==True
#==== Crossin的编程教室 ====#
微信ID:crossincode
论坛:http://crossin.me
QQ群:156630350
面向零基础初学者的编程课
每天5分钟,轻松学编程
作者: mihchaelli 时间: 2014-6-1 07:16
print 输出的值必须是bool的类型 或者 “”么?
作者: crossin先生 时间: 2014-6-1 14:44
mihchaelli 发表于 2014-6-1 07:16
print 输出的值必须是bool的类型 或者 “”么?
不是,几乎所有东西都可以被print输出,只不过输出来的形式不一样
作者: Flughafencon 时间: 2015-1-4 20:36
- a = True
- b = not a
- print 1<2 and b == False
复制代码 请问最后一条,这个print出来应该显示True,因为1<2是True,b是False,合起来的值是False,
我尝试在后面加上==True变成- a = True
- b = not a
- print 1<2 and b == False == True
复制代码 我想表达的是,“合起来的值是False这句是True”
我以为print也会输出True,结果是个False,是不是我多加的这个==True把前面的False给覆盖了?
如果我想表达“合起来的值是False这句话是True”,应该如何表达呢?
多谢!
作者: xiaohuzai 时间: 2015-2-8 15:12
Flughafencon 发表于 2015-1-4 20:36
请问最后一条,这个print出来应该显示True,因为1
- a = True
- b = not a
- print (1<2 and b == False)==True
复制代码 加个括号就好了
作者: xiaohuzai 时间: 2015-2-8 15:13
Flughafencon 发表于 2015-1-4 20:36
请问最后一条,这个print出来应该显示True,因为1
- a = True
- b = not a
- print (1<2 and b == False)==True
复制代码 加个括号就好了
作者: fix 时间: 2015-5-12 09:49
难道我就是传说中百年一遇的编程奇才?啊哈哈
作者: lovia 时间: 2015-5-27 18:30
- a=True
- b=not a
- print b #False
- print not b #True
- print a==b #False
- print a!=b #True
- print a and b #False
- print a or b #True
- print 1<2 and b==True #False
复制代码
作者: 你让我好慌张 时间: 2015-9-1 16:04
难道我就是那个百年一遇的编程奇才?请老师招安我
作者: crossin先生 时间: 2015-9-1 17:43
你让我好慌张 发表于 2015-9-1 16:04
难道我就是那个百年一遇的编程奇才?请老师招安我
作者: 草办 时间: 2015-12-2 14:36
一个是bool类型变量,一个是作为一般的变量来进行比较是否一致。
作者: Killuia 时间: 2016-4-21 16:09
貌似我的逻辑都有一定能力,看之前的代码都暂时可以理解到意思,但就系之前的习题独自做不出,要参考过才可以粗略写出……而且自己注释的怎样才可以保存,以后打开重看有了解自己当初是怎样理解怎样思考的?
作者: crossin先生 时间: 2016-4-22 11:08
Killuia 发表于 2016-4-21 16:09
貌似我的逻辑都有一定能力,看之前的代码都暂时可以理解到意思,但就系之前的习题独自做不出,要参考过才可 ...
这其实还是写得不够多,熟能生巧
注释就直接和代码一起保存啊
作者: fjxc1893 时间: 2016-11-25 13:59
感谢!!!
作者: cheer 时间: 2021-8-10 16:20
完蛋,卡壳了!还是不懂bingo在这里有什么用!这还学的下去吗
作者: crossin先生 时间: 2021-8-10 23:15
cheer 发表于 2021-8-10 16:20
完蛋,卡壳了!还是不懂bingo在这里有什么用!这还学的下去吗
把bingo想象成一个开关(这个词中文意思是“猜中”)
循环的条件是这个开关是关着的
猜中了,就把这开关打开,循环就结束了
欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) |
Powered by Discuz! X2.5 |