判断语句与循环控制
一、判断语句
1.if-else语句
典型双分支语句
格式:
#单分支 if 条件表达式: 代码指令 pass #空语句 print('语句结束') #双分支 if 条件表达式: 代码指令 pass #空语句 else: 代码指令 pass print('语句结束')
多分支语句
特征:
只要满足其中一个分支,就会自动退出本层的if语句结构(言外之意:必须执行其中一个分支)
至少有两个情况可以选择;
elif后面必须写上条件和语句(冒号)
else是选配,根据实际情况来填写(冒号)
举例:成绩等级分析
score=int(input('请输入成绩:')) if score<60: print('该成绩等级为E') pass elif score<70: print('该成绩等级为D') pass elif score<80: print('该成绩等级为C') pass elif score<90: print('该成绩等级为B') pass else: print('该成绩等级为A') pass
比较数字
import random comp=random.randint(0,100) peo=int(input('请输入数字(0~100)')) print('电脑数字为%d'%comp) if comp>peo: print('你输了') pass elif comp==peo: print('平了') pass else: print('你赢了') pass
if-else嵌套使用(多条件限制)
外层的if判断,也可以是if-else
内层的if判断,也可以是if-else
根据实际开发的情况进行选择
if 条件1: if 条件2: print('满足条件1和条件2') pass else: print('满足条件1,不满足条件2') pass pass elif 条件3: if 条件4: print('满足条件3和条件4')
二、循环语句
1.while(适用于未知的循环次数,用于判断)
循环结构
语法特点
有初始值
通过条件表达式判断循环
必须有变量(循环体内计数变量)的自增或自减,否则会造成死循环
使用条件:循环的次数不确定,依靠循环条件来结束
目的:为了将相似或相同的代码变得更加简洁,重复使用
举例:
#输出1-100 i=1 while i<=100: print(i) i+=1 pass
#比数字可循环版 import random a=1 #a用来充当flag,判断用户是否继续 while a==1: comp=random.randint(0,100) peo=int(input('请输入数字(0~100)')) print('电脑数字为%d' % comp) if comp > peo: print('你输了') pass elif comp==peo: print('平了') pass else: print('你赢了') pass stri=input('是否继续?(Yes or N)') if stri=='Yes': pass else: a=0 pass pass
while嵌套使用
举例:
#三角形九九乘法表 i=9 j=1 while i>=1: j=1 while j<=i: print('%d*%d=%d'%(j,i,i*j),end=' ') j+=1 pass i-=1 print() pass
#等腰三角形 a=int(input('请输入三角形的高:')) i=a while i>=0: j=i while j>0: print(end=' ') j-=1 pass k=2*(a-i+1)-1 cou=1 while cou<=k: print('*',end=' ') cou+=1 pass i-=1 print() pass
2.for循环:适用于已知的循环次数(可迭代对象的遍历)
在Python中for循环可以遍历任何序列的项目,如一个列表或者一个字符串等。
语法特点:遍历操作,一次的取容器中的每个值。
格式:
举例:
s1='萨顶顶反而会饥饿' for i in s1: print(i) pass for num in range(1,11,1): #range(起点,终点(不包括),步长) print(num,end=' ') pass
#for循环九九乘法表 for i in range(1,9): for j in range(1,i+1): print('%d*%d=%d'%(j,i,j*i),end=" ") pass print() pass
3.break和continue
break 代表中断结束,只要满足条件,直接结束本层循环
continue 结束本次循环,继续进行下次循环(当continue满足条件的饿时候,本次循环剩下的语句将不在执行,后面的循环还继续。)
这两个关键字,只能用在循环中
举例:
4.for-else的使用(while-else同理)
for i in range(1,9): print(i) if i==5: break pass pass else: print('循环完全遍历,中途没有break才会输出这句话') #登录系统可以使用 pass
account='sheldon' psw='123' for i in range(1,4): print(i,end=' ') zh=input('请输入账号:') pd=input('请输入密码:') if account==zh and psw==pd: print('恭喜登录成功!') break pass pass else: print('超过登录次数{},3分钟后重试!'.format(i))
本日练习
一、猜年龄小游戏,有三点需求
1.允许用户最多尝试3次
2.每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序
3.如何猜对了,就直接退出
import random cou=3 flag=1 while flag==1: agec = random.randint(1, 100) cou=3 while cou>=0: age=int(input('请输入年龄:')) if age==agec: print('恭喜您猜对了') s=input('是否继续?y or n') if s=='y': pass else: flag=0 pass break pass else: print('猜错了%d,请继续:'%agec) cou-=1 pass pass else: print('次数已经用完') s2=input('是否继续?y or n') if s == 'y': pass else: flag = 0 break pass pass
二、小王身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小王计算他的BMI指数,并根据BMI指数:
低于18.5 过轻
18.5-25: 正常
25-28: 过重
28-32: 肥胖
高于32: 严重肥胖
用if-elif判断并打印结果
high=float(input('请输入身高(单位/m):')) weight=float(input('请输入体重(单位/kg):')) ans=float(weight/high**2) print('你的BMI指数为:%f'%ans) if ans<18.5: print('您的体质过轻') pass elif ans<25: print('您的体质正常') pass elif ans<28: print('您的体质过重') pass elif ans<32: print('您的体质肥胖') pass else: print('您的体质严重肥胖') pass