20201102 第五堂 条件控制语句
条件运算符
-
形式:语句1 + if + 表达式 + else + 语句2
如果表达式为True,则结果为语句1
如果表达式为False,则结果为语句2 -
示例:
a = 10
b = 20
print(‘a的值比较大’) if a>b else print(‘b的值比较大’)
结果:b的值比较大#求a和b之间的最大值 a = 30 b = 40 m = a if a > b else b print(m) 结果:40
-
练习:求a和b和c之间的最大值
#求a和b和c之间的最大值
a = 30
b = 40
c = 50
m = a if a > b else b
m = b if b > c else c
print(m)
结果:50
运算符的优先级
- 非布尔值的语或运算(比较优先级)
a = 2 or 3 and 4
print(a)
结果:2
说明:and的优先级比or高
流程控制语句
-
if语句
- 形式:if + 表达式:print ( )
注意:默认情况下,if 语句只会作用于紧跟其后的一个print()。True则执行,False则不执行
num = 50
if num > 20: print(‘num比20大’)
结果:num比20大
- 形式:if + 表达式:print ( )
-
如果希望if 语句可以控制多条语句,则可以在if后面跟着一个代码块
什么是代码块?:就是一种为代码的分组机制,代码块以缩进开始
语法 :
if 条件表达式:
代码块
示例:
if True:
print('haha')
print('hihi')
print('hehe')
结果:haha
hihi
hehe
if False:
print('haha')
print('hihi')
print('hehe')
结果:无显示
-
input()函数
接收一个输入数据,返回为str类型
input( )函数输入时,需要等待函数运行,确定之后才会继续下面的运行
**需要在下面红框输入用户名字才会继续执行下一步-
工资例子:
TypeError: ‘>=’ not supported between instances of ‘str’ and ‘int’ 字符串不能和整数作比较#让用户输入一个工资 方法一: value = input('请输入你的工资:') value = int(value)#将value强行变成数值类型 方法二: value = int(input('请输入你的工资:')) #如果用户的工资大于2000就给一个提示 能养活自己了 if value >= 2000: print('能养活自己了!!') 结果:请输入你的工资:5000 能养活自己了!!
-
-
If - Else 语句
-
语法:
if 条件表达式:
代码块
else:
代码块 -
示例:
#让用户输入一个工资 value = int(input('请输入你的工资:')) #如果用户的工资大于2000就给一个提示 能养活自己了 if value >= 2000: print('能养活自己了!!') else: print('你该加油了!') 结果:请输入你的工资:300 你该加油了!
-
-
If-Elif-Else 语句
只会有一个代码块执行
语法:
if 条件表达式:
代码块
elif 条件表达式:
代码块
elif 条件表达式:
代码块
elif 条件表达式:
代码块
…
else:
代码块
value = 30000
if value >= 30000:
print('有钱任性')
elif value >= 20000:
print('有钱真好')
elif value >= 10000:
print('月薪上万了')
elif value >= 50000:
print('还ok')
elif value >= 2000:
print('能养活自己了')
else:
print('你该加油了!')
结果:有钱任性
-
编写if - elif - else语句需要注意的问题
下面情况是不会输入结果的,因为程序只会执行第一个语句之后就停止了。这种情况是因为代码编写不够清晰
value = 8000if value >=2000: print('能养活自己了') elif value >= 5000: print('还ok') elif value >= 10000: print('月薪上万') else: print('你该加油了')
修改:
value = 8000if value >=2000 and value < 5000: print('能养活自己了') elif value >= 5000 and value < 10000: print('还ok') elif value >= 10000: print('月薪上万') else: print('你该加油了')
-
练习:
#根据指定的月份打印该月份所属的季节
# 3 4 5 春季 6 7 8 夏季 9 10 11 秋季 12 1 2 冬季
month = 3if 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 == 12: print('冬季') else: print('月份不存在') 结果:春季
-
If 语句练习
我家的狗5岁了,5岁的狗相当于人多大的年龄呢?
狗的前两年,每一年相当于人类的10.5岁,然后每增加1年就增加4岁
那么5岁的狗就相当于人类的年龄是10.5 + 10.5 + 4 + 4 + 4 = 33
*编写一个程序获取狗的年龄,然后通过程序来判断人的年龄是多少?如果用户输入的是负数,请提示一个错误的信息
dog_age = float(input(‘请输入狗的年龄:’))
human_age = 0#检查用户输入的年龄是否为负数 if dog_age < 0: print('输入的年龄不正确!') #如果狗的年龄在2岁以下(包含2岁) elif dog_age <= 2: #直接用狗的当期那年龄乘以10.5 human_age = dog_age * 10.5 #如果狗的年龄在2岁以上 else: #先计算2岁的年龄 human_age = 2 * 10.5 #再计算超过2岁年龄的部分,和2岁的再相加 #可以打:human_age = human_age + (dog_age - 2) * 4 human_age += (dog_age - 2) * 4 #等于上面,一样意思 if dog_age > 0: #控制下面的程序出现的条件情况 print(dog_age,'岁的狗,年纪相当于',human_age,'岁的人') 结果: 请输入狗的年龄:12 12.0 岁的狗,年纪相当于 61.0 岁的人
方法二:
dog_age = float(input('请输入狗的年龄:')) human_age = 0 if dog_age > 0: #控制下面的程序 #如果狗的年龄在2岁以下(包含2岁) if dog_age <= 2: #直接用狗的当期那年龄乘以10.5 human_age = dog_age * 10.5 #如果狗的年龄在2岁以上 else: #先计算2岁的年龄 human_age = 2 * 10.5 #再计算超过2岁年龄的部分,和2岁的再相加 #可以打:human_age = human_age + (dog_age - 2) * 4 human_age += (dog_age - 2) * 4 #等于上面,一样意思 print(dog_age,'岁的狗,年纪相当于',human_age,'岁的人') #检查用户输入的年龄是否为负数 if dog_age < 0: print('输入的年龄不正确!') 结果: 请输入狗的年龄:-3 输入的年龄不正确!
-
While循环语句
-
让指定的代码块重复执行
-
死循环
-
语法:
while 表达式:
代码块 -
示例:
i = 22 while i < 20: print(i) 结果:无结果 i = 2 while i < 20: print(i) 结果:不停循环 2
-
循环的三要素:
-
初始化表达式
-
条件表达式
-
更新条件表达式
#1.初始化表达式 我们可以初始化一个变量 i = 0 #2.条件表达式 用来设置循环执行的条件 while i < 10: i += 1 print(i) #3.更新条件表达式 修改了初始化变量的值 #i += 1 # i = i + 1 else: print('我是else语句中的代码')
-
-
课后作业
- 用条件运算符找3个值中的最大值(不要用if语句)
- 求1000以内的所有水仙花数
水仙花数指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1 ** 3 + 5 ** 3 + 3 ** 3
= 153)
153就是个水仙花数 - 获取用户输入的任意数,判断是否为质数?
质数只能被1和它本身整除的数 - 把老师敲的代码敲三遍