讲师中心 微信公众号
AI工具推荐 视频效率加速

Python怎么使用for循环_Python for循环使用方法详解

轻涛姑娘_4891

轻涛姑娘_4891

发布时间:2025-09-22 11:42:01

|

1261人浏览过

|

来源于php中文网

原创

Python中for循环用于遍历可迭代对象,核心是简洁地处理每个元素。基本语法为for 变量 in 可迭代对象:,如遍历列表、字符串或使用range()生成数字序列。配合break和continue可控制循环流程,else块在循环正常结束时执行。相比while循环(依赖条件判断),for更适用于已知序列的遍历。通过enumerate()可同时获取索引和值,zip()则能并行遍历多个序列,提升代码可读性与效率。

python怎么使用for循环_python for循环使用方法详解

Python中使用

for
循环,本质上就是遍历序列(如列表、元组、字符串)或其他可迭代对象中的每一个元素。它的核心思想是“迭代”,让你能按部就班地处理集合中的每一个项,而无需手动管理索引,这让代码更加简洁、易读。

解决方案

说起

for
循环,它在Python里简直是家常便饭,用起来特别直观。最基础的写法,就是
for 变量 in 可迭代对象:
,然后跟着你的操作代码块。

比如,我们有个水果列表:

fruits = ['apple', 'banana', 'cherry']
for fruit in fruits:
    print(f"我喜欢吃{fruit}。")

这段代码会依次把

fruits
列表里的每个元素赋值给
fruit
这个变量,然后执行
print
语句。你看,是不是比C语言那种
for (int i = 0; i < n; i++)
的写法要简洁多了?Python的设计哲学就是这样,追求可读性和简洁。

立即学习Python免费学习笔记(深入)”;

除了列表,字符串也是可迭代的:

my_string = "Python"
for char in my_string:
    print(f"字符是:{char}")

它会把字符串里的每个字符都拿出来。

还有一种很常用的场景,就是当你需要一个数字序列时,

range()
函数就派上用场了。

# 从0到4(不包含5)
for i in range(5):
    print(i)

# 从1到5(不包含6)
for i in range(1, 6):
    print(i)

# 从0到10,步长为2
for i in range(0, 11, 2):
    print(i)

range()
生成的是一个可迭代对象,不是直接的列表,这在处理大量数字时能节省不少内存,很Pythonic。

有时候,循环过程中你可能需要提前结束循环,或者跳过当前迭代。

break
continue
就是为此而生的。

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for num in numbers:
    if num % 2 != 0: # 如果是奇数,跳过
        continue
    if num > 7: # 如果大于7,停止循环
        break
    print(f"偶数:{num}")

这里,

continue
让循环直接跳到下一个数字,而
break
则会彻底终止整个
for
循环。这两种控制流语句,用好了能让你的逻辑更清晰,避免不必要的计算。

另外,

for
循环还有一个可选的
else
块,这个
else
块会在循环正常结束(即没有被
break
中断)时执行。

for i in range(3):
    print(f"当前数字:{i}")
else:
    print("循环正常结束了。")

for i in range(3):
    print(f"当前数字:{i}")
    if i == 1:
        break
else:
    print("这个不会被打印,因为循环被break了。")

这个

else
块的设计,我个人觉得挺有意思的,它提供了一种很优雅的方式来处理“循环完成”和“循环中断”这两种不同的情况,虽然实际项目中用得可能没那么频繁,但知道有这么个选项总是好的。

Python for 循环与 while 循环有何区别?

要说

for
while
,它们都是循环,但用起来的侧重点完全不一样。
for
循环,就像我们前面说的,它更像是为“遍历”而生,当你手里有一个明确的集合,或者一个可以按顺序一个个拿出来的东西时,
for
就是你的首选。它的设计哲学就是“迭代已知序列”。你不需要关心循环变量的初始化、递增,这些都由Python帮你搞定了。

举个例子,你想打印一个列表里的所有元素,用

for
简直是信手拈来:

Alibabacloud Sdk Client Initialization For Java
Alibabacloud Sdk Client Initialization For Java

在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。

下载
items = ['pencil', 'book', 'eraser']
for item in items:
    print(item)

多简洁!你不需要写

i = 0
,也不需要写
i < len(items)
,更不需要
i += 1

while
循环呢,它更关注“条件”。只要某个条件为真,它就一直执行下去。所以,当你不知道循环具体要执行多少次,或者循环的终止依赖于某个动态变化的条件时,
while
就显得更合适了。它就像一个看门人,条件不满足,门就一直开着。

比如,你想让用户输入一个正整数,直到输入正确为止:

valid_input = False
while not valid_input:
    try:
        num = int(input("请输入一个正整数: "))
        if num > 0:
            print(f"你输入的是:{num}")
            valid_input = True
        else:
            print("输入必须是正整数,请重试。")
    except ValueError:
        print("无效输入,请确保输入的是整数。")

这种情况下,

for
循环就显得力不从心了,因为你不知道用户会试多少次。

当然,理论上你总能用

while
循环来模拟
for
循环的行为,比如:

fruits = ['apple', 'banana', 'cherry']
index = 0
while index < len(fruits):
    print(fruits[index])
    index += 1

但你看,这明显比直接用

for
要繁琐得多,也更容易出错(比如忘了
index += 1
就成了死循环)。所以,我的建议是,有明确的迭代对象,用
for
;需要根据条件反复执行,用
while
。选择合适的工具,能让代码更优雅,也更健壮。

Python for 循环中如何处理索引和值?

很多时候,我们不仅想拿到循环中的每个元素,还想知道它在原始序列中的位置(也就是索引)。Python为这种需求提供了非常方便的内置函数

enumerate()

enumerate()
函数简直是为
for
循环中的索引-值配对量身定制的。它会返回一个迭代器,每次迭代产生一个包含索引和对应元素的元组。

看个例子就明白了:

my_list = ['A', 'B', 'C', 'D']
for index, value in enumerate(my_list):
    print(f"索引 {index}: 值为 {value}")

输出会是:

索引 0: 值为 A
索引 1: 值为 B
索引 2: 值为 C
索引 3: 值为 D

是不是比自己手动维护一个

index
变量,然后
my_list[index]
要清爽多了?而且
enumerate()
还可以接受一个
start
参数,让你指定索引的起始值,这在某些需要非零起始索引的场景下特别有用。

for index, value in enumerate(my_list, start=1):
    print(f"第 {index} 个元素是: {value}")

这样,索引就会从1开始计数。

除了

enumerate()
,如果你有多个等长的序列,想同时迭代它们,
zip()
函数就是你的好帮手。它能把多个可迭代对象“打包”在一起,每次迭代返回一个元组,包含每个可迭代对象对应位置的元素。

names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30, 22]
cities = ['New York', 'London', 'Paris']

for name, age, city in zip(names, ages, cities):
    print(f"{name} (年龄: {age}) 住在 {city}。")

这在处理相关联的数据时非常高效和直观。如果序列长度不一致,

zip()
会以最短的那个为准停止迭代。如果你需要处理长度不一致的情况,并且想包含所有元素,可以考虑
itertools.zip_longest
,但那通常是更高级一点的用法了。

我个人觉得,

enumerate()
zip()
这两个函数,是Python在设计
for
循环时,充分考虑到实际开发需求而提供的“语法糖”或者说“高级工具”。它们让代码不仅更简洁,也更富有表现力,避免了C++或Java中那种为了获取索引而不得不写一堆额外代码的繁琐。掌握它们,能让你的Python代码更地

热门AI工具

更多
超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

相关专题

更多
python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

2280

2023.09.27

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

229

2026.02.03

while的用法
while的用法

while的用法是“while 条件: 代码块”,条件是一个表达式,当条件为真时,执行代码块,然后再次判断条件是否为真,如果为真则继续执行代码块,直到条件为假为止。本专题为大家提供while相关的文章、下载、课程内容,供大家免费下载体验。

334

2023.09.25

java中break的作用
java中break的作用

本专题整合了java中break的用法教程,阅读专题下面的文章了解更多详细内容。

2100

2025.10.15

java break和continue
java break和continue

本专题整合了java break和continue的区别相关内容,阅读专题下面的文章了解更多详细内容。

647

2025.10.24

java break和continue
java break和continue

本专题整合了java break和continue的区别相关内容,阅读专题下面的文章了解更多详细内容。

647

2025.10.24

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

1518

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

2204

2023.09.04

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

0

2026.09.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn