一、range数列
range数列包含三个部分,分别是:
- start:称为起点,数列中包含这个数,默认为0
- stop:成为终点,不包含这个数
- step:成为步长,默认为1
# range 数列
# range(start, stop, step)
# 从0开始,到不超过10的整数序列
datas = range(10)
print(list(datas))
# 不超过10的奇数
# 从1开始,步长为2
datas = range(1,10,2)
print(list(datas))
# 不超过10的偶数
# 从0开始,步长为2
datas = range(0,10,2)
print(list(datas))
二、for循环
循环结构:重复 多次执行
# 将range结果逐个赋予变量i
for i in range(0,10,2):
print(i)
# 将字符串逐个赋予变量i
for i in "你好,我的朋友":
print(i)
# 将列表中的各项逐个赋予变量i
for i in ["hello world","",123,False]:
print(i)
练习1: 计算1+2+3+...+100
# 设置变量num用于记录和
num = 0
# 数列中的各项分别赋予变量i
# 数列从1到100
for i in range(1,101):
# num = num + i
num += i
# 在循环外打印一次num,此时num为最终的结果
print(num)
练习2:计算从500开始前10个5的倍数的平均数
- 方法一:确定起点,不确定终点,取一个较大的终点用于计算
# num 用于计算总和
num = 0
# count用于计数
count = 0
# 将数列分别赋予变量i
# 知道从500开始,前十个五的倍数具体不知道
# 取一个较大的终点
for i in range(500,5000):
# 如果i是5的倍数才计算
if i % 5 == 0:
num += i
count += 1
# count为10说明已经计算出前十个的和
if count == 10:
# 计算平均数并输出
print(num / count)
- 方法二:确定次数为10次
# 确定起点500 start = 500 # num用于计算总和 num = 0 # 将数列依次赋给变量i for i in range(10): # num = num + start num += start # start = start + 5 #start每次增加5,确保是5的倍数 start += 5 print(num / 10)
三、break与continue
1、break
break可以终止循环,循环退出
for i in range(10):
if i == 3:
break
print(i)
print("终止循环")
2、continue
continue可以结束当前这一轮,进入下一轮
for i in range(10):
if i == 3:
continue
print(i)
print("终止循环")
四、循环嵌套
循环嵌套简单来说分为外层循环和内层循环,外层循环变化一次,内层循环变化一轮。
简单举例:i 从0到2,b从0到2
i = 0时,b = 0; b = 1;b = 2
i = 1时,b = 0; b = 1;b = 2
i = 2时,b = 0; b = 1;b = 2
count = 0
for i in range(3):
for b in range(3):
print(i, b)
练习3:输入一个数字,计算该数字的阶乘和
例如:数字5的阶乘和为5!+4!+3!+2!+1!
先求阶乘再求和!
input_str = input("输入一个数字")
input_value = int(input_str)
# totle用来计算总和
totle = 0
# 外层循环求阶乘和
for i in range(1, input_value + 1):
# value用来计算阶乘
value = 1
# 内层循环求阶乘
for j in range(1, i+1):
value *= j
totle += value
print(totle)
练习4:打印9×9 乘法表
# i从1到9
for i in range(1, 10):
# j从1到9
for j in range(1, i + 1):
# 用空格结尾
print(f"{j} * {i} = {i * j}",end="\t")
# 换行
print()
练习五:打印9*9的矩阵*
for i in range(9):
for j in range(9):
print(" * ", end="")
print()
- 变形一:边框
for i in range(9):
for j in range(9):
if i == 0 or i == 8 or j == 0 or j == 8:
print(" * ", end="")
else:
print(" ",end="")
print()
- 变形二:主对角线
for i in range(9):
for j in range(9):
if i == j :
print(" * ", end="")
else:
print(" ",end="")
print()
- 变形三:副对角线
for i in range(9):
for j in range(9):
if i + j == 8:
print(" * ", end="")
else:
print(" ",end="")
print()
- 变形四:上三角
- 左上三角
for i in range(9):
for j in range(9):
if i + j <= 8:
print(" * ", end="")
else:
print(" ",end="")
print()
- 右上三角
for i in range(9):
for j in range(9):
if i <= j:
print(" * ", end="")
else:
print(" ",end="")
print()
- 变形五:下三角
- 左下三角
for i in range(9):
for j in range(9):
if i >= j:
print(" * ", end="")
else:
print(" ",end="")
print()
- 右下三角
for i in range(9):
for j in range(9):
if i + j >= 8:
print(" * ", end="")
else:
print(" ",end="")
print()
- 变形六:沙漏
for i in range(9):
for j in range(9):
if i + j <= 8 and i <= j or i + j >= 8 and i >= j:
print(" * ", end="")
else:
print(" ",end="")
print()
未完待续…………