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

发布时间:2024年01月22日

题目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秒

以上就是“Python 循环结构的一些案例练习”的全部内容,希望对你有所帮助。
?
?关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

img

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

五、Python练习题

检查学习结果。

img

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

img

最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

文章来源:https://blog.csdn.net/Trb401012/article/details/135715181
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。