Python_判断语句和循环语句

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
  • 32
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值