20天学python day2 判断语句和循环控制
概念
流程:计算机执行代码的顺序
流程控制:对计算机代码的执行顺序的有效管理,流程控制可以实现在开发中的业务逻辑
python语句是通过一条或者多条语句的执行的结果(True 或 False )来决定执行的代码块
流程控制分类:
- 顺序流程:自上而下执行,默认的执行顺序
- 选择流程
2.1 单分支
2.2 双分支
2.3 多分支 - 循环流程:在满足一定条件下,一直重复执行
一、if-else语句
1、单个条件
if:
else:
num = input('你觉得现在小明想的数字是什么:')
num1 = 5
if num == num1: #判断
print('恭喜你猜对了,看来你们是好基友心有灵犀')
else:
print('很遗憾,你居然不知道你基友心中所想')
2、多个条件
if:
elseif:
else:
import random
inp = int(input('请出拳:'))
computer = random.randint(0,2)
print('电脑出拳:%d'%computer)
if inp >2:
print('输入错误')
elif inp == 0 and computer == 2:
print('厉害了,居然赢了')
elif inp == 1 and computer == 0:
print('厉害了,居然赢了')
elif inp == 2 and computer == 1:
print('厉害了,居然赢了')
elif inp == computer:
print('不错,居然平手')
else:
print('哈哈,输了吧!')
3、嵌套
if 条件1:
if 条件2:
print('满足条件1',同时满足条件2)
else:
print('满足条件1',但是不满足条件2)
elif 条件3:
if 条件4:
print('满足条件3',同时满足条件2)
num =int(input("输入一个数字:"))
if num%2==0:
if num%3==0:
print('你输入的数字可以整除 2和3')
else:
print('你输入的数字可以整除2,但不能整除3')
else:
if num%3==0:
print('你输入的数字可以整除3,但是不能整除 2')
print('你输入的数字不能整除2和3')
二、while循环
while 条件:
满足条件时,执行语句1
满足条件时,执行语句2
满足条件时,执行语句3
猜拳游戏:
import random
# 导入生成随机数模块
while True:
inp = int(input('请出拳:'))
# 电脑随机出拳
computer = random.randint(0,2)
print('电脑出拳:%d'%computer)
if inp >2:
print('输入错误')
elif inp == 0 and computer == 2:
print('厉害了,居然赢了')
elif inp == 1 and computer == 0:
print('厉害了,居然赢了')
elif inp == 2 and computer == 1:
print('厉害了,居然赢了')
elif inp == computer:
print('不错,居然平手')
else:
print('哈哈,输了吧!')
九九乘法表:
i = 9
while i >= 1:
j = 1
while j <= i:
print('%d*%d=%2d\t'%(j,i,i*j),end='')
j +=1
i -= 1
print()
打印三角形:
i = 1
while i <= 5:
j=1
while j <=i:
print('*',end=" ")
j += 1
print('\n')
i += 1
三、for循环
li = ['a', 'b', 'c', 'd']
for i in li:
print(i)
四、break、continue语句
1、break:退出循环
break:结束整个循环,程序遇到break将跳出循环,不再执行循环里面的代码。
import random
win = 0
while True:
if win >= 3:
print('你已经胜利三次')
break
else: # 胜利小于三次,继续玩
inp = int(input('请出拳:'))
computer = random.randint(0,2)
print('电脑出拳:%d'%computer)
if inp >2:
print('输入错误')
elif (inp ==0 and computer==2) or \
(inp == 1 and computer==0)\
or (inp == 2 and computer==1 ):
print("厉害了,居然赢了")
win += 1 # 如果胜利一次,胜利次数加1
elif inp == computer: # 如果两个人出异样就打平
print('不错,居然打平了')
else:print('呵呵,输了吧')
2、continue:跳过本次循环,继续下一循环
a = 'python'
for i in a:
print(i)
p
y
t
h
o
n
a = 'python'
for i in a:
if i == 'h'#当循环到h的时候,退出当前循环不打印
continue
print(i)
p
y
t
o
n
五、多条件与短路运算
1、表达式从左至右运算,若 or 的左侧逻辑值为 True ,则短路 or 后所有的表达式(不管是 and 还是 or),直接输出 or 左侧表达式
2、表达式从左至右运算,若 and 的左侧逻辑值为 False ,则短路其后所有 and 表达式,直到有 or 出现,输出 and 左侧表达式到 or 的左侧,参与接下来的逻辑运算。
3、若 or 的左侧为 False ,或者 and 的左侧为 True 则不会出现短路。
简单的说要实现短路,
表达式用and的则将容易为False的条件放到前面,
表达式有or的则将容易为True的条件放到前面
a = 1
b = 2
c = 3
# and 逻辑运算,代码执行从左到右,先运算a==2,为False
# and 逻辑与需要两个条件都为True,整个条件才为True
# 所以当条件判断执行第一个条件时为False,整个条件为False,
#不再执行后面的条件判断
# 这就是短路运算
if a == 2 and b == 2:
print('haha')