Python 循环 while or for
Python 中的循环语句有 for 和 while。
Python 循环语句的控制结构图如下所示:
while循环
while 语句的一般形式:
while 判断条件(condition): 执行语句(statements)……
同样需要注意冒号和缩进。另外,在 Python 中没有 do..while 循环。
以下实例使用了 while 来计算 1 到 100 的总和:
#!/usr/bin/env python3 n = 100 counter = 1 sum = 0 while counter <= n: sum = sum + counter counter = counter + 1 print("1 到 %d 的和是 %d" % (n,sum))
实际输出
1 2 | [root@lddb1 scripts] # ./sum.py 1 到 %d 的和是 %d (100, 5050) |
无限循环
可以通过设置条件表达式永远不为 false 来实现无限循环,实例如下:
#!/usr/bin/env python3 while 1 == 1: num = int(input("请输入一个数字:")) print("你输入的数字是:%d" % num) print("你输入的数字是:" ,num)
实际输出
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [root@lddb1 scripts] # ./a.py 请输入一个数字:1 你输入的数字是:1 你输入的数字是: 1 请输入一个数字:2 你输入的数字是:2 你输入的数字是: 2 请输入一个数字:3 你输入的数字是:3 你输入的数字是: 3 请输入一个数字:^CTraceback (most recent call last): File "./a.py" , line 3, in <module> num = int(input( "请输入一个数字:" )) KeyboardInterrupt |
你可以使用 CTRL+C 来退出当前的无限循环。
无限循环在服务器上客户端的实时请求非常有用。
while 循环使用 else 语句
如果 while 后面的条件语句为 false 时,则执行 else 的语句块。
语法格式如下:
while <expr>: <statement(s)> else: <additional_statement(s)>
expr 条件语句为 true 则执行 statement(s) 语句块,如果为 false,则执行 additional_statement(s)。
循环输出数字,并判断大小:
#!/usr/bin/env python3 count = 0 while count < 5: print(count,"小于 5") count += 1 else: print(count,"等于 5")
输出:
1 2 3 4 5 6 7 | [root@lddb1 scripts] # ./a.py 0 小于 5 1 小于 5 2 小于 5 3 小于 5 4 小于 5 5 等于 5 |
简单语句组
类似if语句的语法,如果你的while循环体中只有一条语句,你可以将该语句与while写在同一行中, 如下所示:
#!/usr/bin/env python3 flag = 1 while flag: print("热烈欢迎")
可以使用 CTRL+C 来退出当前的无限循环
for 语句
Python for 循环可以遍历任何可迭代对象,如一个列表或者一个字符串。
for循环的一般格式如下:
1 2 3 4 | for <variable> in <sequence>: <statements> else : <statements> |
样例:
#!/usr/bin/env python3 # -*- coding: UTF-8 -*- languages = ['C','C++','Java','Python','PHP'] for x in languages: print(x)
结果
1 2 3 4 5 | C C++ Java Python PHP |
range()函数
如果你需要遍历数字序列,可以使用内置range()函数。它会生成数列,例如:
range(start, stop[, step])
参数说明:
- start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
- stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
- step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
>>> for i in range(5): ... print(i) ... 0 1 2 3 4 >>> for i in range(5,10): ... print(i) ... 5 6 7 8 9 >>> >>> >>> for i in range(0,10,2): ... print(i) ... 0 2 4 6 8
负数
>>> for i in range(-1,-10,-2):
... print(i)
...
-1
-3
-5
-7
-9
使用list生成序列
>>> list(range(5))
[0, 1, 2, 3, 4]
结合range()和len()函数以遍历一个序列的索引
#!/usr/bin/env python3 # -*- coding: UTF-8 -*- languages = ["C","C++","Python","Java","PHP"] for i in range(len(languages)): print(i,languages[i])
结果:
1 2 3 4 5 | 0 C 1 C++ 2 Python 3 Java 4 PHP |
break 和 continue 语句及循环中的 else 子句
break 执行流程图:
continue 执行流程图:
while 语句代码执行过程:
for 语句代码执行过程:
break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。
continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
while 中使用 break:
#!/usr/bin/env python3 # -*- coding: UTF-8 -*- n = 5 while n > 0: n -= 1 if n == 2: break print(n) print('循环结束')
结果:
1 2 3 | 4 3 循环结束 |
更多实例:
#!/usr/bin/env python3 # -*- coding: UTF-8 -*- for i in "Runoob": if i == 'b': break print("当前字母为:%s" % i) var = 10 while var > 0: print("当前变量为:%d" % var) var -= 1 if var == 5: break print("Good bye!") 结果: 当前字母为:R 当前字母为:u 当前字母为:n 当前字母为:o 当前字母为:o 当前变量为:10 当前变量为:9 当前变量为:8 当前变量为:7 当前变量为:6 Good bye!
while 中使用 continue:
#!/usr/bin/env python3 # -*- coding: UTF-8 -*- n = 5 while n > 0: n -= 1 if n == 2: continue print(n) print('循环结束')
结果
1 2 3 4 5 | 4 3 1 0 循环结束 |
实例:
#!/usr/bin/env python3 # -*- coding: UTF-8 -*- for i in "Runoob": if i == '0': continue print("当前字母为:%s" % i) var = 10 while var > 0: var -= 1 if var == 5: continue print("当前变量为:%d" % var) print("Good bye!") 结果: 当前字母为:R 当前字母为:u 当前字母为:n 当前字母为:o 当前字母为:o 当前字母为:b 当前变量为:9 当前变量为:8 当前变量为:7 当前变量为:6 当前变量为:4 当前变量为:3 当前变量为:2 当前变量为:1 当前变量为:0 Good bye!
pass 语句:
Python pass是空语句,是为了保持程序结构的完整性。
pass 不做任何事情,一般用做占位语句,如下实例
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构