百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

Python 循环详解教程 (Python Loop Tutorial)

wptr33 2025-05-11 01:43 2 浏览

在 Python 中,循环结构帮助我们自动重复执行代码(automatically execute the code repetitively),大大提高了编程效率!

本教程将通过详细示例(Through detailed exemplifications),带你深入理解 for 循环、while 循环、嵌套循环、循环控制语句和列表推导式。Let's dive in!


1. for 循环 (for Loop)

for 循环主要用于遍历各种序列(如列表、元组、字符串等)。每次迭代时,将序列中当前的元素赋值给变量,然后执行循环体代码。
(For loops iterate over a sequence, assigning each element to a variable and executing the code block.)

语法结构:

for 变量 in 序列:    # for variable in sequence:
    # 循环体代码   # code block

示例 1:遍历列表

food = ['黄瓜', '绿叶', '蛋糕']
for my_food in food:
    print("我喜欢:" + my_food)  

示例 2:遍历字符串

word = "Python"
for char in word:
    print(char)

2. while 循环 (while Loop)

while 循环会在给定条件为 True 时不断执行循环体,直到条件变为 False。
(While loops continue executing as long as the condition is True.)

语法结构:

while 条件:    # while condition:
    # 循环体代码   # code block

示例 1:基本计数循环

count = 1
while count <= 5:
    print("计数:" + str(count))
    count += 1  # 等同于 count = count + 1

示例 2:输入验证实例

password = ""
while password != "secret":
    password = input("请输入密码:")  # Please input password:
print("密码正确,欢迎进入系统!")  # Correct password, welcome!

3. 嵌套循环 (Nested Loops)

当需要在一个循环内部再使用另一个循环时,就称为嵌套循环。常用于处理二维数据或多重结构。
(Nested loops are used when you need a loop inside another loop, such as for processing matrices.)

示例:二维矩阵遍历

matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

for row in matrix:
    for num in row:
        print(str(num) + " ", end="")  # 每个数字后加空格
    print()  # 换行

示例:打印九九乘法表

for i in range(1, 10):
    for j in range(1, i+1):
        print(f"{j}x{i}={i*j}", end="\t")  # 使用制表符间隔
    print()  # 换行

输出结果示例:

1x1=1	
1x2=2	2x2=4	
1x3=3	2x3=6	3x3=9	

4. 循环控制语句 (Loop Control Statements)

在循环中,我们可以使用以下语句来改变循环的执行流程:

  • break:立即退出整个循环。
    (Break: exits the loop immediately.)
    示例:
for i in range(10): 
	if i == 3: 
  	break # 当 i 等于 3 时退出循环 
	print("数字:" + str(i))  #数字:0 数字:1 数字:2
  • continue:跳过当前循环剩余部分,直接开始下一次迭代。
    (Continue: skips the rest of the current iteration.)
    示例:
for i in range(1, 6): 
	if i % 2 == 0: 
  	continue # 跳过偶数 
	print("奇数:" + str(i)) #奇数:1 奇数:3 奇数:5
  • else:当循环没有因 break 而中断时,会执行 else 代码块。
    (Else: executes when the loop finishes normally without break.)
    示例:
for num in range(3): 
	print("迭代:" + str(num)) 
else: 
	print("循环正常结束!")
#输出:
迭代:0
迭代:1
迭代:2
循环正常结束!

5. 列表推导式 (List Comprehension)

列表推导式是一种简洁优雅的写法,用于从一个可迭代对象生成新列表,同时可以嵌入条件判断
(List comprehensions provide a concise syntax for generating lists from iterables, optionally with conditions.)

基本语法:

新列表 = [表达式 for 变量 in 可迭代对象 if 条件]

示例 1:生成平方数列表

squares = [x**2 for x in range(1, 11)]  # 1到10的平方
print("平方数列表:" + str(squares))

输出:

平方数列表:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

示例 2:筛选奇数列表

odds = [x for x in range(1, 21) if x % 2 != 0]
print("奇数列表:" + str(odds))

输出:

奇数列表:[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]

6. 高级循环技巧与实战案例 (Advanced Techniques & Practical Examples)

示例:计算列表元素之和

使用 for 循环:

numbers = [5, 10, 15, 20]
total = 0
for num in numbers:
    total += num
print("列表总和:" + str(total))

使用列表推导式和内置函数:

total = sum([num for num in numbers])
print("列表总和(内置函数):" + str(total))

示例:反转字符串

text = "Hello, Python!"
reversed_text = ""
for char in text:
    reversed_text = char + reversed_text  # 将当前字符放在前面
print("反转后的字符串:" + reversed_text)

示例:打印斐波那契数列

n_terms = 10
a, b = 0, 1
print("斐波那契数列:", end="")
for _ in range(n_terms):
    print(a, end=" ")
    a, b = b, a + b  # 同时更新 a 和 b
print()

输出示例:

斐波那契数列:0 1 1 2 3 5 8 13 21 34 

7. 小贴士与注意事项 (Tips & Caveats)

  • 避免无限循环:确保 while 循环中条件会在循环体内改变,否则容易导致无限循环
    (Avoid infinite loops by updating the condition inside the loop.)

  • 正确缩进:Python 对缩进极其敏感,确保每个循环块都保持一致的缩进格式。
    (Proper indentation is crucial in Python.)

  • 使用内置函数:Python 提供了许多内置函数(如 range、sum、enumerate 等),能使循环更加简洁高效。
    (Use built-in functions to simplify your code.)

  • 适当使用列表推导式:虽然推导式代码简洁,但对于逻辑复杂的情况,建议使用传统循环以保持可读性。
    (For complex logic, traditional loops might be clearer than list comprehensions.)

总结

通过丰富的示例代码和图标展示,希望能帮助你更好地理解循环的强大功能,为编写高效代码打下坚实基础!
(Understanding loops will empower you to write concise and efficient code.)

如果你觉得这篇教程对你有帮助,请点赞、收藏并关注我! Happy coding!

相关推荐

Java中JDK里用到了哪些设计模式?让面试官眼前一亮!

大家好,欢迎来到程序视点!我是小二哥。Java中JDK里用到了哪些设计模式?...

当问到组件实现原理时,面试官是在刁难你吗?

今天我想跟你探讨的话题是:当面试官问你某某组件的实现原理是什么时,他究竟想了解什么?你又需要了解到什么层面上呢?...

京东大佬问我,在SpringBoot中怎么使用时间轮?要考虑哪些方面?

京东大佬问我,什么是时间轮?为什么要用时间轮?在SpringBoot中怎么使用时间轮?要考虑哪些方面的问题呢?嗯,用户问到了时间轮,还有在SpringBoot中怎么用,需要考虑哪些问题。首先,我得先...

Redis和Memcached区别详解(5大核心区别)

Redis和Memcached都是常见的内存缓存系统,但也有区别,以下是5大Redis和Memcached的区别@mikechen本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面...

工作中用Redis最多的10种场景(redis实际应用场景)

前言Redis作为一种优秀的基于key/value的缓存,有非常不错的性能和稳定性,无论是在工作中,还是面试中,都经常会出现。今天这篇文章就跟大家一起聊聊,我在实际工作中使用Redis的10种场景,希...

Redis面试攻防战:如何赢得技术博弈的胜利

今天,我面试了某大厂的java开发岗位,迎面走来一位风尘仆仆的中年男子,手里拿着屏幕还亮着的mac,他冲着我礼貌的笑了笑,然后说了句“不好意思,让你久等了”,然后示意我坐下,说:“我们开始吧。看了你的...

深入浅出聊聊 Redis 高级特性(redis如何实现高性能)

Redis数据结构Redis常用的数据类型主要有以下五种:StringHashListSetSortedsetRedis内部使用一个redisObject对象来表示所有的key和va...

Redis在Java项目中的典型应用场景

Redis在Java项目中的典型应用场景在Java项目的世界里,Redis作为一种高性能的内存数据库,其应用已经变得极为广泛。它不仅具备缓存功能,还能胜任分布式锁、消息队列等多种角色。今天,我们就来聊...

Redis与Java集成的最佳实践:打造高效缓存系统

Redis与Java集成的最佳实践:打造高效缓存系统在当今高并发的时代,Redis作为一款高效的内存数据库,已经成为Java开发者不可或缺的工具之一。它不仅能显著提升系统的响应速度,还能有效减轻数据库...

Redis 慢查询:从青铜到王者的进阶之路

各位程序员老铁们,欢迎来到Redis吐槽大会!今天咱们要吐槽的「摸鱼选手」叫慢查询——这货表面上是条普通命令,背地里却能让你的Redis分分钟变成「龟速数据库」。想知道它是怎么搞破坏的?跟...

订单超时自动取消的7种方案,我用这种!

前言在电商、外卖、票务等系统中,订单超时未支付自动取消是一个常见的需求。...

Redis在Java项目中的奇妙应用(redis在java项目中的使用)

Redis在Java项目中的奇妙应用在Java的世界里,Redis就像是那位低调却实力非凡的幕后英雄。它虽不像Spring那样被频繁提及,但它的身影却无处不在。今天,我们就来聊聊Redis这位“存储大...

2015年在Twitter上刷屏的那些事儿

我们将盘点在今年12个月里Twitter上最有影响力的大V跟那些轰动整个网络的新闻事件。今年,我们看到了巴黎恐怖袭击、成千上万难民们试图远离战争等许多重大的事件。本周,Twitter公布了整整12个月...

Swift 语言指南-Issue 43(swift语句)

本期特别推荐1.项目:Filterpedia(完整、强大的图片滤镜类库)、ElasticTransition(畅快、无违和感的皮筋式动画转场)以及VWInstantRun(Xcode高效调试插件...

1小时入门Swift语法(swift语法 简书)

简介Swift语言由苹果公司在2014年推出,用来撰写OSX和iOS应用程序2014年,在AppleWWDC发布特点从它的语法中能看到Objective-C、JavaScrip...