Python经典练习题(二)

文章目录

🍀题目一

古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

本题一出或许大家回想到鸡兔同笼问题,但是这题和那个没啥关联,这题的核心思想在于斐波那契数列

下面进行代码演示

python 复制代码
rabbits = [1, 1]

# 计算兔子总数的月数
months = 24  # 假设计算24个月的兔子总数,你可以根据需要调整月数

# 计算每个月的兔子总数
for i in range(2, months):
    new_rabbits = rabbits[i - 1] + rabbits[i - 2]  # 新生的兔子数等于前两个月的兔子总数之和
    rabbits.append(new_rabbits)

# 输出每个月的兔子总数
for i, total in enumerate(rabbits, start=1):
    print(f"第{i}个月的兔子总数为:{total}")

运行结果如下

这里我再进行说明一下,第一个月第二个月小兔子成长,第三个月小兔子长大了,可以下崽了,所以第三个月有两对,第四个月那个大兔子依旧可以下,所以是三对,第五个月大兔子依旧在下崽,但是它们第一批生的小兔子也可以下崽了,所+2变成了五队,接下来写在纸上,就会奇迹般的发现这好像和斐波那契数列这么像呢!


🍀第二题

判断101-200之间有多少个素数,并输出所有素数。

本题也是较为常见的经典题目,接下来我们采用两种解法

解法一:使用嵌套循环

这个方法使用两个嵌套循环来检查每个数字是否为素数。对于每个数字,它会检查从2到该数字本身之间是否有除了1和它自身以外的因子。如果没有其他因子,那么它就是素数。

python 复制代码
# 方法一:使用嵌套循环判断素数
prime_numbers = []  # 存储素数的列表

for num in range(101, 201):  # 遍历101到200之间的所有数字
    is_prime = True  # 假设当前数字是素数

    # 判断是否为素数
    for i in range(2, int(num**0.5) + 1):
        if num % i == 0:  # 如果有除1和自身以外的因子
            is_prime = False
            break

    if is_prime:
        prime_numbers.append(num)

# 输出所有素数
print("101到200之间的素数有以下", len(prime_numbers), "个:")
print(prime_numbers)

运行结果如下

解法二:使用函数封装判断素数的逻辑

这个方法将判断素数的逻辑封装为一个函数,然后通过循环调用这个函数来检查每个数字是否为素数。

这个方法其实和上个大差不差

python 复制代码
# 方法二:使用函数封装判断素数的逻辑
def is_prime(num):
    if num < 2:
        return False
    for i in range(2, int(num**0.5) + 1):
        if num % i == 0:
            return False
    return True

prime_numbers = []  # 存储素数的列表

for num in range(101, 201):  # 遍历101到200之间的所有数字
    if is_prime(num):
        prime_numbers.append(num)

# 输出所有素数
print("101到200之间的素数有以下", len(prime_numbers), "个:")
print(prime_numbers)

运行结果如下


🍀第三题

打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。

例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

本题较为简单

python 复制代码
for num in range(100, 1000):  # 遍历所有的三位数
    # 获取百位、十位和个位上的数字
    hundreds = num // 100
    tens = (num % 100) // 10
    ones = num % 10

    # 计算立方和
    sum_of_cubes = hundreds ** 3 + tens ** 3 + ones ** 3

    # 判断是否为水仙花数
    if sum_of_cubes == num:
        print(num)

运行结果如下


🍀第四题

题目:将一个正整数分解质因数。例如:输入90,打印出90=233*5。

本题主要是通过反复整除,循环找到质因数,其中外循环必须大于1,因为任何数都可以被1除

python 复制代码
def prime_factors(n):
    factors = []  # 存储质因数的列表
    divisor = 2  # 初始除数为2

    while n > 1:
        while n % divisor == 0:
            factors.append(divisor)  # 将当前除数加入质因数列表
            n //= divisor  # 更新n的值,除以当前除数

        divisor += 1  # 尝试下一个除数

    return factors

# 输入正整数
number = int(input("请输入一个正整数:"))

# 计算质因数
factors = prime_factors(number)

# 输出结果
if len(factors) == 0:
    print(f"{number}没有质因数,它本身就是一个质数。")
else:
    print(f"{number}的质因数分解为:{' * '.join(map(str, factors))}")

运行结果如下

🍀第五题

编写一个判断学生成绩的Python代码

本题主要是使用选择语句,但是注意input这里,输入的成绩可以是float,毕竟有99.5这种分数,所以要强制转换成float类型

python 复制代码
def calculate_grade(score):
    if 90 <= score <= 100:
        return 'A'
    elif 80 <= score < 90:
        return 'B'
    elif 70 <= score < 80:
        return 'C'
    elif 60 <= score < 70:
        return 'D'
    elif 0 <= score < 60:
        return 'F'
    else:
        return '无效分数'

# 输入学生分数
score = float(input("请输入学生的分数:"))

# 计算并输出等级
grade = calculate_grade(score)
print(f"学生的等级为:{grade}")

运行结果如下

挑战与创造都是很痛苦的,但是很充实。

相关推荐
VBA63374 分钟前
VBA之Word应用第三章第十一节:Document对象的事件
开发语言
wjs202413 分钟前
SOAP Header 元素
开发语言
电商数据girl28 分钟前
有哪些常用的自动化工具可以帮助处理电商API接口返回的异常数据?【知识分享】
大数据·分布式·爬虫·python·系统架构
CoooLuckly31 分钟前
numpy数据分析知识总结
python·numpy
无限远的弧光灯33 分钟前
c语言学习_函数递归
c语言·开发语言·学习
趣多多代言人40 分钟前
从零开始手写嵌入式实时操作系统
开发语言·arm开发·单片机·嵌入式硬件·面试·职场和发展·嵌入式
超龄超能程序猿1 小时前
(六)PS识别:源数据分析- 挖掘图像的 “元语言”技术实现
python·组合模式
胖大和尚1 小时前
C++项目学习计划
开发语言·c++·学习
开开心心_Every1 小时前
全能视频处理工具介绍说明
开发语言·人工智能·django·pdf·flask·c#·音视频
vvilkim1 小时前
Nuxt.js 全面测试指南:从单元测试到E2E测试
开发语言·javascript·ecmascript