Python中range数列与for循环

一、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()

  • 变形四:上三角
  1. 左上三角
for i in range(9):
    for j in range(9):
        if i + j <= 8:
            print(" * ", end="")
        else:
            print("   ",end="")
    print()

  1. 右上三角
for i in range(9):
    for j in range(9):
        if i <= j:
            print(" * ", end="")
        else:
            print("   ",end="")
    print()

  • 变形五:下三角
  1. 左下三角
for i in range(9):
    for j in range(9):
        if i >= j:
            print(" * ", end="")
        else:
            print("   ",end="")
    print()

  1. 右下三角
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()

未完待续…………

  • 19
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

火爆辣椒abc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值