超越基础循环技巧:玩转Python中range数列与for循环的进阶方法与技巧!

  1. 输入数字n求n的阶乘和   5的阶乘和 =5!+4!+3!+2!+1!
    # 1.输入数字n求n的阶乘和   5的阶乘和 =5!+4!+3!+2!+1!
    num = int(input("请输入一个数字:"))
    value = 0
    for i in range(1, num + 1):
        count = 1
        for j in range(1, i + 1):
            count *= j
        value += count
    print(value)

  2. 9行9列的图形,控制各种显示各种位置三角形
    # 2.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 <= 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 and i + j <= 8:
                print(" * ", end="")
            else:
                print("   ", end="")
        print()

  3. 输入3打印
  4. *

    ***

    *****

    # 3.输入3打印
    # *
    # ***
    # *****
    
    num_1 = 3
    for i in range(num_1):
        value = i * 2 + 1
        for j in range(value):
            print("*", end="")
        print()
    

4.已知两个三位数abc和cba之和为1333(即abc+cba=1333)求 a、b、c

# 4.已知两个三位数abc和cba之和为1333(即abc+cba=1333)求 a、b、c


for i in range(1000):
    for j in range(1000):
        if i + j == 1333 and i % 10 == j // 100 and j % 10 == i // 100 and i % 100 // 10 == j % 100 // 10:
            print(i, j)

5.编程求出满足以下条件的三位数:它除以11所得的商等于它各位数字之和. 

# 5.编程求出满足以下条件的三位数:它除以11所得的商等于它各位数字之和.

for i in range(100, 1000):
    if i // 11 == i % 10 + i // 100 + i % 100 // 10:        # i % 10(个位)i // 100(百位)i % 100 // 10(十位)
        print(i)

 

 6.求1000以内最大的5个能同时被3和6整除的数。

# 6.求1000以内最大的5个能同时被3和6整除的数。
count = 0
for i in range(1001, 0, -1):
    if i % 3 == 0 and i % 6 == 0:
        count += 1
        print(i)
        if count == 5:
            break

 7.输入一个数字,如果这个数字是质数则打印该数字,否则则打印该数字最大的因数

# 7.输入一个数字,如果这个数字是质数则打印该数字,否则则打印该数字最大的因数
tag = 0
num = int(input("请输入一个数:"))
for i in range(num - 1, 2, -1):
    if num % i == 0:
        print(i)
        tag = 1
        break
if tag == 0:
    print(num)

 

 8.求1000以内所有质数的平均数

# 8.求1000以内所有质数的平均数
value = 0
tag = 0
count = 0
for i in range(2, 1001):
    for j in range(2, i):
        if i % j == 0:
            tag = 1
            break
        tag = 0
    if tag == 0:
        count += 1
        value += i
print(value / count)

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值