Python while循环详解
while 循环的语法格式如下:
从这个意义上看,while 循环也可被当成分支语句使用,即如果 test_expression 条件一开始就为假,则循环体部分将永远不会获得执行的机会。
下面程序示范了一个简单的 while 循环:
在使用 while 循环时,一定要保证循环条件有变成假的时候:否则这个循环将成为一个死循环,永远无法结束这个循环。例如如下代码:
在上面代码中,count_i2 的值越来越小,这将导致 count_i2 的值永远小于 10,count_i2<10 循环条件一直为 True,从而导致这个循环永远无法结束。
与前面介绍分支语句类似的是,while 循环的循环体中所有代码必须使用相同的缩进,否则 Python 也会引发错误。例如如下程序:
运行上面程序,将会看到执行一个死循环。这是由于 count_i += 1 代码没有缩进,这行代码就不属于循环体。这样程序中的 count_1 将一直是 0,从而导致 count_i < 10 一直都是 True,因此该循环就变成了一个死循环。
运行上面程序,可以看到如下输出结果:
下面示范一个小程序,实现对一个整数列表的元素进行分类,能整除 3 的放入一个列表中;除以 3 余 1 的放入另一个列表中;除以 3 余 2 的放入第三个列表中:
[init_statements]
while test_expression :
body_statements
[iteration_statements]
从这个意义上看,while 循环也可被当成分支语句使用,即如果 test_expression 条件一开始就为假,则循环体部分将永远不会获得执行的机会。
下面程序示范了一个简单的 while 循环:
- # 循环的初始化条件
- count_i = 0
- # 当count_i小于10时,执行循环体
- while count_i < 10 :
- print("count:", count_i)
- # 迭代语句
- count_i += 1
- print("循环结束!")
- # 下面是一个死循环
- count_i2 = 0
- while count_i2 < 10 :
- print("不停执行的死循环:", count_i2)
- count_i2 -=1
- print("永远无法跳出的循环体")
与前面介绍分支语句类似的是,while 循环的循环体中所有代码必须使用相同的缩进,否则 Python 也会引发错误。例如如下程序:
- # 循环的初始化条件
- count_i = 0
- # 当count小于10时,执行循环体
- while count_i < 10:
- print('count_i的值', count_i)
- count_i += 1
使用while循环遍历列表和元组
由于列表和元组的元素都是有索引的,因此程序可通过 while 循环、列表或元组的索引来遍历列表和元组中的所有元素。例如如下程序:
- a_tuple = ('fkit', 'crazyit', 'Charli')
- i = 0
- # 只有i小于len(a_list),继续执行循环体
- while i < len(a_tuple):
- print(a_tuple[i]) # 根据i来访问元组的元素
- i += 1
fkit crazyit Charli
按照上面介绍的方法,while 循环也可用于遍历列表。下面示范一个小程序,实现对一个整数列表的元素进行分类,能整除 3 的放入一个列表中;除以 3 余 1 的放入另一个列表中;除以 3 余 2 的放入第三个列表中:
- src_list = [12, 45, 34,13, 100, 24, 56, 74, 109]
- a_list = [] # 定义保存整除3的元素
- b_list = [] # 定义保存除以3余1的元素
- c_list = [] # 定义保存除以3余2的元素
- # 只要src_list还有元素,继续执行循环体
- while len(src_list) > 0:
- # 弹出src_list最后一个元素
- ele = src_list.pop()
- # 如果ele % 2不等于0
- if ele % 3 == 0 :
- a_list.append(ele) # 添加元素
- elif ele % 3 == 1:
- b_list.append(ele) # 添加元素
- else:
- c_list.append(ele) # 添加元素
- print("整除3:", a_list)
- print("除以3余1:",b_list)
- print("除以3余2:",c_list)
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算