第5讲 条件控制语句
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c101b5eb8bc659c51a63f7410cef4800.png)
运算符的优先级
运算符优先级表
条件判断
条件判断语句(if语句)
- 执行的流程:
if语句在执行时,会先对条件表达式进行求值判断,
如果为True,则执行if后的语句
如果为False,则不执行 - 语法:if 条件表达式 :
代码块 - 代码块代码块中保存着一组代码,同一个代码块中的代码,要么都执行要么都不执行
- 代码块以缩进开始,直到代码恢复到之前的缩进级别时结束
- 代码块就是一种为代码分组的机制
input()函数
- 该函数用来获取用户的输入
- input()调用后,程序会立即暂停,等待用户输入
- 用户输入完内容以后,点击回车程序才会继续向下执行
- 用户输入完成以后,其所输入的的内容会以返回值得形式返回
- input接受的参数都是字符串
- input会阻塞后边的程序
if-else语句
- 语法:
if 条件表达式:
代码块
else:
代码块
- 执行流程:
if-else语句在执行时,先对if后的条件表达式进行求值判断
如果为True,则执行if后的代码块
如果为False,则执行else后的代码块)
if-elif-else 语句
if 条件表达式1:
代码块1
elif 条件表达式2:
代码块2
...
else:
代码块n
- while循环的三大要素
初始值
对于初始值的判断
初始值的自增长 - while循环嵌套
外层循环的初始值放到外循环外,内循环的初始值一定要放到外循环之内,内循环之外,否则内循环的初始值不会重新被赋值,就无法控制内层循环的循环次数 - 执行流程:
if-elif-else语句在执行时,会自上向下依次对条件表达式进行求值判断,
如果表达式的结果为True,则执行当前代码块,然后语句结束
如果表达式的结果为False,则继续向下判断,直到找到True为止
如果所有的表达式都是False,则执行else后的代码块 - 总结: if-elif-else中只会有一个代码块会执行
循环控制
while语句
- 循环语句可以使指定的代码块重复指定的次数.循环语句分成两种,while循环 和 for循环
- 语法:
while 条件表达式:
代码块
else:
代码块
break 和 continue
- break可以用来立即退出循环语句,包括else语句
- continue 用来跳过当初循环
作业:
1.求1000以内所有的水仙花数
2.获取用户输入的任意数,判断其是否是质数?
3.1. 猜拳游戏:
- 出拳 玩家:手动输入 电脑:随机输入
- 判断输赢: 玩家获胜 电脑获胜 平局
import random
T=['剪刀','石头','布']
ww,dw,pj='玩家获胜','电脑获胜','平局'
while True:
wj = input('请出拳:')
while wj not in T:
wj = input("输入错误,请重新输入:")
else:
dn = random.choice(T)
if wj =='剪刀' and dn == '石头' or wj =='石头' and dn == '布' or wj == '布' and dn =='剪刀':
print('玩家:',wj,'VS','电脑:',dn,dw)
pass
elif wj == dn:
print('玩家:',wj,'VS','电脑:',dn,pj)
pass
else:
print('玩家:',wj,'VS','电脑:',dn,ww)
pass
99乘法表
while i<10:
i+=1
j=0
while j<i:
j+=1
print('{} * {} = {}'.format(i,j,i*j),end='\t') #format
print('')
i=0
while i<10:
i+=1
j=0
while j<i:
j+=1
print(i,'*',j,'=',i*j,end='\t')
print('')
i=0
while i<10:
i+=1
j=0
while j<i:
j+=1
print('%s'%i,'*','%s'%j,'=','%s'%i*j,end='\t') #%s
print('')
i=0
while i<10:
i+=1
j=0
while j<i:
j+=1
print(f'{i}*{j}={i*j}',end='\t') #%f''
print('')