05 - 条件控制语句
1. 条件判断语句(if语句)
-
执行流程
- if 语句在执行时,会先对条件表达式进行求值判断
- 如果为True,则执行if后的语句
- 如果为False,则不执行
-
语法
-
if 条件表达式: 代码块
-
-
代码块: 代码块中保存一组代码,同一代码块中的代码,要么都执行要么都不执行
-
num = 50 if num > 20: print(num,'num比20大') print('结束') # 50 num比20大 # 结束 num = 10 if num > 20: print(num,'num比20大') print('结束') # 无返回值 ,都不执行
-
-
代码块以缩进开始,直到代码恢复到之前的缩进级别时结束
-
代码块就是一种为代码分组的机制
2 . input()函数
-
该函数用来获取用户的输入
-
input()调用后,程序会立即暂停,等待用户输入
-
用户输入完内容后回车,程序才会继续向下执行
-
用户输入完成以后,其输入的内容会以返回值的形式返回
-
content = input('请输入:') if content == 'python': print('验证成功') # 请输入:python # 验证成功
-
3 . if – else语句
-
语法
-
if 条件表达式 : 代码块 else : 代码块
-
-
执行流程
-
if-else语句在执⾏时,先对if后的条件表达式进⾏求值判断
-
如果为True,则执⾏if后的代码块
-
如果为False,则执⾏else后的代码块
-
value = int(input('请输入您的工资:')) if value >= 2000: ## 输入2500,条件判断为True,运行if语句 print('还行') else: # 输入1500,条件判断为False,运行else语句 print('太少') # 请输入您的工资:1500 # 太少 # 请输入您的工资:2500 # 还行
-
4 . if - elif - else 语句
-
语法
-
if 条件表达式 : 代码块 elif 条件表达式 : 代码块 elif 条件表达式 : 代码块 ........ else : 代码块
-
-
执行流程
- if-elif-else语句在执⾏时,会自上向下依次对条件表达式进⾏求值判断
- 如果表达式的结果为True,则执⾏当前代码块,然后语句结束
- 如果表达式的结果为False,则继续向下判断,直到找到True为⽌
- 如果所有的表达式都是False,则执⾏else后的代码块
-
总结
-
if-elif-else中只会有⼀个代码块会执⾏
-
value = 1000 if value >= 30000: print(value,'任性') elif value >= 20000: print(value,'不错') elif value >= 10000: print(value,'过万') elif value >= 5000: print(value,'一般') elif value >= 2000: print(value,'刚够') else: print(value,'吃糠') # 1000 吃糠 # 程序运行自上而下,当遇到条件为True,即返回当次结果,不进行后面的判断 # 以下value满足所有判断条件,只返回第一个判断条件的结果 value = 30000 if value >= 2000: print(value,'刚好够') elif value >= 5000: print(value,'一般') elif value >= 10000: print(value,'过万') elif value >= 20000: print(value,'不错') # 30000 刚好够
-
练习一 根据指定的月份打印该月份是几月,3 4 5 春季 6 7 8 夏季 9 10 11 秋季 12 1 2 冬季
-
month = 4 if month == 3 or month == 4 or month == 5 : print('春季') elif month == 6 or month == 7 or month == 8 : print('夏季') elif month == 9 or month == 10 or month == 11 : print('秋季') elif month == 12 or month == 1 or month == 2 : print('冬季') else: print('您输入的月份有误!!!') # 春季 month = -4 if month < 0 or month > 12: print('您输入的月份有误!!!') elif month >= 3 and month <= 5: print('春季') elif month >= 6 and month <= 8: print('夏季') elif month >= 9 and month <= 11: print('秋季') else: print('冬季') # 您输入的月份有误!!!
-
-
练习二
-
获取用户输入狗的年龄 然后通过程序显示其相当于人的年龄
-
狗的前两年每一年相当于人类的是10.5岁 ,然后每增加一年增加四岁
5岁的狗相当于人的年龄 10.5+10.5+4+4+4 = 33
-
如果用户输入的是负数,请提示输入有误
-
dog_age = float(input('请输入您家狗狗的年纪:')) person_age = 0 if dog_age < 0: print('您输入的数据有误!!!') elif dog_age <= 2 : person_age = dog_age * 10.5 print(f'您家狗狗的年纪相当于人的{person_age}岁!') else : person_age = 2 * 10.5 + (dog_age-2) * 4 print(f'您家狗狗的年纪相当于人的{person_age}岁!') # 请输入您家狗狗的年纪:12 # 您家狗狗的年纪相当于人的61.0岁! dog_age = float(input('请输入您家狗狗的年纪:')) person_age = 0 if dog_age > 0: if dog_age <= 2 : person_age = dog_age * 10.5 else: person_age =2 * 10.5 + (dog_age - 2 ) * 4 print(f'您家狗狗的年纪相当于人的{person_age}岁!') else: print('您输入的年纪有误 !!!') # 请输入您家狗狗的年纪:12 # 您家狗狗的年纪相当于人的61.0岁!
-
-
5 - while 语句
-
循环语句可以使指定的代码块重复指定的次数。循环语句分成两种,while循环和for循环
-
语法
-
while 条件表达式 : 代码块 else: 代码块
-
-
执行流程
- while语句在执行时,会先对while语句后面的条件表达式进行求值判断
- 如果判断结果为True,则执行循环体的逻辑(代码块)
- 循环体执行完毕之后,继续对条件表达式进行求值判断,以此类推
- 知道判断结果为False .则终止循环,或执行else语句中的逻辑
-
while循环三要素
-
1 . 初始化表达式,通过初始化表达式来初始化一个变量 例如 i = 0
-
- 条件表达式,用来设置循环的执行条件 例如 i < 3
-
- 更新条件表达式,修改初始化变量的值
-
i = 0 # 初始化表达式,通过初始化表达式来初始化一个变量 例如 i = 0 while i < 3: # 条件表达式,用来设置循环的执行条件 例如 i < 3 i += 1 # 更新条件表达式,修改初始化变量的值 print(i) else: print('结束') # 1 # 2 # 3 # 结束 i = 0 while i < 3: print(i) i += 1 else: print('结束') # 0 # 1 # 2 # 结束 i = 0 while i < 3: i += 1 print(i,'hello') # 1 hello # 2 hello # 3 hello
-
练习1 : 获取100以内所有的偶数
-
i = 0 while i < 100: i += 1 if i % 2 == 0: print(i)
-
-
练习2: 求100以内所有的偶数之和
-
i = 0 j = 0 while i < 100: i += 1 if i % 2 ==0: j += i print(i,j) # 100 2550
-
-
6 - 循环嵌套
-
Python语言允许一个循环体里面嵌入另一个循环
-
语法
-
while 条件表达式 : 代码块 else: 代码块 for 变量 in 循环规则: for 变量 in 循环规则: 代码块 代码块
-
i = 0 while i < 3: j = 0 # 不能放在循环体外 while j < 5: print('*',end = '') j += 1 print() i += 1 # ***** # ***** # *****
-
7 - break和continue
-
break 可以用来立即退出循环语句,包括else语句
-
i = 0 while i < 5: i += 1 if i == 3 : break print(i) else: print('hello') # 1 # 2
-
-
continue 用来跳过当初循环
-
i = 0 while i < 5: i += 1 if i == 3 : continue print(i) else: print('hello') # 1 # 2 # 4 # 5 # hello
-
8 - 九九乘法表
-
代码
-
for i in range(1,10): for j in range(1,i+1): print(f'{j}*{i}=',j*i,end='\t') print() # 输出 1*1= 1 1*2= 2 2*2= 4 1*3= 3 2*3= 6 3*3= 9 1*4= 4 2*4= 8 3*4= 12 4*4= 16 1*5= 5 2*5= 10 3*5= 15 4*5= 20 5*5= 25 1*6= 6 2*6= 12 3*6= 18 4*6= 24 5*6= 30 6*6= 36 1*7= 7 2*7= 14 3*7= 21 4*7= 28 5*7= 35 6*7= 42 7*7= 49 1*8= 8 2*8= 16 3*8= 24 4*8= 32 5*8= 40 6*8= 48 7*8= 56 8*8= 64 1*9= 9 2*9= 18 3*9= 27 4*9= 36 5*9= 45 6*9= 54 7*9= 63 8*9= 72 9*9= 81
-
i = 0 while i < 10 : j = 0 while j < i : j += 1 print(f'{j}*{i}=',j*i,end = '\t') print() i += 1
-