嵌套循环与死循环
嵌套循环
嵌套循环和嵌套分支是一样的,当编程时需要在循环的内部在进行循环时,就需要使用到嵌套循环了,python中提供的循环都可以进行嵌套循环操作
需要注意:
- 循环语句的嵌套,要注意空格缩进(基于空格缩进来决定层次关系)
- 注意条件的设置,避免出现无限循环(除非真的需要无限循环)
# while的嵌套循环
"""
打印如下图形
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
"""
i = 1
while i <= 5:
j = 1
while j <= 5:
print("*", end=" ") # print打印语句是自带换行操作的,如果不需要换行可以添加第二参数end="",也可通过end="添加符号进行一行内数据的分隔"
j += 1
print()
i += 1
print("-----------------------------------------------------------")
# for-in的嵌套循环
# 打印直角三角形状的99乘法表
for i in range(1,10):
for j in range(1,i+1):
print(f"{j}*{i}={i*j}",end="\t")
print()
死循环
死循话其实指的就是循环条件永远成立,循环无限执行的循环。
# 死(无限)循环
# 推荐使用while循环来完成操作,简单好用只要保证循环条件为True即可
# while True:
# print("死循环")
# for-in循环实现起来有一些复杂
# 方法1.1:借助循环遍历列表的cycle方法
# from itertools import cycle
# for _ in cycle([1]):
# print("死循环")
# 方法1.2:借助无穷迭代器repeat
# from itertools import repeat
# for _ in repeat(None): # repeat(elem,[n]),对elem迭代n次,n不传则默认无限次
# print("死循环")
# 方法1.3:借助计数器,但是事实上只会循环到计数值大到将内存撑爆时
# from itertools import count
# for _ in count():
# print("死循环")
# 方法1.4:借助iter,int函数每次迭代返回的都是0,始终不会等于哨兵值1,所以会无限迭代
for _ in iter(int, 1):
print("死循环")
# int函数和1只是个例子,可以传入其它可调用对象和哨兵值,只要迭代值始终不等于哨兵值就可以。