Python 中的循环语句有 for 和 while
Python 循环语句的控制结构图如下所示:

while 循环
Python 中 while 语句的一般形式
while 判断条件: 语句同样需要注意冒号和缩进。另外,在 Python 中没有 do..while 循环
#!/usr/bin/env python3# -*- coding:utf-8 -*-n = 100sum = 0counter = 1while counter <= n: sum = sum + counter counter += 1print('1 到 %d 之和为:%d' % (n, sum))
无限循环
可以通过设置条件表达式永远不为 false 来实现无限循环
var = 1while var == 1: # 表达式永远为true num = int(input("输入一个数字 :")) print("输入的数字:", num)print("Good bye!")可以使用 CTRL+C 来退出当前的无限循环
无限循环在服务器上客户端的实时请求非常有用
while 循环使用 else 语句
在 while … else 在条件语句为 false 时执行 else 的语句块
语法格式
while <expr>: <statement(s)>else: <additional_statement(s)>
循环输出数字,并判断大小
count = 0while count < 5: print(count, "小于5") count += 1else: print(count, "大于或等于5")
简单语句组
类似if语句的语法,如果你的while循环体中只有一条语句,你可以将该语句与while写在同一行中
flag = 1while (flag): print("欢迎使用")注意:以上的无限循环你可以使用 CTRL+C 来中断循环
for 语句
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串for循环的一般格式
for <variable> in <sequence>: <statements>else: <statements>
lan = ['C', 'C++', 'Perl', 'Python']for x in lan: print(x)
sites = ['Baidu', 'Google', 'Run', 'Taobao']for site in sites: if site == 'Taoba': print('菜鸟!') break print("循环数据 " + site)else: print("没有循环数据!")print("完成循环!")
range()函数
如果需要遍历数字序列,可以使用内置range()函数。它会生成数列
for i in range(5): print(i)也可以使用range指定区间的值
for i in range(5, 9): print(i)也可以使range以指定数字开始并指定不同的增量(甚至可以是负数,有时这也叫做'步长'):
for i in range(0, 10, 3): print(i)负数
for i in range(-10, -100, -30): print(i)
可以结合range()和len()函数以遍历一个序列的索引
a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ']for i in range(len(a)): print(i, a[i])
可以使用range()函数来创建一个列表
break 和 continue 语句及循环中的 else 子句
break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行
continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环
(continue语句跳出 for 和 while 的循环体的本次循环)
循环语句可以有 else 子句,它在穷尽列表(以for循环)或条件变为 false (以while循环)导致循环终止时被执行,但循环被 break 终止时不执行
代码执行过程

while 中 使用 break:
n = 5while n > 0: n -= 1 if n == 2: break print(n)print("循环结束")
while 中 使用 continue
continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环
n = 5while n > 0: n -= 1 if n == 2: continue print(n)print("循环结束")查询质数的循环例子
for n in range(2, 10): for x in range(2, n): if n % x == 0: print(n, '等于', x, '*', n//x) break else: # 循环中没有找到元素 print(n, "是质数")输出
2 是质数
3 是质数
4 等于 2 * 2
5 是质数
6 等于 2 * 3
7 是质数
8 等于 2 * 4
9 等于 3 * 3
pass 语句
Python pass是空语句,是为了保持程序结构的完整性
pass 不做任何事情,一般用做占位语句
在字母为 o 时 执行 pass 语句块
for letter in 'Runoob': print('当前字母:', letter) if letter == 'o': pass print('执行 pass 块')print('结束!')
小结:
使用内置 enumerate 函数进行遍历
for index, item in enumerate(sequence): process(index, item)
sequence = [12, 34, 34, 23, 45, 76, 89]for i, j in enumerate(sequence): print(i, j)
使用循环嵌套来实现99乘法法则:
# 外边一层循环控制行数# i是行数i = 1while i <= 9: # 里面一层循环控制每一行中的列数 j = 1 while j < i: mut = j * i print("%d * %d = %d" % (j, i, mut), end=" ") j += 1 print("") i += 1
while 循环语句和 for 循环语句使用 else 的区别:
- 1、如果 else 语句和 while 循环语句一起使用,则当条件变为 False 时,则执行 else 语句。
- 2.如果 else 语句和 for 循环语句一起使用,else 语句块只在 for 循环正常终止时执行
pass只是为了防止语法错误
pass就是一条空语句。在代码段中或定义函数的时候,如果没有内容,或者先不做任何处理,直接跳过,就可以使用pass
if a>1: pass #如果没有内容,可以先写pass,但是如果不写pass,就会语法错误
十进制转换
while True: number = input("请输入一个整数(输入Q推出程序):") if number in ['q', 'Q']: break # 如果输入q或Q,结束退出 elif not number.isdigit(): print("您输入有误!只能输入整数(输入Q退出程序)!请重新输入") continue # 如果输入的数字不是10进制,结束循环,重新开始 else: number = int(number) print("十进制-->十六进制 :%d -> 0x%x"%(number, number)) print("十进制--> 八进制 :%d -> 0o%o" % (number, number)) print("十进制-->二进制 :%d -> " % number, bin(number))