Python 循环结构的一些案例练习

题目1:找出100-999之间的水仙花数(各位数字的立方和刚好等于这个数本身)

如:153 = 1^3 + 5^3 + 3^3
算法分析:
123 // 100 = 1  ---> 23   获取百位数
123 // 10 = 12 % 10 = 2 --> 获取十位数(法一)
123 % 100 = 23 // 10 = 2 --> 获取十位数(法二)
123 % 10 = 3 --> 获取个位数

实现:

for num in range(100,1000):
    bw = num // 100
    sw = num // 10 %10
    gw = num % 10
    if bw ** 3 + sw ** 3 + gw ** 3 == num:
        print(num)

输出:

153
370
371
407

题目2:输入两个非负整数m和n(m>=n),计算C(m, n)的值。

算法分析:
A(m, n) = m! / (m - n)!  ---> 排列 ---> permutation
C(m, n) = m! / n! / (m - n)! ---> 组合 ---> combination

如:C(5, 3) = 5! / 3! / 2! = 10

实现:

m = int(input('m = '))
n = int(input('n = '))

fm = 1
for i in range(2, m + 1):
    fm *= i

fn = 1
for i in range(2, n + 1):
    fn *= i

fk = 1
for i in range(2, m - n + 1):
    fk *= i

print(fm // fn // fk)

事实上,求N的阶乘,我们可以使用Python中的第三方函数库math中的factorial()方法求解:

from math import factorial as fac  # 此处从math模块导入factorial函数并创建别名 as ---> alias --->别名

m = int(input('m = '))
n = int(input('n = '))

print(fac(m) // fac(n) // fac(m - n))  # 调用函数可以直接利用别名

题目3:输入一个正整数,判断它是不是质数(只能被1和自身整除的数)

实现:

a = int(input('请输入一个正整数:'))
is_prime = True

for i in range(2, a):
    if a % i == 0:
        is_prime = False
        break

if a > 1 and is_prime:
    print(f'{a}是质数')
else:
    print(f'{a}不是质数')

这里使用了个break语句,只要符合条件立马跳出循环。

题目4:嵌套循环的使用:输出乘法口诀表

实现:

for i in range(1, 10):
    for j in range(1, i + 1):
        print(f'{i}×{j}={i * j}', end='\t')
    print()  # 换行,不需要加/n参数,默认换行

输出:

1×1=1	
2×1=2	2×2=4	
3×1=3	3×2=6	3×3=9	
4×1=4	4×2=8	4×3=12	4×4=16	
5×1=5	5×2=10	5×3=15	5×4=20	5×5=25	
6×1=6	6×2=12	6×3=18	6×4=24	6×5=30	6×6=36	
7×1=7	7×2=14	7×3=21	7×4=28	7×5=35	7×6=42	7×7=49	
8×1=8	8×2=16	8×3=24	8×4=32	8×5=40	8×6=48	8×7=56	8×8=64	
9×1=9	9×2=18	9×3=27	9×4=36	9×5=45	9×6=54	9×7=63	9×8=72	9×9=81

题目5:输入三角形三条边的长度,如果能构成三角形就计算周长和面积,如果不能构成三角形提示用户重新输入,直到正确。

实现:

import math

while True:
    a = float(input('a = '))
    b = float(input('b = '))
    c = float(input('c = '))
    if a + b > c and b + c > a and a + c > b:
        perimeter = a + b + c
        half = perimeter / 2
        # 海伦公式
        # area = (half * (half - a) * (half - b) * (half - c)) ** 0.5
        # 调用sqrt函数求平方根
        area = math.sqrt(half * (half - a) * (half - b) * (half - c))
        print(f'三角形的周长:{perimeter}')
        print(f'三角形的面积:{area}')
        break
    else:
        print('不能构成三角形,请重新输入!')

题目6:找出1-10000之间的完美数,完美数的意思是指除自身外所有因子的和等于这个数,如:6=1+2+3

实现:

import time

start = time.time()

for num in range(2, 10000):
    total = 1

    for i in range(2, int(num ** 0.5) + 1):
        if num % i == 0:
            total += i
            if i != num // i:
                total += num // i
    if num == total:
        print(num)
end = time.time()

print(f'执行时间:{end - start:.3f}秒')

输出:

6
28
496
8128
执行时间:0.046秒
  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
教学目标: 1. 了解循环结构的概念和作用; 2. 掌握 while 循环和 for 循环的使用方法; 3. 能够熟练运用循环结构完成头歌编写。 教学重点: 1. while 循环的使用方法; 2. for 循环的使用方法; 3. 头歌的编写。 教学难点: 1. 循环结构的灵活应用; 2. 头歌的编写。 教学过程: 一、导入新知识 老师可以先通过一个小游戏的形式引出循环结构的概念和作用。例如,让学生依次报数,当数到某个数字时,就要做出一定的动作,这时候就可以用到循环结构,让这个动作一直执行,直到游戏结束。 二、讲解循环结构 1. while 循环:当满足条件时,就一直执行循环体中的语句,直到不满足条件时才结束循环。 2. for 循环:按照指定次数执行循环体中的语句,可以用来遍历序列或集合。 三、演示循环结构的使用方法 1. while 循环: ```python # 计算 1 到 100 的和 sum = 0 i = 1 while i <= 100: sum += i i += 1 print(sum) ``` 2. for 循环: ```python # 遍历列表 fruits = ['apple', 'banana', 'orange'] for fruit in fruits: print(fruit) # 遍历数字序列 for i in range(1, 10): print(i) ``` 四、讲解头歌的编写 1. 头歌是通过循环结构实现的,可以用 while 循环或 for 循环来完成。 2. 循环体中的语句可以是打印歌词,也可以是播放音乐。 3. 头歌的编写要注意节奏和韵律,可以参考已有的头歌模板或自己创作。 五、让学生练习编写头歌 老师可以给学生一些头歌的模板,让他们根据自己的喜好和创意进行填词或改编。也可以让他们自己编写一首头歌,并在班级中进行分享和演唱。 六、总结 通过本节课的学习,学生们掌握了循环结构的使用方法,熟练掌握了头歌的编写技巧。在实践中,他们也锻炼了自己的创意和表达能力,提高了编程思维和艺术素养。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不在同一频道上的呆子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值