一,while循环
1,语法格式
定义一个计数器
while 条件: (条件一般都为计数器)
条件成立,循环执行的代码
计数器+1或-1,使条件生变化,最终使循环条件不成立,避免死循环
或者嵌套一个if语句,if条件成立的时候直接break,退出循环。也是避免死循环的方法距离
举例如下:
count = 1
while count <= 10:
count += 1 # 一定要对计数器进行操作,使得循环条件不成立,下面的break是双重保险
print(count)
if count == 2:
# continue 的作用是跳出本轮循环,不在执行后面的代码,当count为2时,不打印hello python,直接计数
# 类似请假,今天的工作不干了,但是以后的工作还是要干的
# 这里有要注意的点时,如果使用了continue,计数器的操作,一定要在continue上方,不然就死循环了
continue
print("hello, python")
if count == 5:
print("已经五次了,退出循环")
# 当count为5的时候,用break关键字直接退出循环,这就是辞职,再也不干活了
break
二,for循环
for循环可以变量任何一个序列项目,字典,字符串,列表等。遍历就是从头到尾,每一个成员都去访问一次,全部都要取出来。
一,列表的遍历
1,介绍range函数,
range是py的内置函数,功能是生成整数序列
起点-- 默认为0
终点-- 自己定义
步长-- 默认为1
规则-- 左闭右开
eg:
range(5) == [0, 1, 2, 3, 4]
range(1, 5) == [1, 2, 3, 4]
range(1, 10, 2) == [1, 3, 5, 7, 9]
range(10, 1, -2) == [10, 8 , 6, 4 ,2]
2,遍历列表
num = [1, 2, 3, 4, 5, "菜", "鸡"]
for index in range(len(num)):
print(num[index])
二,遍历字典
person_info = {"sex": "男", "tzh": "帅,有钱,会哄人", "age": 30}
# 1,遍历键名
for key in person_info.keys():
print(key)
# 2,遍历值
for value in person_info.values():
print(value)
# 3,遍历键值对
for key, value in person_info.items():
print(key, value)
三,双重for循环
遇到双重for循环的时候,首先要梳理清楚,外层循环和内层循环的逻辑关系,再去写双重for循环,根据输出的内容,在调整语句的逻辑
方法:可以先谢谢内层的循环,观察内层循环中,哪个东西一直在变,在考虑变的跟外层循环的关系
例子:
请输出以下图形
1
1 2
1 2 3
1 2 3 4第一行:输出1, range(1, 2) 行数+1
第二行: 输出1,2 range(1, 3) 行数+1
第三行:输出1,2,3 range(1,4)行数+1
第四行:输出1,2,3,4 range(1, 5) 行数+1
规律:每一行都是从1开始,结束的数字为 行号+1
每一行都要遍历
for i in range(1, 5):
for a in range(1, i+1): # 因为都是从1开始,
print(a, end=" ")
print(" ")
二,输出九九乘法表
1 * 1 = 1
1 * 2 = 2 2 * 2 = 4
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16
1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25
1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36
1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49
1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64
1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81
观察规律:
第一行: 从1开始, 1*1=1 --1
第二行: 从1开始, 1*1=1 2*2=4 --1,2 {} * 行号 = 结果
第三行: 从1开始,1*1=1 2*3=6 3*3=9 -- 1,2,3 {} * 行号 = 结果
答案:
for row in range(1, 10):
for col in range(1, row+1): # 因为都是从1开始, row为行号, col为列号
print("{} * {} = {}".format(col, row, row*col), end=' ')
print(" ")