1. range 数列
# 数列:range 范围
# start 起点 默认值是0 包含
# stop 终点 不包含 必填项
# step 步长 默认值是1
datas = range(10)
print(list(datas))
datas = range(5, 10)
print(list(datas))
datas = range(5, 10, 3)
print(list(datas))
datas = range(10, 0, -3)
print(list(datas))
2. for循环
# 顺序结构:从上向下逐行执行
# 选择结构:分支结构:根据条件选择性的去执行
# 循环结构:重复,多次执行
# if True:
# pass
# 将range结果逐个赋予变量i
#for i in range(5, 10, 2):
# print("醒醒啦", i)
# print(50 in range(10), list(range(10)))
# for c in "醒醒啦!!!!!!!!!":
# print(c)
# for e in ["醒醒啦", "困了么", False, 100, 3.14]:
# print(e)
# 计算1+2+3+4+...+100
# num = 0
# for i in range(1, 101):
# num += i
# print(num)
# print(sum(range(1, 101)))
# 计算【500,1000】之间3的倍数的平均数
# 总数
# total = 0
# 个数
# count = 0
# 获取500-1000之间所有数字
# for i in range(500, 1001):
# # 判定当前i是否是3的倍数
# if i % 3 == 0:
# # 总数+i
# total += i
# # 个数+1
# count += 1
# # 计算平均数
# print(total / count)
# 计算 从500开始前10个5的倍数的平均数
# total = 0
# for i in range(500, 500+5*10, 5):
# total += i
# print(total / 10)
start = 500
total = 0
for i in range(10):
total += start
start += 5
print(total / 10)
3. break 中断 与continue 继续
# break 可以终止循环,循环退出
# continue 可以结束当前这一轮,进入下一轮循环
for i range(10):
if i == 3:
# break
continue
4.for循环嵌套与案例
# if 10 > 5:
# if 10 > 4:
# print("hi")
# 外层循环变化一次 内层循环变化一轮
# for i in range(5):
# for j in range(5):
# for m in range(5):
# for n in range(5):
# print(i, j, m, n)
# 输入一个数字 计算该数字的阶乘和
# 5!+4!+3!+2!+1!
# value = 5
# total = 0
# for i in range(1, value + 1):
# count = 1
# for j in range(1, i + 1):
# count *= j
# total += count
# print(total)
# 15.扩展,打印9*9乘法表(for循环嵌套)
# for i in range(1, 10):
# for j in range(1, i+1):
# print(f"{j} * {i} = {j*i}", end="\t")
# print()
# i控制行 j控制列
# for i in range(9):
# for j in range(9):
# print(" * ", end="")
# print()
# for i in range(9):
# for j in range(9):
# if j == 0:
# print(" * ", end="")
# else:
# print(" ", end="")
# print()
# for i in range(9):
# for j in range(9):
# if j == 0 or j == 8 or i == 0 or i == 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 or 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:
# print(" * ", end="")
# else:
# print(" ", end="")
# print()
for i in range(9):
for j in range(9):
if i <= j and i + j <= 8 or i + j >= 8 and i >= j:
print(" * ", end="")
else:
print(" ", end="")
print()
5.while循环
核心开门关门概念
# 默认开门(条件为真) 随着程序的执行 关门(条件为假)
# while 循环内部需要将条件设置false 否则成了死循环
# while True:
# print("醒醒啦")
# print("开饭啦")
# can_open = True
# while can_open:
# print("=========")
# can_open = False
# print("开饭了")
# 在...期间
# print("*")
# print("*")
# print("*")
# print("*")
# print("*")
# print("*")
# print("*")
# print("*")
# for i in range(10):
# print("*")
# 当while条件为真 则循环执行while语句块
# while 条件:
# pass
# 当if条件为真则执行一次语句块
# if 条件:
# pass
# if True:
# print("醒醒啦")
默认条件True 才能进入代码块
随着程序的运行 改变条件 将条件设置为False
条件为False 跳出循环
6.while循环嵌套
while中使用break
break可以中断while
如果没有出发break
会执行while最后对应的else
使用while循环 9*9乘法表
# i = 1
# while i <= 9:
#
# j = 1
# while j <= i:
# print(f"{j} * {i} = {i*j}", end="\t")
# j += 1
# print()
#
# i += 1
# for i in range(1, 10):
# for j in range(1, 10):
# print(" * ", end="")
# print()
i = 1
while i < 10:
j = 1
while j < 10:
if i <= j and i + j <= 10 or i >= j and i + j >= 10:
print(" * ", end="")
else:
print(" ", end="")
j += 1
print()
i += 1
7.for与while都可以使用else
# if else 如果...那么...
# if 10 > 50:
# print("好开心")
# else:
# print("呜呜呜")
# for i in range(10):
# if i == 90:
# # continue 会终止某一次循环 不会导致else不执行
# # continue
# # break 会终止整个循环 导致else不会执行
# break
# print(i)
# else:
# print("for循环完整结束")
# value = 8
# flag = True
# for i in range(2, value):
# if value % i == 0:
# flag = False
# break
# if flag:
# print(value, "是质数")
# value = 7
# for i in range(2, value):
# if value % i == 0:
# break
# else:
# print(value, "是质数")
# 1000以内10个最小的质数
# count = 0
# for i in range(2, 1001):
# # 判定i是不是质数
# for j in range(2, i):
# if i % j == 0:
# break
# else:
# print(i, "是质数")
# count += 1
# if count == 10:
# break
# i = 0
# while i < 10:
# i += 1
# if i == 100:
# # continue
# break
# print(i)
# else:
# print("while正常结束")
# 使用while循环判定一个数字是不是质数
# value = 997
# i = 2
# flag = True
# while i < value:
# if value % i == 0:
# flag = False
# break
# i += 1
# if flag:
# print("是质数")
# value = 100
# i = 2
# while i < value:
# if value % i == 0:
# break
# i += 1
# else:
# print(value, "是质数")
# 1000以内
# 最大
# 的10个
# 质数
# 使用while
count = 0
i = 1000
while i > 1:
# 判定i是不是质数
j = 2
while j < i:
if i % j == 0:
break
j += 1
else:
print(i)
# 个数够10 停止计算
count += 1
if count == 10:
break
i -= 1
# count = 0
# i = 1000
# while i > 1:
#
#
#
# j = 2
# while j < i:
# if i % j == 0:
# break
# j += 1
# else:
# print(i, "是质数")
# count += 1
# if count == 10:
# break
#
#
#
# i -= 1
# keyword
# random
# turtle
# 1. 导入请求模块
from urllib import request
import json
count = 0
# 2. 发起请求 将请求结果赋予 res 变量
page = 1
while True:
res = request.urlopen(
f"https://image.baidu.com/search/albumsdata?pn={30 * page}&rn=30&tn=albumsdetail&word=%E5%AE%A0%E7%89%A9%E5%9B%BE%E7%89%87&album_tab=%E5%8A%A8%E7%89%A9&album_id=688&ic=0&curPageNum={page}")
page += 1
# 3. 获取请求返回值 解码 将类型转换为字典
res = res.read().decode()
res = json.loads(res)
# 4. 解析数据
datas = res["albumdata"]["linkData"]
for data in datas:
image_url = data["thumbnailUrl"]
# 5. 请求图片
res_image = request.urlopen(image_url)
res_image = res_image.read()
# 6. 保存图片
count += 1
file = open(f"{count}.jpg", "wb")
file.write(res_image)
file.close()
if len(datas) != 30:
break
print(f"总共{count}张图片")