第2-1课 逻辑运算符
and 和、并且
or 或者
not 不、非
and
表示“并且”,两边结果都为 True
时,结果为 Ture
程序代码:
print( 3>2 and 10>9)
输出结果:
开始运行...
True
运行结束。
课堂验算:
print( 5<3 and 10>9)
print( False and False)
执行结果:
or
表示“或者”,一边为 True
时,结果为 True
程序代码:
print( 3>2 or 10>9)
输出结果:
开始运行...
True
运行结束。
课堂验算:
print( 11>60 or 10<9 )
print( False or False)
执行结果:
not
表示非,取反
程序代码:
print( not 3 < 2)
输出结果:
开始运行...
True
运行结束。
课堂验算:
print( not 11 > 90 )
print( not True )
Tips
and 和 or 的判断顺序
print( 0 or 5 and 7 or 0)
print( True or True and False )
求值过程是 先取到 or,取左值 0,木有短路,取右值,and表达式,再取左值 5,为真,再取右值 or表达式,取左值,7,为真,短路之,后面不管了,返回7,and表达式左右都是真,返回右值,or 表达式最后返回右值,就是七
短路逻辑规则如下:
表达式从左至右运算,若 or 的左侧逻辑值为 True ,则短路 or 后所有的表达式(不管是 and 还是 or),直接输出 or 左侧表达式 。
若 or 的左侧逻辑值为 False ,则输出or右侧的表达式,不论其后表达式是真是假,整个表达式结果即为其后表达式的结果
表达式从左至右运算,若 and 的左侧逻辑值为 False ,则短路其后所有 and 表达式,直到有 or 出现,输出 and 左侧表达式到 or 的左侧,参与接下来的逻辑运算。若 and 的左侧逻辑值为 True,则输出其后的表达式,不论其后表达式是真是假,整个表达式结果即为其后表达式的结果
若 or 的左侧为 False ,或者 and 的左侧为 True 则不能使用短路逻辑。
注意:
1、在Python中and的优先级是大于or的,而且and和or都是会返回值的并且不转换为True和False。当not和and及or在一起运算时,优先级为是not>and>or
2、在Python中,None、任何数值类型中的0、空字符串“”、空元组()、空列表[]、空字典{}都被当作False,还有自定义类型,如果实现了 __ nonzero __ ()
或 __ len __ ()
方法且方法返回 0 或False,则其实例也被当作False,其他对象均为True。
第2.2课 if语句
语法格式
键盘上的Tab键
课堂验算:
如果
输入芝麻开门,就
打开门
a = input('请输入开门咒语:')
if a == '芝麻开门':
print('开门啦')
执行结果:
开始运行...
请输入开门咒语:芝麻开门
开门啦
运行结束。
如果
输入数字大于120,就
提示需要买票哦!
a = input('请输入你的身高:')
if a > 120:
print('需要买票哦!')
执行结果
开始运行...
请输入你的身高:123
Traceback (most recent call last):
File "/workspace/Python_exam_level/exam_level_2/exam_2.2_B.py", line 2, in <module>
if a > 120:
TypeError: '>' not supported between instances of 'str' and 'int'
运行结束。
执行结果报错:因为input获取的是字符串,而if条件比较的是数字类型
第2.3课 if … else … 语句
语法格式
课堂验算:
如果
输入芝麻开门,就
开门,否则
就再试试吧!
a = input('请输入开门咒语:')
if a == '芝麻开门':
print('开门啦')
else:
print('再试试吧!')
执行结果:
开始运行...
请输入开门咒语:奥利给
再试试吧!
运行结束。
如果
输入数字大于1000,就
提示赶紧上交父母,否则
拿去挥霍吧!
第2.4课 if … elif … else …
跳远打折,吃火锅
语法格式
课堂验算:
如果
消灭一个敌人,就
提示 First Blood如果
消灭两个敌人,就
提示 Double Kill如果
消灭三个敌人,就
提示 Trible Kill如果
消灭四个敌人,就
提示 Quadra Kill如果
消灭五个敌人,就
提示 Penta Kill
题目分析:
- (1)使用int(input())输入数字
- (2)通过多条件判断,判断对应的5种情况,并根据具体情况打印对应的结果
s = int(input('请输入消灭的敌人数量:'))
if s == 1:
print('First Blood')
elif s == 2:
print('Double Kill')
elif s == 3:
print('Trible Kill')
elif s == 4:
print('Quadra Kill')
elif s == 5:
print('Penta Kill')
else:
print('输入有误请重新输入:')
想一想
第2.5课 条件判断语句练习
课堂练习:
第1题:B ,第2题:D , 第3题:C ,
课堂验算:
制作一个偶数判断器,判断输入的数字是否是偶数。
输入:3 输出:3不是偶数
输入:16 输出:16是偶数
n = int(input()):
if n % 2 == 0:
print(str(n) + '是偶数')
else:
print(str(n) + '是奇数')
模拟计算器
模拟一个计算器,要求输入两个数和要计算的方式(+-*/中的一种)输出对应的计算结果
输入:请输入第一个数字:6
请输入计算方式:+请输入第二个数字:2输出:8
n1 = int(input('请输入第一个数字:'))
s = input('请输入计算方式:')
n2 = int(input('请输入第二个数字:'))
if s == '+':
print(n1 + n2)
if s == '-':
print(n1 - n2)
if s == '*':
print(n1 * n2)
if s == '/':
# 如果n2 为0 要怎么处理?
print(n1 / n2)
else:
print('符号输入有误,请重新输入!')