# Python 循环
本章节将为大家介绍Python循环语句的使用。
Python中的循环语句有 for 和 while。
Python循环语句的控制结构图如下所示:
![](https://box.kancloud.cn/2015-12-12_566c100a7467f.png)
## while 循环
Python中while语句的一般形式:
```
while 判断条件:
statements
```
同样需要注意冒号和缩进。另外,在Python中没有do..while循环。
以下实例使用了 while 来计算 1 到 100 的总和:
```
#!/usr/bin/env python3
n = 100
sum = 0
counter = 1
while counter <= n:
sum = sum + counter
counter += 1
print("Sum of 1 until %d: %d" % (n,sum))
```
执行结果如下:
```
Sum of 1 until 100: 5050
```
## for语句
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
for循环的一般格式如下:
```
for <variable> in <sequence>:
<statements>
else:
<statements>
```
Python loop循环实例:
```
>>> languages = ["C", "C++", "Perl", "Python"]
>>> for x in languages:
... print x
...
C
C++
Perl
Python
>>>
```
以下实例for实例中使用了 break语句,break语句用于跳出当前循环体:
```
#!/usr/bin/env python3
edibles = ["ham", "spam","eggs","nuts"]
for food in edibles:
if food == "spam":
print("No more spam please!")
break
print("Great, delicious " + food)
else:
print("I am so glad: No spam!")
print("Finally, I finished stuffing myself")
```
执行脚本后,在循环到 "spam"时会跳出循环体:
```
Great, delicious ham
No more spam please!
Finally, I finished stuffing myself
```
## range()函数
如果你需要遍历数字序列,可以使用内置range()函数。它会生成数列,例如:
```
>>> for i in range(5):
... print(i)
...
0
1
2
3
4
```
你也可以使用range指定区间的值:
```
>>> for i in range(5,9) :
print(i)
5
6
7
8
>>>
```
也可以使range以指定数字开始并指定不同的增量(甚至可以是负数;有时这也叫做'步长'):
```
>>> for i in range(0, 10, 3) :
print(i)
0
3
6
9
>>>
```
负数:
```
>>> for i in range(-10, -100, -30) :
print(i)
-10
-40
-70
>>>
```
您可以结合range()和len()函数以遍历一个序列的索引,如下所示:
```
>>> a = ['Mary', 'had', 'a', 'little', 'lamb']
>>> for i in range(len(a)):
... print(i, a[i])
...
0 Mary
1 had
2 a
3 little
4 lamb
```
还可以使用range()函数来创建一个列表:
```
>>> list(range(5))
[0, 1, 2, 3, 4]
>>>
```
## break和continue语句及循环中的else子句
break语句可以跳出for和while的循环体。如果你从for或while循环中终止,任何对应的循环else块将不执行。
continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
循环语句可以有else子句;它在穷尽列表(以for循环)或条件变为假(以while循环)循环终止时被执行,但循环被break终止时不执行.如下查寻质数的循环例子:
```
>>> for n in range(2, 10):
... for x in range(2, n):
... if n % x == 0:
... print(n, 'equals', x, '*', n//x)
... break
... else:
... # 循环中没有找到元素
... print(n, 'is a prime number')
...
2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3
```
## pass语句
pass语句什么都不做。它只在语法上需要一条语句但程序不需要任何操作时使用.例如:
```
>>> while True:
... pass # 等待键盘中断 (Ctrl+C)
```
最小的类:
```
>>> class MyEmptyClass:
... pass
```
- Python 基础教程
- Python 简介
- Python 环境搭建
- Python 基础语法
- Python 变量类型
- Python 运算符
- Python 条件语句
- Python 循环语句
- Python While循环语句
- Python for 循环语句
- Python 循环嵌套
- Python break 语句
- Python continue 语句
- Python pass 语句
- Python 数字
- Python 字符串
- Python 列表(Lists)
- Python 元组
- Python 字典(Dictionary)
- Python 日期和时间
- Python 函数
- Python 模块
- Python 文件I/O
- Python 异常处理
- Python 高级教程
- Python 面向对象
- Python 正则表达式
- Python CGI编程
- Python 使用SMTP发送邮件
- Python 多线程
- Python 2.x与3??.x版本区别
- Python IDE
- Python JSON
- Python3 教程
- Python3 基础语法
- Python3 基本数据类型
- Python3 解释器
- Python3 注释
- Python3 数字运算
- Python3 字符串
- Python3 列表
- Python3 编程第一步
- Python3 条件控制
- Python3 循环
- Python3 函数
- Python3 数据结构
- Python3 模块
- Python3 输入和输出
- Python3 错误和异常
- Python3 类
- Python3 标准库概览
- 免责声明