Python for 循环基础练习

#代码星辉·七月创作之星挑战赛#

目录

声明

练习

 1.求1-100间的所有奇数和

 2.求1-100间的所有奇数和,如果是5的倍数则不参与求和计算。

 3.找到所有水仙花数的平均数。(水仙花数是三位数, 每个数位上的数字的 3次幂之和等于它本身。)

4.在控制台上输出1000~2000之间不能被3整除的前20个数的平均值

5.一个自然数与3的和是5的倍数,与3的差是6的倍数,1000以内这样的自然数有几个?

6.在1000--5000之间的数,它被2除余1,被5除余3,被9除余1,其中最大的10个数字的平均数?

7.编程求一个四位自然数ABCD,它乘以A后变成DCBA(如:1234变为4321)

8.输入一个数计算该数的阶乘(5!=5*4*3*2*1,这是5的阶乘)

9.求四位数闰年的个数

10.求四位数中数值最大的闰年与数值最小闰年的差值

11.计算1-100之间所有能被3整除但是不能被5整除的所有数的平均数

12. 计算1-100之间所有能被3整除但是不能被5整除的最大的5个数的平均数

 13.最多输入10个位于10-50之间的整数,如果输入了30,则停止输入,计算输入的数字的平均数

14.打印9*9乘法表

15. 输入数字打印以下图形 输入3打印*********

16.输入一个数字,判断该数字是否是质数

17.求1000以内有几个质数

18. 求1000以内最大的10个质数的平均数


声明

        该练习答案为个人所写,仅使用分支语句和for循环语句,如果你有更好的写法,请遵从自己的写法,同时欢迎分享,此文章的答案仅供参考

开始之前简单了解一下 range()方法的使用:

        

练习

 1.求1-100间的所有奇数和
 

result = 0
for i in range(1,100):
    if i % 2 != 0:
        result += i
print(result)

 2.求1-100间的所有奇数和,如果是5的倍数则不参与求和计算。
 

result = 0
for i in range(1,100):
#判断是否是奇数
    if i % 2 != 0:
#判断是否是5的倍数
        if i % 5 != 0:
            result += i
print(result)

 3.找到所有水仙花数的平均数。(水仙花数是三位数, 每个数位上的数字的 3次幂之和等于它本身。)
 

a1 = 0
a2 = 0
a3 = 0
result = 0
count = 0

for num in range(100, 1000):
    # 求百位上的数
    a1 = num //100 % 10
    # 求十位上的数
    a2 = num // 10 % 10
    # 求个位上的数
    a3 = num % 10
    # 进行判断是否是水仙花数
    if a1 ** 3 + a2 ** 3 + a3 ** 3 == num:
        result += num
        count += 1
# 求平均值
average = result / count
print(f"所有水仙花数的平均数为:{average}")

4.在控制台上输出1000~2000之间不能被3整除的前20个数的平均值
 

count = 0
result = 0
for i in range(1000,2000):
    if i % 3 != 0:
        result += i
        count += 1
# 判断是否到第20个数
    if count >= 20:
        break
average = result / count
print(f"1000~2000之间不能被3整除的前20个数的平均值为:{average}")

5.一个自然数与3的和是5的倍数,与3的差是6的倍数,1000以内这样的自然数有几个?

count = 0
for i in range(1000):
    if (i + 3) % 5 == 0 and (i - 3) % 6 == 0:
        count += 1
print(f"有{count}个")

6.在1000--5000之间的数,它被2除余1,被5除余3,被9除余1,其中最大的10个数字的平均数?

count = 0
result = 0
# 当 step 为 负数时可以从大到小遍历
for i in range(5000, 1000, -1):
    if i % 2 == 1 and i % 5 == 3 and i % 9 == 1:
        print(i)
        result += i
        count += 1
# 找出10个最大的平均数
    if count == 10:
        break
average = result / count
print(f"最大的10个数字的平均数为:{average}")

7.编程求一个四位自然数ABCD,它乘以A后变成DCBA(如:1234变为4321)
 

count = 0
for num in range(1000,10000):
    a0 = num // 1000
    a1 = num // 100 % 10
    a2 = num // 10 % 10
    a3 = num % 10
# 判断  逆序后的数 == 原数 * 千位上的数
    if a3 * 1000 + a2 * 100 + a1 * 10 + a0 == num * a0:
        print(num)
        count += 1
# 这里是只找一个,如果想找多个就更改count == 的数字
    if count == 1:
        break

8.输入一个数计算该数的阶乘
(5!=5*4*3*2*1,这是5的阶乘)
 

num = int(input("请输入一个数"))
result = 1
for i in range(1, num+1):
    if num == 0:
# 特殊情况 0的阶乘是1
        print(f"1")
    else:
        result *= i
print(f"该数的阶乘为:{result}")

9.求四位数闰年的个数
 

count = 0
for i in range(1000, 10000):
    if i % 4 == 0 and i % 100 != 0 or i % 400 == 0:
# 是闰年count就+1
        count +=1
print(f"四位数闰年的个数:{count}")

10.求四位数中数值最大的闰年与数值最小闰年的差值

max_ly = 0
min_ly = 0
count = 0
count1 = 0
# 找出最大年份的闰年
for i in range(10000, 1000, -1):
    if i % 4 == 0 and i % 100 != 0 or i % 400 == 0:
        max_ly = i
    if count == 1:
# 当count == 1时跳出循环
        break
# 找出最小年份的闰年
for i in range(1000, 10000):
    if i % 4 == 0 and i % 100 != 0 or i % 400 == 0:
        min_ly = i
    if count1 == 1:
        break
value = max_ly - min_ly
print(f"四位数中数值最大的闰年与数值最小闰年的差值:{value}")

11.计算1-100之间所有能被3整除但是不能被5整除的所有数的平均数

count = 0
result = 0
for i in range(1, 100):
    if i % 3 == 0 and i % 5 != 0:
        result += i
        count += 1
average = result / count
print(f"1-100之间所有能被3整除但是不能被5整除的所有数的平均数:{average}")

12. 计算1-100之间所有能被3整除但是不能被5整除的最大的5个数的平均数

count = 0
result = 0
for i in range(100, 1, -1):
    if i % 3 == 0 and i % 5 != 0:
        result += i
        count += 1
    if count == 5:
        break
average = result / count
print(f"1-100之间所有能被3整除但是不能被5整除的最大的5个数的平均数:{average}")

 13.最多输入10个位于10-50之间的整数,如果输入了30,则停止输入,计算输入的数字的平均数

count = 0
result = 0
for i in range(1, 10):
    num = int(input("请输入10 - 50之间的数字"))
# 判断输入的内容是否符合题目要求
    if num == 30 or 10 < num or num > 50:
        break
    result += num
    count += 1
if result == 0 or count == 0:
    print(f"请输入10 - 50之间的数字")
else:
    average = result / count
    print(f"输入的数字的平均数:{average}")

14.打印9*9乘法表

for i in range(1, 10):
    for j in range(i, 10):
        print(f"{i}*{j}=", i * j, "  ", sep = "", end = "",)
    print(end="\n")

15. 输入数字打印以下图形
 输入3打印
*
***
*****

num = int(input("想打印几层就输入多少"))
for i in range(1, num + 1):
    for j in range(i * 2 -1):
        print(f"*", end = "")
    print()

16.输入一个数字,判断该数字是否是质数

num = int(input("输入一个数字"))
x = True
for i in range(2, num):
    if num % i == 0:
        x = False
if x:
    print("是质数")
else:
    print("不是质数")

17.求1000以内有几个质数

count = 0
x = 0
for i in range(2,1000):
    for j in range(1, i+1):
        if i % j == 0:
            x += 1
    if x == 2:
        count += 1
    x = 0
print(f"1000以内有{count}个质数")

18. 求1000以内最大的10个质数的平均数

result = 0
count = 0
x = 0
for i in range(1000, 2, -1):
    for j in range(1, i+1):
        if i % j == 0:
            x += 1
    if x == 2:
        count += 1
        result += i
    x = 0
    if count == 10 :
        break
average = result / count
print(f"1000以内最大的10个质数的平均数:{average}")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值