Python经典练习题(三)

文章目录

🍀第一题

输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

本题需要我们掌握的知识点在于,判断字符串,是数字还是字母还是啥的,当然在Python内置中几乎都可以找到我们需要的
下表我将介绍一些常用的判断函数

判断函数 描述
isalnum() 判断是否为字母或数字(字母数字组合)
isalpha() 判断是否为字母
isdigit() 判断是否为数字
islower() 判断是否为小写字母
isupper() 判断是否为大写字母
isspace() 判断是否为空白字符(空格、制表符、换行符等)
isnumeric() 判断是否为数字字符(包括各种数字字符,如Unicode数字字符)
isdecimal() 判断是否为十进制数字字符
isidentifier() 判断是否为合法的标识符(Python标识符规则,如变量名检查)
python 复制代码
# 输入一行字符
input_string = input("请输入一行字符:")

# 初始化统计变量
letter_count = 0
space_count = 0
digit_count = 0
other_count = 0

# 遍历输入字符串中的每个字符
for char in input_string:
    if char.isalpha():  # 判断是否为英文字母
        letter_count += 1
    elif char.isspace():  # 判断是否为空格
        space_count += 1
    elif char.isdigit():  # 判断是否为数字
        digit_count += 1
    else:
        other_count += 1

# 输出统计结果
print(f"英文字母个数:{letter_count}")
print(f"空格个数:{space_count}")
print(f"数字个数:{digit_count}")
print(f"其他字符个数:{other_count}")

运行结果如下


🍀第二题

找出1000以内的所有完数

完整代码如下

python 复制代码
def find_perfect_numbers(limit):
    perfect_numbers = []  # 存储完数的列表

    for num in range(2, limit + 1):
        factors = [1]  # 初始化因子列表,并包括1作为第一个因子

        for i in range(2, num // 2 + 1):
            if num % i == 0:
                factors.append(i)  # 将因子添加到列表

        # 检查是否是完数
        if sum(factors) == num:
            perfect_numbers.append(num)

    return perfect_numbers

# 找出1000以内的所有完数
limit = 1000
perfect_numbers = find_perfect_numbers(limit)

# 输出结果
print(f"1000以内的完数有以下{len(perfect_numbers)}个:")
print(perfect_numbers)

运行结果如下

我们可以一步一步分析上述代码

我们首先定义了一个名为 find_perfect_numbers 的函数,该函数接受一个参数 limit,用于指定查找完数的上限。同时,我们初始化一个空列表 perfect_numbers 用于存储找到的完数。
接下来,我们使用一个 for 循环遍历从2到 limit(包括 limit)之间的所有整数。因为1不被视为完数,所以我们从2开始。
对于每个数字 num,我们初始化一个列表 factors,并将1添加为第一个因子。1 是每个正整数的因子,所以我们将它包含在列表中。
然后,我们使用另一个 for 循环遍历从2到 num 的一半(包括 num 除以2得到的整数部分)之间的数字。这是因为除了1以外的因子不可能大于 num 的一半。例如,对于数字6,除了1之外的因子最大不可能大于3。
在内部循环中,我们检查 num 是否可以被 i 整除,如果可以,就将 i 添加到 factors 列表中,表示 i 是 num 的一个因子。

最后就是判断是不是相等了,然后函数调用了


🍀第三题

一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

python 复制代码
# 初始高度
height = 100  # 单位:米

# 初始速度(向上)为0
velocity = 0

# 重力加速度
gravity = 9.8  # 单位:m/s²

# 落地和反弹的次数
n = 10

# 初始化总距离
total_distance = 0

# 计算第n次落地时的高度和总距离
for i in range(n):
    # 落地时,更新总距离和高度
    total_distance += height
    height /= 2

    # 计算反弹时的速度
    velocity = (velocity + gravity)**0.5

    # 计算反弹的高度
    height = height + velocity**2 / (2 * gravity)

# 输出结果
print(f"第{ n }次落地时,共经过 { total_distance } 米")
print(f"第{ n }次反弹的高度为 { height } 米")

运行结果如下

自由落体运动的位移公式:这个公式用于计算物体在自由落体运动中的位移。对于球从初始高度h自由落下的情况,位移d可以通过以下公式计算:

其中,d是位移,g是重力加速度(9.8 m/s²),t是时间。

对于球的反弹运动,我们在计算高度时使用了这个公式。

速度的变化公式:在物理中,速度的变化与时间和加速度有关。我们使用以下公式来计算速度的变化:

其中,vf​是最终速度,vi​是初始速度,a是加速度(重力加速度),t是时间。

这个公式在计算每次反弹后速度的变化时使用。

在代码中,我们使用这些物理公式来模拟球的自由落体和反弹过程。首先,我们计算每次落地后的位移和速度,然后将其用于计算下次反弹的高度。这样,我们可以迭代地计算球的运动状态,直到第10次落地为止。


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

相关推荐
心中有国也有家2 小时前
GE图引擎深度解析——CANN的计算图优化与执行引擎
人工智能·pytorch·python·学习·numpy
卷毛的技术笔记3 小时前
告别硬编码!Spring AI Alibaba 实现 AI Agent 智能工具调用(Tool Calling)
java·人工智能·后端·python·spring·ai编程
编程大师哥3 小时前
匿名函数 lambda + 高阶函数
java·python·算法
isyangli_blog3 小时前
OpenDayLight (Carbon 版本) 启动与组件安装
开发语言·php
vb2008113 小时前
FastAPI APIRouter
开发语言·python
Benszen3 小时前
KVM虚拟化解决方案
开发语言·perl
会编程的土豆3 小时前
Go 语言反射(Reflection)详解
开发语言·后端·golang
東雪木3 小时前
多线程与并发编程 专属复习笔记
java·开发语言·笔记·java面试
adrninistrat0r4 小时前
Java调用链MCP分析工具
java·python·ai编程
杨充4 小时前
1.3 浮点型数据设计灵魂
开发语言·python·算法