【python百炼成魔】Python循环语句:掌握while循环的实战应用

2023-06-27 12:57:30

前言

在这里插入图片描述

循环结构

1. 什么是循环结构

循环结构是编程中的一种控制结构,用于重复执行一段代码块,直到满足特定的条件为止。它允许程序多次执行相同或类似的操作,从而实现更有效和简洁的代码编写。

循环结构通常用于处理需要进行重复操作的情况,例如遍历列表或数组的元素、执行递增或递减的计算、处理用户输入等等。通过使用循环结构,程序可以自动地重复执行特定的代码块,而不必手动重复相同的操作。

在大多数编程语言中,常见的循环结构有两种:for循环和while循环。

今天我们重点来看while循环

2. python的while循环

语法:

while condition:
    # 执行循环体内的代码

3. 循环语句的图示

在这里插入图片描述

if条件语句,为true执行一次,而while是判断n+1次,条件为true执行n次。

while的使用案例

1. 使用while循环打印从1到5的数字

num = 1

while num <= 5:
    print(num)
    num += 1

初始化num为1,并使用while循环来重复执行打印数字和递增num的操作。每次循环迭代中,我们首先打印当前的num值,然后将num增加1。只要num小于或等于5,循环将继续执行。当num大于5时,条件不再满足,循环停止。

2. 计算1-100的偶数和

num = 1  # 初始化计数器变量num
sum_even = 0  # 初始化偶数和的变量sum_even

while num <= 100:
    if num % 2 == 0:  # 判断num是否为偶数
        sum_even += num  # 如果是偶数,将其累加到sum_even中
    num += 1  # 将计数器num加1

print("1到100之间的偶数和为:", sum_even)

我们使用变量num从1开始遍历到100。在每次循环迭代中,首先判断num是否为偶数,条件是num % 2 == 0。如果满足条件,说明num是偶数,然后将其累加到sum_even变量中。最后,将num加1,继续下一次循环迭代,直到num大于100,while循环结束。

最后,我们输出累加后的偶数和sum_even,结果将是1到100之间的所有偶数的和。

也可以使用更简洁的方法:

sum_even = 0
num = 2  # 从第一个偶数2开始
while num <= 100:
    sum_even += num
    num += 2
print("1到100之间的偶数和为:", sum_even)
  • 首先,我们初始化变量sum_even为0,用于存储偶数的累加和。
  • 初始化变量num为2,因为我们从第一个偶数2开始。
  • 进入while循环,判断num是否小于等于100。如果条件为真,则执行循环体内的代码。
  • 在循环体内,将当前的num值累加到sum_even中。
  • 将num增加2,以获取下一个偶数。因为每次迭代都是偶数,所以我们可以直接增加2,而不需要进行条件判断。
  • 重复步骤3到步骤5,直到num大于100,while循环结束。
  • 最后,我们打印出累加后的偶数和sum_even,结果将是1到100之间的所有偶数的和。

3. 模拟用户登录给三次机会

login_attempts = 0  # 初始化登录尝试次数

while login_attempts < 3:
    username = input("请输入用户名: ")
    password = input("请输入密码: ")

    # 进行用户认证的逻辑判断,此处仅作示例
    if username == "admin" and password == "password":
        print("登录成功!")
        break  # 登录成功,跳出循环
    else:
        print("登录失败,请重试。")
        login_attempts += 1  # 计数器加1

if login_attempts == 3:
    print("登录失败次数过多,账号已锁定。")

4. 猜数字游戏

import random

play_again = True  # 是否继续玩的标志

while play_again:
    secret_number = random.randint(1, 100)  # 生成1到100之间的随机整数
    attempts = 0  # 猜测次数计数器

    while attempts < 3:
        guess = int(input("请猜一个1到100之间的数字: "))

        if guess == secret_number:
            print("恭喜你,猜对了!")
            play_again = False  # 猜对了,不再询问是否继续玩
            break
        elif guess < secret_number:
            print("猜的数字太低了!")
        else:
            print("猜的数字太高了!")

        attempts += 1  # 猜测次数加1

    if attempts == 3:
        choice = input("猜测次数已达上限,是否还想继续玩?(Y/N): ")
        if choice.lower() == "n":
            play_again = False  # 不再继续玩

总结

我是沐风晓月,我在csdn等你

原创不易,还希望各位大佬支持一下 \textcolor{blue}{原创不易,还希望各位大佬支持一下} 原创不易,还希望各位大佬支持一下

👍 点赞,你的认可是我创作的动力! \textcolor{green}{点赞,你的认可是我创作的动力!} 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向! \textcolor{green}{收藏,你的青睐是我努力的方向!} 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富! \textcolor{green}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!

更多推荐

商城免费搭建之java商城 开源java电子商务Spring Cloud+Spring Boot+mybatis+MQ+VR全景+b2b2c

1.涉及平台平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务)2.核心架构SpringCloud、SpringBoot、Mybatis、Redis3.前端框架VUE、Uniapp、Bootstrap/H5/CSS3、IOS、Android、小程

Labelme分割标注软件

Labelme分割标注软件1、环境配置与安装1.1创建conda虚拟环境(建议)1.2安装Labelme2、简单使用2.1创建label标签文件2.2启动labelme2.3打开文件/文件夹2.4设置保存结果路径2.5标注目标2.6保存json文件格式3格式转换3.1转换语义分割标签3.2转换实例分割标签相关重要博文链

工单管理系统如何赋能售后服务?

当前时代,产品是企业发展的硬道理,但是想要留住客户,就必须提供更好的客户服务。而想要优化客户服务并不是一件简单的事情,企业可以借助工单管理系统来保证售后服务质量,为客户提供及时的帮助,从而达到为企业带来长期稳定的收益。怎么做呢?接下来我们就聊聊如何利用工单管理系统进行服务升级?一、精准关注客户需求客户在遇到问题的时候,

Linux中swap几乎耗尽,但物理内存还有空余的现象

故障现象:产生此现象的原因:swappiness配额设置了偏高的值。还有一个潜在的因素是某个程序因其自身对内存管理的缺陷,形成了zombie进程、且为及时关闭的处理任务还在持续消耗Mem及swap。解决办法:调低swappiness配额值,或者直接将swappiness配额设定为0。查看当前OS中的swappiness

iPhone辐射超标,发布三年突然禁售了

昨晚iPhone15预售大家抢到了吗?虽然13日发布会后大家的反应十分冷静,但身体还是很诚实,官网都排到6-7周以后了...在大伙都争着第一波尝鲜的时候,有一个地方正准备禁售iPhone。不用想肯定是欧盟某个国家啦,这两年的Type-C、应用侧载、可拆卸电池...搞事就没停过。法国数字经济部部长在本周发表的《巴黎人报》

前端用JavaScript实现桑基图(Sankey图)

前端用JavaScript实现桑基图(Sankey图)桑基图(Sankey图),是流图的一种,常用来展示事物的数量、发展方向、数据量大小等,在可视化分析中经常使用。本文,演示如何在前端用JavaScript绘制桑基图。注:本例使用JShaman数据展示JS代码混淆加密流程。先看效果:因为已有成熟的库可用,比如,可以使用

苹果给国内用户提供了最好的5G手机,一机在手畅通全球

在某专家不断胡扯苹果的假5G之时,其实是苹果给国内消费者提供了最好的5G手机,真正实现了一机在手畅通全球,技术永不过时,也不会因此花了冤枉钱,那么iPhone为何是最好的5G手机呢?一、5G技术一直在升级运营商在建设5G的过程中不断发现问题,首先是NSA和SA之争,当初业界认为SA才能完整实现5G的技术特征,NSA则降

SpringBoot接口中如何直接返回图片数据

SpringBoot接口中如何直接返回图片数据目录接口直接返回图片数据起因类似这种根据个人经验优雅的实现图片返回接口直接返回图片数据起因最近在做涉及到分享推广的业务,需要由业务员分享二维码进入推广页面,由于是新项目,前期预算和用量都有限,没有搭建对象存储服务,所以决定使用后台服务动态生成二维码图片直接图片数据并返回。首

Kubernetes学习大纲

Kubernetes(通常缩写为K8s)是一个用于自动化部署、扩展和管理容器化(通常是Docker容器)应用程序的开源平台。以下是一些Kubernetes的核心概念和相关的命令。1.集群(Cluster)和节点(Nodes)集群是Kubernetes的基础单元,由一组节点(物理或虚拟机)组成。命令:kubectlget

外滩大会观察|重估蚂蚁!

点击关注文丨刘雨琦,编丨王一粟“不同品种的小狗排队通过‘实名认证’、刷脸识别不仅能识别人,还能识别狗”。“人脸、虹膜、掌纹都已经不算黑科技,脑纹识别才是真的不可替代。”2023年上海外滩大会上,6G、无人安全检测实验室、脑纹核身、蚁鉴2.0、城市链、AI大脑训练、支付芯......改变未来的十大黑科技在会上齐亮相,充满

python基础学习笔记2

python基础语法python的优点开源、易于维护、可移植易于使用、简单优雅广泛的标准库、功能强大可扩展、可嵌入所有的深度学习框架一般都有一个Python版的接口...python典型应用数据分析:对数据进行清洗、去重、规格化和针对性的分析科学计算常规软件开发人工智能网络爬虫WEB开发python基础语法基础操作#1

热文推荐