附视频链接:32.分支结构_嵌套if的使用_哔哩哔哩_bilibili
嵌套if
语法结构:if 条件表达式1:
if 内层条件表达式:
内层条件执行体1
else:
内层条件执行体2
else:
条件执行体
'''会员 >=200 8折 >=100 9折 不打折 非会员 >=200 9.5折 不打折''' answer = input('您是会员吗?y/n') money = float(input('请输入您的购物金额:')) #外层判断是否是会员 if answer=='y': if money>=200: print('打八折,付款金额为:',money*0.8) elif money >=100: print('打九折,付款金额为:',money*0.9) else: print('不打折,付款金额为:',money) else: if money>=200: print('打九五折,购物金额为:',money*0.95) else: print('不打折,付款金额为:',money)
条件表达式: X if 判断条件 else Y (如果条件为真,输出左边的X,否则输出右边的Y)
普通比较:
'''从键盘录入两个整数,比较两个整数的大小''' num_a=int(input('请输入第一个整数:')) num_b=int(input('请输入第二个整数:')) #比较大小 if num_a>=num_b: print(num_a,'大于等于',num_b) else: print(num_a,'小于',num_b)
用条件表达式比较:
num_a=int(input('请输入第一个整数:')) num_b=int(input('请输入第二个整数:')) print('使用条件表达式进行比较') print( (num_a,'大于等于',num_b) if num_a>=num_b else (num_a,'小于',num_b))
或者
num_a=int(input('请输入第一个整数:')) num_b=int(input('请输入第二个整数:')) print('使用条件表达式进行比较') print( str(num_a)+'大于等于'+str(num_b) if num_a>=num_b else str(num_a)+'小于'+str(num_b))
12、pass语句:语句什么都不做,只是一个占位符,用在语法上需要语句的地方
什么时候使用:先搭建语法结构,还没想好代码怎么写的时候
与哪些语句一起使用:1)if语句的条件执行体
2)for—in语句的循环体
3)定义函数时的函数体
#pass语句,什么都不做,只是一个占位符,用到需要写语句的地方 answer = input('您是会员吗?y/n') #判断是否是会员 if answer=='y': pass else: pass
13、内置函数range():用于生成一个整数序列。
创建range对象的三种方式:
range(stop):创建一个(0,stop)之间的整数序列,步长为1
range(start,stop):创建一个(start,stop)之间的整数序列,步长为1
range(start,stop,step):创建一个(start,stop)之间的整数序列,步长为step
#range()的三种创建方式''' 第一种创建方式,只有一个参数(小括号中只给了一个数)''' r = range(10) #[0,1,2,3,4,5,6,7,8,9],默认从0开始,默认相差1称为步长 print(r) #结果为range(0,10),即返回值是一个迭代器对象 print(list(r)) #用于查看range对象中的整数序列 list是列表的意思'''第二种创建方式,给了两个参数(小括号中给了两个数)''' r = range(1,10) #指定了起始值,从1开始,到十结束(不包含10),默认步长为1 print(r) print(list(r)) #[1, 2, 3, 4, 5, 6, 7, 8, 9] '''第三种创建方式,给了三个参数(小括号中给了三个数)''' r = range(1,10,2) print(r) print(list(r)) #[1, 3, 5, 7, 9]
'''判断指定的整数在序列中是否存在用in和not in''' print(10 not in r) #True print(9 not in r) #False
14、循环结构
while是判断N+1次,条件为True执行N次
#计算0到4之间的累加和 ''' 4步循环法 1.初始化变量 2.条件判断 3.条件执行体(循环体) 4.改变变量 总结:初始化的变量与条件判断的变量与改变的变量为同一个''' sum = 0 #用于存储累加和 #初始化变量为0 a = 0 #条件判断 while a<=4: #条件执行体(循环体) sum+=a #改变变量 a+=1 print('和为:',sum)
#计算1到100之间的偶数和 sum = 0 #用于存储偶数和 #初始化变量 a = 1 #条件判断 while a<=100: #条件执行体(求和) #条件判断是否是偶数 if a%2==0: 或者if not bool(a%2): sum+=a #改变变量 a+=1 print('1—100之间的偶数和为:',sum)
for—in循环
in表达从(字符串、序列等)中依次取值,又称为遍历
for—in遍历的对象必须是可迭代对象
语法结构:for 自定义的变量 in 可迭代对象:
循环体
for item in 'python': #第一次取出来的是p,将p赋给item,将item的值输出 print(item) #range() 产生一个整数序列,也是一个可迭代对象 for i in range(10): #依次取出0,1,2,3,4,5,6,7,8,9赋给i,将i的值输出 print(i) #如果在循环体中不需要使用到自定义变量,可将自定义变量写为“_” for _ in range(5): #range()函数可以用作for循环的循环次数 print('人生苦短,我用python') #输出5次“人生苦短,我用Python”
print('使用for循环,计算1到100之间的偶数和') sum=0 for item in range(1,101): if item%2==0: sum+=item print('1到100之间的偶数和为:',sum)
#输出100到999之间的水仙花数# 举例:153=3*3*3+5*5*5+1*1*1 (满足此条件的就是水仙花数) for item in range(100,1000): ge=item%10 #个位 shi=item//10%10 #十位 bai=item//100 #百位 #print(bai,shi,ge) #判断 if ge**3+shi**3+bai**3==item: print(item)
流程控制语句break:用于结束循环结构,通常与分支结构if一起使用
for ... in ...: while(条件)
...... ...
if ...: if ...:
break break (即满足一定条件使用break强制结束循环)
#从键盘录入密码,最多录入3次,如果正确就结束循环 for item in range(3): pwd=input('请输入密码:') if pwd=='8888': print('密码正确') break else: print('密码不正确')
a = 0 while a<3: '''条件执行体(循环体)''' pwd=input('请输入密码:') if pwd=='8888': print('密码正确') break else: print('密码错误') '''改变变量''' a+=1
流程控制语句continue语句:用于结束当前循环,进入下一次循环,通常与分支结构中的if一起使用。
for ... in ...: while(条件)
...... ...
if ...: if ...:
continue continue (即满足一定条件使用continue结束当前循环开始新循环)
...... ......
'''要求输出1到50之间所有5的倍数 5的倍数的共同点: 和5的余数为0的数都是5的倍数 什么样的数不是5的倍数,即与5的余数不为0的数都不是5的倍数 要求使用continue实现''' for item in range(1,51): if item%5==0: print(item) print('————使用continue实现————') for item in range(1,51): if item%5!=0: continue print(item)
else语句:与else语句配合使用到额三种情况
if .... else ...... if条件表达式不成立时执行else
while ..... else ..... while次数执行完后执行else,当碰到break语句时不再执行下面的else
for ..... else ...... for次数执行完后执行else,当碰到break语句时不再执行下面的else
for item in range(3): pwd=input('请输入密码:') if pwd=='8888': print('密码正确') break else: print('密码不正确') else: print('对不起,三次密码均输入错误')
a=0 while a<3: pwd=input('请输入密码:') if pwd=='8888': print('密码正确') break else: print('密码错误') a+=1 else: print('对不起,三次密码均输入错误')
嵌套循环:
for i in range(1,4): #行表,执行三次,一次是一行 for j in range(1,5): print('*',end='\t') #不换行输出 print() #换行 print('结束')
#输出九行,从一开始每行增加一个*的直角三角形 for i in range(1,10): #行数 for j in range(1,i+1): print('*',end='\t') print() print('结束')
#输出九九乘法表 for i in range(1,10): #行数 for j in range(1,i+1): print(j,'*',i,'=',i*j,end='\t') print() print('结束')
二重循环中的break和continue:二重循环中的break和continue用于控制本层循环。
'''流程控制语句break与continue在二重循环中的使用''' for i in range(5): for j in range(1,11): if j%2==0: #break continue print(j,end="\t") print()
循环总结:while用于次数不固定的循环,初始条件不成立一次都不执行。
for...in...用于遍历可迭代对象
while与for...in...相互嵌套