Python的判断语句
1.布尔类型和比较运算符 2.if语句的基本格式 3.if else语句 4.if elif else语句 5.判断语句的嵌套 6.实战案例
布尔类型
布尔类型的字面量:
- True表示真
- false表示假
定义变量存储布尔类型数据:
变量名称 = 布尔类型字面量
比较运算符
- == 判断内容是否相等
- != 判断内容是否不相等
if判断语句
场景:生活中的判断
基础语法:
if 判断条件:
输出结果
示例:
"""结合前面学习的input输入语甸,完成如下案例:
1.通过input语句,获取键盘输入,为变量age赋值。(注意转换成数字类型)
2.通过if判断是否是成年人,满足条件则输出提示信息,如下:
欢迎来到儿童游乐场,儿童免费,成人收费
请输入你的年龄:30
您已成年,游玩需要补票10元。
祝您游玩愉快。
提示:您已成年,需要补票的信息输出,来自if判断"""
print("欢迎来到儿童游乐场,儿童免费,成人收费")
# 获取键盘输入
age = int(input("请输入你的年龄"))
print(type(age))
# 判断年龄是否大于18
if age >= 18:
print("游玩需要补票10元")
print("祝您游玩愉快")
if else 语句
场景:if满足条件会执行相应的代码语句,在不满足的情况下,存在可供执行的代码?
基础语法:
if 条件:
满足条件时要做的事1
…
else:
不满足条件时要做的事1
…
示例:
"""通过input语句获取键盘输入的身高
判断身高是否超过120cm,并通过print给出提示信息。
欢迎来到动物园
请输入你的身高(cm):130
您的身高超出120cm,游玩需要够票10元
祝您游玩愉快。
欢迎来到动物园。
请输入你的身高(cm):111
您的身高未超出120cm,可以免费游玩,
祝您游玩愉快。"""
print("欢迎来到动物园")
# 获取键盘输出
height = int(input("你的身高是?"))
# if else 判断身高
if height >= 120:
print("您的身高超出120cm,游玩需要够票10元")
else:
print("您的身高未超出120cm,可以免费游玩,")
print("祝您游玩愉快")
if elif else语句
场景:某些场景下,判断条件不止一个,可能有多个
基础语法:
if 条件1:
条件1满足应该做的事情
…
elif 条件2:
条件2满足应该做的事
elif 条件N:
条件N满足应该做的事
else:
所有条件都不满足应该做的事
注意:判断是互斥且有顺序的
满足条件1将不会理会条件2和条件n
可以在条件判断中,直接写input语句,节省代码量
示例:
# 1.定义一个变量,数字类型,内容随意。
# 2.基于input语句输入猜想的数字,通过if和多此elif的组合,判断猜想数字是否和心里数字一样
# 定义一个变量数字
num = 5
# 通过键盘输入数字,通过多次if和elif的组合进行猜想
if int(input("输入数字")) == num:
print("恭喜您,第一次就猜对了")
elif int(input("猜错了,再猜一次")) == num:
print("恭喜您,第二次就猜对了")
elif int(input("猜错了,最后一次机会")) == num:
print("恭喜您,猜对了")
else:
print("没有机会了,下次再接再厉")
判断语句的嵌套
场景:很多场景,不仅仅是多个并列条件,还会有满足前置条件才会有二次判断的多层判断需求
基础语法:
if 条件1:
满足条件1 做的事情1
满足条件1 做的事情2
if 条件2:
满足条件2 做的事情1
满足条件2 做的事情2
第二个if属于第一个if内,只有第一个if满足条件,才会执行第二个if
通过空格缩进,来决定语句之间的
案例:
# 案例:生成一个随机的1-10之间的整数,三次机会猜测,每次猜测都会有对应的提示
# 生成一个1-10的随机数
num = random.randint(1,10)
# print("%d" %num)
# 生成一个猜测的数字
guess_num = int(input("输入你猜想的数字"))
if guess_num == num:
print("恭喜你猜对了")
else:
if guess_num > num:
print("猜的数字较大")
else:
print("猜测的数字较小")
# 再次输入数字
guess_num = int(input("输入你猜想的数字"))
if guess_num == num:
print("恭喜你第二次猜对了")
else:
if guess_num > num:
print("猜的数字较大")
else:
print("猜测的数字较小")
# 第三次输入数字
guess_num = int(input("第三次输入你猜想的数字"))
if guess_num == num:
print("恭喜你第三次猜对了")
else:
print("三次机会用完了,没有猜中")
Python的循环语句
while循环和for循环
while循环
场景:当一个判断语句一直重复执行,简化语句,使用循环
基础语法:
while 条件:
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
…
(只要条件满足,会无限循环执行)
1.while的条件需要得到布尔类型,True表示继续循环,false表示结束循环
2.需要设置循环终止的条件,如 i+=1 配合 i<100 ,就能确保100次后停止,否则将无限循环
基础案例:
# 练习案例:求1-100的和
# 需求:通过while循环,计算从1累加到100的和
# 提示:
# 1.终止条件不要忘记,设置为确保while循环100次
# 2.确保累加的数字,从1开始,到100结束
# 设置初识值
i = 1
sum = 0
# 通过while循环计算1累加到100
while i <= 100:
sum += i
i += 1
# print(f"1累加到100:{sum}")
print("1累加到100:%d" %sum)
进阶案例:
# 案例:生成一个随机的1-100之间的整数,无限机会猜测,通过while循环,配合input语句,判断输入的数字是否等于随机数
# 每次猜测都会提示了数字大了或者小了
# 猜玩数字后,提示猜测了几次
# 生成一个1-100的随机数
num = random.randint(1,100)
# 生成一个变量,记录总共猜了几次
count = 0
# 通过一个布尔类型的变量,来当作循环是否终止的条件
flag = True
# 进行while循环判断
while flag:
count += 1
# 生成一个猜测的数字
guess_num = int(input("输入你猜测的数字"))
if guess_num == num:
print("恭喜你猜中了")
# 设置false为循环终止条件
flag = False
else:
if guess_num > num:
print("你猜测的数字大了")
else:
print("你猜测的数字小了")
print(f"最后的数字是{guess_num},总共猜测了{count}")
while循环的嵌套
场景:重复做某件事的同时还需要加个重复的流程
基础语法:
while 条件1:
条件1满足时,做的事情1
条件1满足时,做的事情2
条件1满足时,做的事情3
…
while 条件2:
条件2满足时,做的事情1
条件2满足时,做的事情2
条件2满足时,做的事情3
…
案例:
# 案例:通过while循环输出九九乘法表
# 定义外层循环的控制变量
i = 1
while i <= 9:
# 定义内层循环的控制变量
j = 1
while j <= i:
# 内层循环的print语句,使用end=''不要换行,使用\t制表符进行对象
print(f"{j}*{i}={i*j}\t",end='')
j += 1
i += 1
print() # print()空内容,就是输出一个换行
for循环
除了while循环语句外,还存在for循环语句
俩者完成的功能基本差不多,但有一些区别:
- while循环条件是自定义的,自行控制循环条件
- for循环是一种”轮询“机制,是对一批内容进行”逐个处理“
轮询就是将待办事项一个一个的处理一遍
for循环无法定义循环条件
基本语法:
for 临时变量 in 待处理数据集:
循环满足条件时执行的代码
range语句
for循环语句,本质上是遍历:序列类型
序列类型:字符串 列表 元组
range语句用于获取一个简单的数学序列
语法1:range(num)
获得一个从0开始,得到num结束的数学序列(不包含num本身)
如range(5)取得的数据是:[0,1,2,3,4]
语法2:range(num1,num2)
获得一个从num1开始,得到num2结束的数学序列(不包含num2本身)
如range(5,10)取得的数据是:[5,6,7,8,9]
语法3:range(num1,num2,step)
获得一个从num1开始,得到num2结束的数学序列(不包含num2本身)
数字之间得步长,以step为准(step默认为1)
如range(5,10,2)取得的数据是:[5,7,9]
案例:
# 练习案例:
# 有几个偶数
# 定义一个数字变量num,
# 内容随意
# 并使用range()语句,获取从1到num的序列,使用for循环遍历它
# 在遍历的过程中,统计有多少偶数出现
# 提示:
# 1.序列可以使用:range(1,num)得到
# 2.偶数通过if来判断,判断数字余2是否为0即可
num = 100
count = 0
for x in range(1,num):
if x%2 == 0:
count += 1
print(f"在1到{num}中总共出现了{count}个偶数")
for循环得遍历作用域
for 临时变量 in 待处理数据集:
循环满足条件时执行的代码
观察此语法,得到临时变量只存在for循环内部,如果在for循环外部访问临时变量:
- 实际上可以访问
- 在规范上,不允许
解决方法,在for循环之前把临时变量定义出来就可以
for循环得嵌套使用
案例:
# 案例:通过for循环去实现九九乘法表
# 通过外层循环控制行数
for i in range(1,10):
# 通过内层控制每一行的数据
for j in range(1,i + 1):
# 在内层循环中输出每一行的内容
print(f"{i}*{j}={i * j}\t", end='')
# 外层循环可以通过print输出一个回车符
print()
循环中断:break和continue
break关键字:直接结束循环
continue关键字:中断本次循环,直接进入下一次循环
关键字处于的位置,在内部循环中只影响内部循环,外部循环中只影响外部循环
案例:
# 练习案例:发工资
# 某公司,账户余额有1W元,给20名员工发工资。
# 员工编号从1到20,从编号1开始,依次领取工资,每人可领取1000元
# 领工资时,财务判断员工的绩效分(1-10)(随机生成),如果低于5,不发工资,换下一位
# 如果工资发完了,结束发工资。
# 提示:
# 使用循环对员工依次发放工资
# continue用于跳过员工,break直接结束发工资
# 定义账户余额变量
salar_count = 10000
for i in range(1,21):
jixiao = random.randint(1, 10)
if jixiao < 5:
print(f"员工{i},绩效为{jixiao},低于5,不发工资,下一位")
continue
else:
salar_count -= 1000
print(f"员工{i},绩效为{jixiao},高于5,发放工资1000,账户余额还剩{salar_count}")
if salar_count <= 0:
print("工资发完了,下月在领取吧")
break