【Python】穿越Python的迭代之旅:while,for 循环的奇妙世界

欢迎来到CILMY23的博客

本篇主题为: 穿越Python的迭代之旅:while,for 循环的奇妙世界

个人主页:CILMY23-CSDN博客

系列专栏:Python | C++ | C语言 | 数据结构与算法

感谢观看,支持的可以给个一键三连,点赞关注+收藏。


写在前头:

while 和 for 循环是Python中非常重要的迭代工具,掌握它们的用法和注意事项对于编写高效、可靠的代码至关重要。但是什么是迭代?迭代是一种在编程中经常用到的概念,它指的是重复执行一组操作或处理一系列元素的过程。在迭代过程中,程序会依次处理序列中的每个元素,或者根据某个条件重复执行某段代码,直到满足退出条件为止。而循环是迭代的实现方式


目录

一、循环的起源 --- while for

1.1 while语句

1.1.1 while语句的应用 

1.2 for语句

1.2.1 for语句的应用

二、循环的中断 - break和continue 

2.1 break语句

2.2 continue语句

2.3 pass语句

三、循环中的循环 


一、循环的起源 --- while for

循环结构依据某一条件反复执行某段程序(语句块),该语句块被执行的次数称为循环次数,而循环的始端还得依靠while语句和for语句。

1.1 while语句

while语句用于循环执行一段程序,即在满足某种条件下的情况,重复执行某段程序,以处理某种需求。

while语句的语法如下:

while 表达式:

        语句块

(else:

        else语句块)

while会根据表达式的逻辑值(真,假)来判断是否执行对应的语句块,如果真,则执行语句块,如果假,则执行else语句块,不过一般很少用else。更经常使用单while。 

1.1.1 while语句的应用 

例如:计算1~100的和

n = 100
sum = 0
i = 1
while i<=n:
    sum = sum +i
    i += 1
print(f"1到{n}之和为:{sum}")

结果:

比起在C语言中写这些,是否轻松了不少呢?

 例如:使用while-else语句求1-10的阶乘和

mul = 1
i = 1
sum = 0
while i<= 10:
    mul = mul * i
    sum = sum +mul
    i = i+1
else:
    print("循环结束!")
print(f"sum = {sum}")

结果:

除此之外,while语句还可以搭配input()函数进行多输入

例如:通过键盘动态录入学生的英语成绩,输入-1退出,并计算录入学生英语成绩的人数、总分和平均分。

total_score = 0
average_score = 0.0
count = 0
English_score = int(input("请输入学生的英语成绩:"))

while English_score != -1:
    total_score += English_score
    count += 1
    English_score = int(input("请输入学生的英语成绩:"))

average_score = total_score / count

print(f"录入英语成绩{count}份,学生总成绩{total_score},平均成绩{average_score}")

结果:

1.2 for语句

在python中,for语句更适合循环访问系列或迭代对象(如字符串、列表、元组、字典等)中的元素,其语法为:

for 变量 in 迭代对象:

        语句块

(else:

        else语句块)

当然for 语句也可以指定次数,这种情况就得用到我们的range()函数了,range()的讲解---链接

for 变量 in range(次数):
    语句块

range()函数用于生成一个指定范围内的整数序列,它可以用来控制for循环的次数

1.2.1 for语句的应用

例:使用for 循环遍历列表

my_list = ['C', 'I', 'L', 'M', 'Y', 2, 3]

for i in my_list:
    print(i, end=" ")

例: 使用for-else语句遍历元组中的元素,并在结束后给出提示信息

my_tuple = ('C', 'I', 'L', 'M', 'Y', 2, 3)

for i in my_tuple:
    print(i, end=" ")
else:
    print("遍历结束")

例:通过判断1-100中除以3的余数是否为0的数,如果是则打印该数

for i in range(1,100):
    if i % 3 == 0:
        print(f"{i}",end=" ")

结果:

二、循环的中断 - break和continue 

在Python中,break 语句用于退出循环,continue 语句用于跳过该次循环,pass 是空语句(不做任何处理)。接下来我们详细看看这三种语句的应用吧。 

2.1 break语句

例如:输出斐波那契数列前10项

斐波那契数列(Fibonacci sequence)是一个经典的数学问题,其定义如下:

  1. 第一个和第二个数是 1 和 1。
  2. 从第三个数开始,每个数都是前两个数之和。

换句话说,数列的每一项都等于其前两项之和。斐波那契数列的前几个数字是:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...

n1 = 1
n2 = 1
n3 = 2
count = 3
print("斐波那契前十项:", n1, n2, n3, end=" ")
while True:
    if count >= 10:
        break
    else:
        n1 = n2
        n2 = n3
        n3 = n1 + n2
        count += 1
        print(n3, end=" ")

解释:

2.2 continue语句

例如:求1~100 范围内所有偶数的和 (不包含100)

# 2.2 continue
i = 1
sum = 0
for i in range(1, 100):
    if i % 2 == 1:
        continue
    sum += i
print(f"1-100的所有偶数和: {sum}")

解释:

2.3 pass语句

pass是 Python 中的一个空语句,它不执行任何操作,只是作为占位符使用。在需要语法上需要语句但不需要实际执行任何操作的情况下,可以使用pass语句。

例如:在循环中使用pass 

i = 1
sum = 0
for i in range(1,100):
    if i % 2 == 0:
        sum += i
else:
    pass
print(f"1-100的所有偶数和: {sum}")

 例如:在函数中使用

def my_function():
    pass

例如:在类中使用 

class MyClass:
    pass

当我们需要在函数或类的定义中暂时不添加任何操作时,可以使用 pass 语句来保持语法的完整性。

三、循环中的循环 

 循环中的循环,也称为嵌套循环,是指在一个循环内部包含另一个循环。

 例如:输出元素为"*"、五行五列的左下角直角三角形

for i in range(5):
    for j in range(i + 1):  
        print("*", end=" ")
    print()

结果如下:

例如:输出对角线元素为1的4行4列矩阵

for i in range(4):  # 控制行数
    for j in range(4):  # 控制列数
        if i == j:
            print("1", end=" ")
        else:
            print("0", end=" ")
    print()  # 换行

结果如下:

 


感谢各位同伴的支持,本期python就讲解到这啦,如果你觉得写的不错的话,可以给个一键三连,点赞关注+收藏,若有不足,欢迎各位在评论区讨论。  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/553574.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

spring的redis注解@Cacheable @Cacheput @CacheEvict的condition、unless

概述 redis的注解使用的过程中总会遇到condition和unless这两个属性&#xff0c;而且不同的注解使用注意事项不一样。本人也是错误使用之后详细查询了一下&#xff0c;作了如下的总结。 Cacheale 这个注解的使用和意义这里不多说&#xff0c;可以查看我的其他文档。这里主要说…

【C++】二维数组传参方式

最近刚开始刷剑指offer&#xff0c;刚做到第三题的时候&#xff0c;发现C二维数组的传参方式和C语言略有些不同&#xff0c;所以在这篇博客中&#xff0c;会列出C/C常见的二维数组传参方式。&#xff08;本方式和代码都是基于vs环境所编写&#xff09; 一.C语言二维数组传参方式…

18.读取指定目录下的txt文档时,调用另外一个python文件

1.题目 遍历4K_phone和4K_VR目录下的所有txt文件&#xff0c;并将它们的内容合并到一个名为4k_decoding.txt的文件中。 但是&#xff0c;假设你有一个名为another_script.py的Python文件&#xff0c;你想在合并txt文件之前执行它生成要处理的txt文档。 最后统计完原始的txt文件…

算法与数据结构要点速学——通用 DS/A 流程图

通用 DS/A 流程图 这是一个流程图&#xff0c;可以帮助您确定应该使用哪种数据结构或算法。请注意&#xff0c;此流程图非常笼统&#xff0c;因为不可能涵盖每个场景。 请注意&#xff0c;此流程图仅涵盖 LICC 中教授的方法&#xff0c;因此排除了像 Dijkstra 等更高级的算法。…

eclipse配置SVN和Maven插件

3、 安装SVN插件 使用如下方法安装 Help–Install New Software 注意&#xff1a;目前只能安装1.8.x这个版本的SVN&#xff0c;如果使用高版本的SVN&#xff0c;在安装SVN和maven整合插件的时候就会报错&#xff0c;这应该是插件的bug。 点击Add name: subclipse location…

区块链知识总结——比特币中的密码学原理

比特币中的密码学原理&#xff1a; 比特币的本质&#xff1a;crypto-currency. 比特币用到密码学中的两个功能&#xff1a; 1.哈希函数&#xff08;cryptographic hash function&#xff09; 三个重要性质&#xff1a; &#xff08;1&#xff09;抗碰撞性collison resista…

3 xgboost

目录 1 定义 1.1 模型定义 1.2 损失函数 1.3 化简损失函数 xgboost比赛以及工程利器。目前存在大量有关算法文档。 XGBoost&#xff08;eXtreme Gradient Boosting&#xff09;是一种基于决策树集成的机器学习算法&#xff0c;被广泛应用于分类、回归和排名等任务。XGBoost…

vue快速入门(三十)vue的工程化开发安装配置

步骤很详细&#xff0c;直接上教程 上一篇 新增内容 安装nodejs安装脚手架工具安装vue项目运行项目服务退出项目服务 安装nodejs 没安装的友友可以参考这位大神的博文Node.js下载安装及环境配置教程【超详细】 安装脚手架工具 打开管理员cmd 输入此命令行npm i -g vue/cli …

access多表关联提示:语法错误(操作符丢失)在查询表达式中

在access数据库中执行多表关联时提示了一个错误 select * from Patient a inner join BioMain b on a.BioIDb.BioID inner join BioResult c on b.BioIDc.BioID where len(a.PatientID)>12 and b.AddTime>#2024-04-17 05:53:23# and b.AddTime<#2024-04-17 17:53:23#…

ASP.NET基于Web Mail收发系统设计与开发

摘 要 互联网络技术的不断发展&#xff0c;电子邮件服务已经成为人们基本的信息交互手段&#xff0c;也是网络服务中最早和最基本的服务之一。传统邮件系统大多是基于C/S结构&#xff0c;如Lotus notes、Microsoft Exchange Server等&#xff0c;这些邮件系统占用相对较多的服…

【WEEK8】 【DAY3】【DAY4】总览Spring Boot【中文版】

目录 2024.4.17 Wednesday1.总览1.1.先看个速成课&#xff0c;了解大概1.2.SpringBoot入门1.2.1.什么是Spring1.2.2.Spring是如何简化Java开发的1.2.3.什么是SpringBoot 1.3.第一个Spring Boot项目1.3.1.准备工作1.3.2.创建基础项目说明1.3.2.1.使用官方选配下载 2024.4.18 Thu…

libftdi1学习笔记 5 - SPI Nor Flash

目录 1. 初始化 2. CS控制例子 3. 读ID 3.1 制造商 3.2 容量大小 3.3 设置IO类型 3.3.1 setQSPIWinbond 3.3.2 setQSPIMxic 3.3.3 setQSPIMicrochip 3.3.4 setQSPIMicron 4. 写保护 5. 等待空闲 6. 擦除扇区 7. 页编程 8. 页读 9. 写 10. 读 11. 验证 基于M…

管理能力学习笔记五:识别团队角色,因才施用

识别团队角色&#xff0c;因才施用&#xff0c;需要做到以下三点 扬长避短 管理者要学会问自己员工能把什么做好&#xff0c;而不是想方设法改造他们的短处 。 – 彼得德鲁克 人岗匹配 将合适的人放在合适的位置 人才多样化 团队需要各式各样的人才&#xff0c;才能高效配合…

【Linux】引导过程与服务控制

目录 一、Linux操作系统引导过程 1.linux开机引导过程 2.系统初始化进程 1.init进程 2.进程启动方式 二、运行级别和Systemd单元类型 1.运行级别 2.Systemd 三、启动类故障恢复 1.修复MBR扇区故障 2.修复GRUB引导故障 3.root密码忘记的修改方式 四、系统服务控制 …

初识ansible服务及ansible主机清单配置

目录 1、什么是自动化批量管理 2、自动化工具ansible架构 3、ansible服务专用术语对照表 4、设置主机清单&#xff08;inventory&#xff09; 4.1实验环境准备 4.2配置主机清单 4.2.1分组基本格式 4.2.2指定用户名&#xff0c;密码。端口 4.2.3子组 4.3查看 4.3.1看…

基于SpringBoot+Vue的服装销售商城系统(源码+文档+包运行)

一.系统概述 顺应互联网发展的时代热潮&#xff0c;着力于服装电商&#xff0c;满足消费者的日常需求的同时解决传统服装销售的难题。商家如果还用之前的只有线下卖衣服&#xff0c;已经很落伍了&#xff0c;这样会导致了效率低下。而且&#xff0c;时间一长的话&#xff0c;积…

AIGC算法2:LLM的复读机问题

1. 什么是LLM的复读机问题 字符级别重复&#xff0c;指大模型针对一个字或一个词重复不断的生成例如在电商翻译场景上&#xff0c;会出现“steckdose steckdose steckdose steckdose steckdose steckdose steckdose steckdose…”&#xff1b;语句级别重复&#xff0c;大模型针…

不容错过的 IntelliJ IDEA 插件 Top 10

虽然 IntelliJ IDEA 功能齐全&#xff0c;您仍然可以增添一些个性化的设置。 JetBrains Marketplace 上有着大量实用插件&#xff0c;可以满足您个人或企业的特定需求。 内容库非常庞大&#xff0c;可能会让人眼花缭乱。 在这篇博文中&#xff0c;我们将分享最近和一直以来最受…

(十四)C++自制植物大战僵尸游戏windows平台视频播放实现

植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/8UFMs VLC库 在Cocos2d-x游戏开发框架中&#xff0c;没有实现windows平台视频播放的功能&#xff0c;需要自定义实现。在本项目中使用vlc库实现windows平台的视频播放功能。 vlc官网&#xff1a;网址 下载完成后&#x…

如何配置Postgres的自动扩展功能以应对数据增长

文章目录 解决方案1. 表空间管理2. 分区表3. 自动扩展配置4. 监控和告警5. 使用外部工具和服务 示例代码示例1&#xff1a;创建表空间示例2&#xff1a;创建分区表示例3&#xff1a;调整配置参数示例4&#xff1a;使用监控和告警工具 总结 在PostgreSQL中&#xff0c;随着数据的…