Python3学习笔记(十一)【循环】
Python
中的循环语句有for
和while
。
while循环
Python
中while
语句的形式为:
while 判断条件:
语句
同样需要注意冒号跟缩进,在Python
中没有do...while
循环。
以下示例为1到100的总和。
n = 100
sum = 0
counter = 1
while counter <= n:
sum = sum + counter
counter += 1
print("1 到 %d 之和为:%d" % (n, sum))
输出:
1 到 100 之和为:5050
Tips:
1到100之和还能这么写:
print(sum(range(101)))
无限循环
通过设置条件表达式不为False来实现无限循环。
while True:
print("Hello World")
将会一直打印Hello World
While循环使用else语句
在while...else
在条件语句为False时执行else的语句块。
n = 0
while n < 5:
print("n < 5")
n += 1
else:
print("n >= 5")
输出:
n < 5
n < 5
n < 5
n < 5
n < 5
n >= 0
简单语句组
类似if
语句的语法,如果while
循环体中只有一条语句,你可以将该语句与while写在同一行中, 如下所示:
while True: print("Hello World")
for语句
Python
for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
_list = ["a", "b", "c", "d"]
for x in _list:
print(x)
name = "qfxl"
for s in name:
print(s)
输出:
a
b
c
d
q
f
x
l
range()函数
如果需要遍历数字序列,可以使用内置range()函数。它会生成数列,例如:
for i in range(5):
print(i)
输出:
0
1
2
3
4
也可以使用range指定区间的值。
for i in range(1, 3):
print(i)
输出:
1
2
也可以使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()
遍历一个序列的索引。
names = ["Anna", "Bruce", "Cinema", "qfxl"]
for i in range(len(names)):
print(i, names[i])
输出:
0 Anna
1 Bruce
2 Cinema
3 qfxl
还可以使用range()
函数来创建一个列表。
li = list(range(5))
print(li)
输出:
[0, 1, 2, 3, 4]
break和continue语句以及循环中的else子句
break
语句可以跳出for
和while
的循环体,如果你从for
或while
循环中终止,任何对应的循环else
块将不执行。
for item in "qfxl":
if item == "x":
break
print("当前字母为:", item)
输出:
当前字母为: q
当前字母为: f
continue
语句被用来告诉Python
跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
for item in "qfxl":
if item == "x":
continue
print("当前字母为:", item)
输出:
当前字母为: q
当前字母为: f
当前字母为: l
循环语句可以用else
子句,它在穷尽列表(以for
循环)或条件变为False
(以while
循环)导致循环终止时被执行,但循环被break
终止时不执行。
区别:
- 如果 else 语句和 while 循环语句一起使用,则当条件变为 False 时,则执行 else 语句。
- 如果 else 语句和 for 循环语句一起使用,else 语句块只在 for 循环正常终止时执行!
for n in range(2, 10):
for m in range(2, n):
if n % m == 0:
print(n, "=", m, "*", n // m)
else:
print(n, "是质数")
输出:
2 是质数
3 是质数
4 = 2 * 2
4 是质数
5 是质数
6 = 2 * 3
6 = 3 * 2
6 是质数
7 是质数
8 = 2 * 4
8 = 4 * 2
8 是质数
9 = 3 * 3
9 是质数
pass语句
Python
中pass
是空语句,是为了保持程序结构的完整性。
pass
不做任何事情,一般用于做占位语句。
while True:
pass
最小的类。
class EmptyClass:
pass
for item in "Hello":
if item == "l":
pass
print("执行pass块")
print("当前字母:", item)
输出:
当前字母: H
当前字母: e
执行pass块
当前字母: l
执行pass块
当前字母: l
当前字母: o
使用enumerate函数进行遍历
_list = ["A", "B", "C", "D", "E", "F"]
for index, item in enumerate(_list):
print(index, item)
输出:
0 A
1 B
2 C
3 D
4 E
5 F