我们在写代码时经常会用到循环,python中有for循环和while循环,我们来详细的了解一下这两种循环。
for循环
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
我们通过一个例子来看一下for循环的具体使用,我们通过
range()
函数创建一个整数列表,然后将列表中的元素通过for循环打印出来。
# for i in range(5)开始迭代的时候,生成一个数值0,第二次迭代再生成数值1,第三次迭代再生成数值2,
for i in range(5):
print(i)
# 输出:
0
1
2
3
4
上面是使用了range()函数,我们试试自己定义一个列表来通过for循环打印:
list1 = ['a', 'b', 'c']
for i in list1:
print(l)
# 输出:
a
b
c
仔细看上面两个例子,我们发现,循环每次迭代时,for会从序列中取一个元素赋值给控制变量i(可自己定义),下一轮迭代又取下一个元素赋值给i。
for循环使用 else 语句
除了使用单独的for语句,还可以使用for ... else语句,else中的语句会在循环正常执行完
的情况下执行。
list1 = ['a', 'b', 'c']
for i in list1:
print(i)
else:
print("循环正常执行完毕")
# 输出:
a
b
c
循环正常执行完毕
上面我们说到循环正常执行完毕的情况,那肯定是还有循环不正常执行完毕的情况。什么情况就算不正常执行完毕的退出呢?像通过break、continue语句退出循环的就不算正常执行完毕。
-
break语句
:退出整个循环,如果嵌套了循环,则退出break所在的那层循环。 -
continue语句
:跳过当前循环的剩余语句,然后继续进行下一轮循环。 -
pass语句
:不做任何事情,一般用做占位语句。
for迭代字典
for迭代字典时,可以分为不同的几种方式:
- 通过keys()迭代字典的key
dict1 = {'name': 'Tom', 'age': 11, 'sex': 'man'}
for i in dict1.keys():
print(i)
# 输出:
name
age
sex
- 通过values()迭代字典的value
for i in dict1.values():
print(i)
# 输出:
Tom
11
man
- 通过items()同时迭代key和value
for k, v in dict1.items():
print(k, v)
# 输出:
name Tom
age 11
sex man
range() 函数的介绍
python range() 函数可创建一个整数列表,一般用在 for 循环中
语法: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)
while循环
while循环和for循环都能循环做一件重复的事情。不同的地方在于for循环是在序列穷尽时停止,而while循环是在条件不成立时停止。
while循环的执行语句可以是单个语句或语句块,判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。当判断条件假false时,循环结束。
-
真值表
我们通过一个实例来看一下while循环的使用:
a = 3
while a >= 1:
print(a)
a -= 1
# 输出:
3
2
1
循环条件为a>=1,所以当这个条件成立时就会继续循环,打印a。当a<1时就会停止循环。
当然,如果我们想要中途终止循环也可以使用break
和continue
语句。
while循环使用else
while循环和for循环一样,也可以使用else语句,我们一起来看一下:
a = 3
while a >= 1:
print(a)
a -= 1
else:
print('循环结束 !')
# 输出:
3
2
1
循环结束 !
无限循环
如果你想要循环永远执行,可以让条件让真一直成立,比如说:
a = 1
while a == 1:
print(a)
else:
print('循环结束 !')
# 会一直循环打印1
break跳出循环
a = 0
while a < 10:
print(a)
a = a + 1
if a == 3:
print("break跳出循环")
break
else:
print('循环结束 !')
# 输出:
0
1
2
break跳出循环
continue进去下一轮循环
for i in range(1, 11):
if i % 2:
continue
print(i)
# 输出
2
4
6
8
10
上面代码中使用了continue语句,if 条件语句的意思是如果i%2为真(不等于0)就进入下一轮循环。如果i%2为假(等于0)时会执行print(i)语句,打印i 。
网友评论