Python搬砖之旅(9th day):while循环结构专题

Python搬砖之旅(9th day):while循环结构专题

while 循环的表现形式

while循环的语法格式:
1,
while 变量/条件表达式:
循环体
2,
while 变量/条件表达式:
循环体
else:
语句
说明:
1,条件表达式指返回值为布尔值True 或者 False的变量或表达式,比如常见的布尔变量、比较运算、逻辑运算等等。
2,如果变量的值为0、None、或者是False,其返回的值均为False,则程序判断条件不成立,不会继续执行循环体中的语句;当条件表达式判断为True,或者变量为非空,非0,True的值时,程序判断条件成立,执行循环体中的语句。
3,在while … else…结构中,只有当while循环正常结束的时候(即不满足条件表达式的情况下)才会执行else之后的代码段;如果while循环是非正常结束的(如执行了break语句被中断),则不执行else之后的代码段。
小练习:
1,使用while…else循环结构计算1+2+3+ … + 100 的运算结果,并打印出来

# 计算1+2+3+ ... + 100 的运算结果,并打印
# 用一个变量sum_hundred保存运算结果,用一个变量i循环自加1
sum_hundred = i = 0
while i <= 100:
    sum_hundred += i
    i += 1
else:
    print("100以内的整数之和是:{}".format(sum_hundred))

2,尝试使用while循环打印金字塔(使用*输出金字塔)
在这里插入图片描述

n = int(input("请输入金字塔的层数:"))
i = 1
while i <= n:
    print((n - i) * ' ' + (i * 2 - 1) * '*')
    i += 1

注意:
1, while 循环适合于不确定循环次数的循环结构,当条件表达式不再满足某种条件时,程序则不再执行循环体中的代码。
2, while 循环需要注意,不要让程序陷入死循环(指条件表达式一直为True的情况)。可以通过设置一些循环变量,让循环变量通过自增或自减的方式不断迭代,直到不符合某个条件时,结束循环。
3,while 循环的循环变量要定义在循环体外,先定义再使用。

break、continue、pass循环控制语句

break : 程序执行过程被中断,不再执行当层break语句之后的代码,跳出当层循环。
continue : 程序不再执行当层continue语句之后的代码,跳出当次循环,并执行下一次循环。
pass : 没有特殊效果,只起到占位的作用,如果没有想好具体的处理方法,可以先用pass代替,保证程序语法的完整性。
小练习:
1,观察下面两段小程序,说出他们的运算结果

# 观察下面两段小程序,说出他们的运算结果
i = 1
while i < 10:
    i += 2
    if i == 5:
        break
print("i现在的值是:{}".format(i) , end = " ")

print()

i = 1
while i < 10:
    i += 2
    if i == 5:
        continue
print("i现在的值是:{}".format(i) , end = " ")

2, 实现一个功能:输入一串字符,遇到空格则只输出空格之前的字符

"""
输入一串字符,遇到空格则只输出空格之前的字符
"""
s = input("请输入一串任意字符:")
i = 0
while i < len(s):
    if s[i] == " ":
        break
    print(s[i], end="")
    i += 1

注意:
1,break 语句和 continue 语句只能用于最内层的循环体;
2,break 语句和 continue 语句之后的代码不再执行;
3,如果是while循环的嵌套形式,那么在内层循环语句中断后,外层的循环语句依旧执行。

while True循环

while True是典型的死循环结构,但是我们可以通过搭配break语句,实现特定的业务场景。
小练习:
实现一个业务场景,当输入"Y"或者"y"的时候,跳出循环,否则根据每次输入的分数判断成绩等级。
0-59 不及格;60-74 中等;75-84良好;85-100优秀

"""
实现一个业务场景,当输入"Y"或者"y"的时候,跳出循环,
否则根据每次输入的分数判断成绩等级。
0-59 不及格;60-74 中等;75-84良好;85-100优秀
"""
while True:
    s = input("是否结束当前程序?Y|y退出,其他任意键继续:")
    if s.lower() == "y":
        break
    score = int(input("请输入一个0-100之内的整数:"))
    if score < 0 or score > 100:
        print("请重新输入!")
        continue
    elif score >= 0 and score < 60:
        print("不及格")
    elif score >= 60 and score < 75:
        print("中等")
    elif score >= 75 and score < 85:
        print("良好")
    else:
        print("优秀")

while 循环的嵌套

while 循环的嵌套是常见的程序结构,先执行完内层的循环,再执行外层的循环。假设内层需要执行m次,外层需要执行n次,那么总的循环次数就是m * n次。
小练习:
打印0-100之内的质数
判断质数的条件:除了1和其本身,不能被其他整数整数。
注意:最小的质数从2开始

# 判断100以内的质数(2-100)
i = 2
while i <= 100:
    j = 2
    while j < int(i/2):
        if i % j == 0:
            break
        j += 1
    else:
        print("{}是质数".format(i))
    i += 1
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清弦墨客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值