Python for循环及用法详解

news2024/11/27 12:42:40

Python 中的循环语句有 2 种,分别是 while 循环和 for 循环,前面章节已经对 while 做了详细的讲解,本节给大家介绍 for 循环,它常用于遍历字符串、列表、元组、字典、集合等序列类型,逐个获取序列中的各个元素。

for 循环的语法格式如下:

for 迭代变量 in 字符串|列表|元组|字典|集合:
代码块

格式中,迭代变量用于存放从序列类型变量中读取出来的元素,所以一般不会在循环中对迭代变量手动赋值;代码块指的是具有相同缩进格式的多行代码(和 while 一样),由于和循环结构联用,因此代码块又称为循环体。

for 循环语句的执行流程如图 1 所示。

图 1 for 循环语句的执行流程图

下面的程序演示了 for 循环的具体用法:

add ="https://edu.csdn.net/skill/python/"
#for循环,遍历 add 字符串
for ch in add:
print(ch,end="")

运行结果为:

https://edu.csdn.net/skill/python/

可以看到,使用 for 循环遍历 add 字符串的过程中,迭代变量 ch 会先后被赋值为 add 字符串中的每个字符,并代入循环体中使用。只不过例子中的循环体比较简单,只有一行输出语句。

Python for循环的具体应用

for 循环进行数值循环

在使用 for 循环时,最基本的应用就是进行数值循环。比如说,想要实现从 1 到 100 的累加,可以执行如下代码:

print("计算 1+2+...+100 的结果为:")
#保存累加结果的变量
result =0
#逐个获取从 1 到 100 这些值,并做累加操作
for i inrange(101):
    result += i
print(result)

运行结果为:

计算 1+2+...+100 的结果为:
5050

上面代码中,使用了 range() 函数,此函数是 Python 内置函数,用于生成一系列连续整数,多用于 for 循环中。

Python 2.x 中除提供 range() 函数外,还提供了一个 xrange() 函数,它可以解决 range() 函数不经意间耗掉所有可用内存的问题。但在 Python 3.x 中,已经将 xrange() 更名为 range() 函数,并删除了老的 xrange() 函数。

for循环遍历列表和元组

当用 for 循环遍历 list 列表或者 tuple 元组时,其迭代变量会先后被赋值为列表或元组中的每个元素并执行一次循环体。

下面程序使用 for 循环对列表进行了遍历:

my_list =[1,2,3,4,5]
for ele in my_list:
print('ele =', ele)

程序执行结果为:

ele = 1
ele = 2
ele = 3
ele = 4
ele = 5
感兴趣的读者,可自行尝试用 for 循环遍历 tuple 元组,这里不再给出具体实例。

for 循环遍历字典

在使用 for 循环遍历字典时,经常会用到和字典相关的 3 个方法,即 items()、keys() 以及 values(),它们各自的用法已经在前面章节中讲过,这里不再赘述。当然,如果使用 for 循环直接遍历字典,则迭代变量会被先后赋值为每个键值对中的键。

例如:

my_dic ={'python教程':"https://edu.csdn.net/skill/python/",\
         'linux教程':"https://edu.csdn.net/skill/linux/",\
          'java教程':"https://edu.csdn.net/skill/java/"}
for ele in my_dic:
print('ele =', ele)

程序执行结果为:

ele = python教程
ele = linux教程
ele = java教程
因此,直接遍历字典,和遍历字典 keys() 方法的返回值是相同的。

除此之外,我们还可以遍历字典 values()、items() 方法的返回值。例如:

my_dic ={'python教程':"https://edu.csdn.net/skill/python/",\
         'linux教程':"https://edu.csdn.net/skill/linux/",\
          'java教程':"https://edu.csdn.net/skill/java/"}
for ele in my_dic.items():
print('ele =', ele)

程序执行结果为:

ele = ('python教程':"https://edu.csdn.net/skill/python/')

ele = ('linux教程':"https://edu.csdn.net/skill/linux/')

ele = ('java教程':"https://edu.csdn.net/skill/java/')

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ARP渗透与攻防(五)之Ettercap劫持用户流量

ARP-Ettercap劫持用户流量 系列文章 ARP渗透与攻防(一)之ARP原理 ARP渗透与攻防(二)之断网攻击 ARP渗透与攻防(三)之流量分析 ARP渗透与攻防(四)之WireShark截获用户数据 一.ettercap 工具介绍 项目官网:http://ettercap.github.io/ettercap/index.html EtterC…

(十五)ForkJoin框架

ForkJoinPoolForkJoinPool是一种“分治算法”的多线程并行计算框架,自Java7引入。它将一个大的任务分为若干个子任务,这些子任务分别计算,然后合并出最终结果。ForkJoinPool比普通的线程池可以更好地实现计算的负载均衡,提高资源利…

安装MikTeX-latex

安装MikTeX-latex一、报错信息二、重新安装三、编译MDPI Template一、报错信息 由于之前使用的是basic-miktex-2.9.7269-x64.exe这个版本,当安装完成后,在更新package时遇到了以下错误: MikTeX update error 于是,通过搜索&…

冯·诺依曼、哈佛、改进型哈佛体系结构解析

在如今的CPU中,由于Catch的存在,这些概念已经被模糊了。个人认为去区分他们并没有什么意义,仅作为知识点。 哈佛结构设计复杂,但效率高。冯诺依曼结构则比较简单,但也比较慢。CPU厂商为了提高处理速度,在C…

2023 年程序员的热门开发项目:掌握最新技术的教程和工具的完整列表

欢迎阅读我们关于“2023 年程序员的热门开发项目”的博文!作为一名开发人员,了解最新的技术和工具对于在就业市场上保持竞争力至关重要。在这篇文章中,我们编制了一份 2023 年最热门开发项目的完整列表,以及掌握每个项目的教程和资…

ChatGPT付费版来啦,好用的AI生成产品还能免费使用吗?AIGC工具箱

​最新消息,chatGPT推出了付费版!每月$42美元,不限流使用,你会付费使用吗?🧰AIGC工具箱下面推荐几款AI 生成产品!你觉得哪个更好用呢?AI 的出现,颠覆了内容生…

自己动手写一个操作系统——我们能做什么,我们需要做什么

文章目录计算机启动流程第一条指令BIOSMBRloaderkernel总结计算机启动流程 第一条指令 在开机的一瞬间,也就是上电的一瞬间,CPU 的 CS:IP 寄存器被硬件强制初始化为 0xF000:0xFFF0。 CS:IP 就是 PC 指针,也就是 CPU 下一条要执行的指令的地址…

Elasticsearch7.8.0版本入门—— Elasticsearch7.8.0映射操作

目录一、映射的概述二、创建映射的示例2.1、首先,创建索引2.2、然后,再创建好的索引基础上,创建映射2.3、映射属性说明2.4、查看创建的映射2.5、最后,创建文档2.6、根据文档中name属性条件查询文档 理解映射示例2.7、根据文档中se…

HDM KVM维护

前言 服务器遇到个问题,无法启动,下面简单记录一下解决程 方法 进入维护界面: 尝试 H5 KVM,发现H5 kvm挂载镜像速度较慢 使用 KVM.jnlp,需配置 java 环境,安装好java 环境已经配置java 环境变量后&…

Linux常见命令 18 - 用户管理命令 useradd, passwd, who, w

目录 1. 添加用户命令 useradd 2. 设置用户密码 passwd 3. 查看用户登录信息 who 4. 查看用户登录详细信息 w 1. 添加用户命令 useradd 语法:useradd [用户名] 2. 设置用户密码 passwd 语法:passwd [用户名] 注意:每个用户只能用passwd更改自…

作为项目经理,如何做好项目进度管理

一、项目进度管理需要做什么? 项目进度管理分9步:其中前⑥条属于规划过程组的工作内容,第⑦条属于监控过程组的工作内容。 ①规划进度管理:在文档内计划如何做好进度管理 ②定义活动:识别和记录项目中的活动 ③排列活动…

数据库系统概念 | 第六章:形式化关系查询语言 | 含带答案习题

文章目录📚关系代数🐇基本运算🥕选择运算🥕投影运算🥕关系运算的组合🥕集合并运算🥕集合差运算🥕集合交运算🥕笛卡尔积运算🥕更名运算🥕一道综合例…

量子力学奇妙之旅-微扰论和变分法

专栏目录: 高质量文章导航 一.基本概念 前置: 厄密算符和简并: 两大重要结论: 厄米算符的本征值一定是实数 厄米算符不同本征值的本征态一定正交 证明: 我们 λ<

Day02函数和条件表达

0. 格式化字符串 格式 化字符串 print(1) print(1,2,3,4)a 1 b 2.1123 c hello s a %d b %f c %s % (a,b,c)s -- worldprint(s)s fa {a} b {b} c {c} print(s)s a {0:5d} b {1:.2f} c {0}.format(a,b,c) print(s)1. 函数概述 print() input() type() int…

C++菱形继承以及解决方法--虚继承 虚基表

目录菱形继承形成原因出现二义性变量的内存布局应对方案虚继承 vitrual解决二义性变量内存布局--虚基表感悟关于代码复用等的另一种关系-组合菱形继承形成原因 多继承&#xff0c;呈菱形状 菱形继承代码: class A { public:A() {}int _a ; }; class B :public A { public…

NAT技术原理、使用场景

随着Internet的发展和网络应用的增多&#xff0c;有限的IPv4公有地址已经成为制约网络发展的瓶颈。为解决这个问题&#xff0c;NAT&#xff08;Network Address Translation&#xff0c;网络地址转换&#xff09;技术应需而生。 NAT技术主要用于实现内部网络的主机访问外部网络…

JDK8 新特性之新增的Optional类

目录 一&#xff1a;以前对null的处理方式 二&#xff1a;Optional类介绍 三&#xff1a;Optional的基本使用 Optional的高级使用 小结 一&#xff1a;以前对null的处理方式 Test public void test01() { String userName "凤姐"; // String userName null; …

十八、Gtk4-Stateful action

有些动作action有状态。状态的典型值是布尔值或字符串。但是&#xff0c;如果你愿意&#xff0c;也可以使用其他类型的状态。 具有状态的动作称为有状态的。 Stateful action without a paramete 有些菜单被称为切换菜单。例如&#xff0c;全屏菜单有一个状态&#xff0c;它…

在甲骨文云容器实例(Container Instances)上部署edge

甲骨文云推出了容器实例&#xff0c;这是一项无服务器计算服务&#xff0c;可以即时运行容器&#xff0c;而无需管理任何服务器。 今天我们尝试一下通过容器实例部署edge。 Step1. 创建容器实例 在甲骨文容器实例页面&#xff0c;单击"创建容器实例"&#xff0c; …

审批工作流—ccflow

审批工作流—ccflow目录概述需求&#xff1a;设计思路实现思路分析1.java 代码分析参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better result,wait for change,challen…