Python中range数列与for循环和while循环

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}张图片")

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值