Python连载(0010): While循环

本文详细介绍了Python中的循环结构,包括while循环、for循环的使用,以及break和continue语句的控制功能。通过实例解析了循环在猜数字游戏中的应用,并探讨了死循环的概念。此外,还讨论了while...else...结构及其在循环结束条件判断中的作用。
摘要由CSDN通过智能技术生成

1. 什么是循环?

循环就是在某个条件满足的情况下,一直做某件事。

其实孙悟空被压在五指山下就是一个循环,观音菩萨跟猴子说,你在这里一直等,等到唐僧来了,你就可以出来了。这个逻辑用Python的while循环表示就是:

while 唐僧没来:
    猴子等着

while循环的语法就是:

while 条件成立:
    执行代码块

循环结束后,执行此处代码

2. 简单的循环

'''
程序要求:
编写一段代码,在屏幕上输出0~100之间的所有整数。
'''

num = 0
while num < 100:
    # 当变量num小于100时,将其输出到屏幕上,并将num的值加1
    # 当变量num大于等于100时,循环结束
    print("{}".format(num))
    num += 1
'''
程序要求:
编写一段代码,在屏幕上输出0~100之间的所有偶数。
'''

num = 0
while num < 100:
    # 当变量num小于100时,判断其是否能被2整除。
    # 如果能整除,则将其输出到屏幕上,否则不输出
    # 无论是否能被2整除,都将num的值加1
    # 当变量num大于等于100时,循环结束
    if (num % 2) == 0:
    	print("{}".format(num))
    num += 1

3. break语句:中止循环

正常情况下,只有在while的判定条件不满足时才会结束循环。但实际使用时,有些场景确需要提前结束循环,这个时候就需要用到break语句。

'''
猜数字小游戏

程序要求:
1. 生成一个0~10之间的随机整数
2. 循环获取用户输入,允许用户输入三次
3. 当用户输入的值等于随机数时,结束循环;否则,就要等三次机会耗尽之后自动结束循环。
'''
import random	# 导入随机数生成模块

rand_num = random.randint(0,10)	# 生成一个0~10之间的整数

count = 0
while count < 3:
    in_num = int(input("请输入一个0~10之间的整数:"))	# 接收一个用户输入
    if in_num == rand_num:
        # 当用户输入等于随机数时,输出提示信息,并通过break语句跳出循环
        print("恭喜你,猜对了。")
        break
    count += 1

print("游戏结束,随机数是{}。".format(rand_num))

上面的程序中,如果用户在第1次输入时就猜对了,那么就会执行break语句直接跳出循环,执行最后的print()语句输出游戏结束信息。

总结一句话来说,break语句就是让程序可以提前结束while循环。

4. continue语句:跳过本次循环

continuebreak有些类似,但区别在于continue只是中止本次循环,还会接着执行后面的循环,而break则是完全中止循环。

'''
程序要求:
遍历1~100以内的所有整数,并将小于20或者大于90的数输出到屏幕。
'''
count = 0
while count < 100:
    count += 1
    if 20 <= count <= 90::
        # 当20 <= count <= 90时,执行continue语句,
        # 会跳过后面的print(),直接执行下一次循环。
        # 例如,count = 20时,满足if条件,执行continue,跳过print()
        # 直接进入下次循环判定,count < 100,然后执行count += 1,
        # 此时count变为21,还是满足if条件,则继续continue,
        # 跳过print(),进入下次循环判定...
        continue
    print("{}".format(count))
print("循环结束。")

总结:continue语句中止本次循环,直接跳过循环代码块中continue语句之后的内容,开启下次循环。

5. while…else…

语法:

while 条件:
    执行代码块
else:
    # 如果循环自然结束,而不是break导致的结束,则执行该代码块
    执行代码块

while 后面的else 作用是指,当while 循环正常执行完,中间没有被break 中止的话,就会执行else后面的语句

# 示例1:循环自然结束,else中的代码会被执行
count = 0
while count <= 5 :
    count += 1
    print("Loop",count)
else:
    print("循环正常执行完啦")
print("-----out of while loop ------")
# 示例2:循环过程中,执行break语句导致循环提前终止,不会执行else中的代码
count = 0
while count <= 5 :
    count += 1
    if count == 3:
        break
    print("Loop",count)
else:
    print("循环正常执行完啦")
print("-----out of while loop ------")

6. 死循环

死循环就是给while传入一个一直满足的判定条件,那么循环就永远不会结束。

while True:
    print("这是一个死循环,永远不会结束...")

7. 猜年龄小游戏

'''
练习:猜年龄游戏升级版

要求:

允许用户最多尝试3次
每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序
如果猜对了,就直接退出
'''

import random

# 随机生成一个年龄
age = random.randint(0, 100)

count = 0
while count < 3:
    input_age = int(input("请输入你猜测的年龄值(还有%d次机会):" % (3 - count)))
    if input_age == age:
        print("猜对了,牛批!")
        break
    else:
        print("猜错了,减少一次机会。")
        count += 1
        if count >= 3:
            sel = input("机会都用完了,还想继续猜吗?(Y/y/N/n):")
            if sel.strip() == "Y" or sel.strip() == "y":
                print("用户选择继续游戏!")
                count = 0
            elif sel.strip() == "N" or sel.strip() == "n":
                print("用户选择退出!")
                break
            else:
                print("用户输入非法值,退出!")
                        
print("游戏结束!正确的年龄是{}岁!".format(age))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值