Python经典练习题(三)

文章目录

  • 第一题
  • 第二题
  • 第三题

第一题

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

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

判断函数 描述
isalnum() 判断是否为字母或数字(字母数字组合)
isalpha() 判断是否为字母
isdigit() 判断是否为数字
islower() 判断是否为小写字母
isupper() 判断是否为大写字母
isspace() 判断是否为空白字符(空格、制表符、换行符等)
isnumeric() 判断是否为数字字符(包括各种数字字符,如Unicode数字字符)
isdecimal() 判断是否为十进制数字字符
isidentifier() 判断是否为合法的标识符(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}")

运行结果如下Python经典练习题(三)_第1张图片


第二题

找出1000以内的所有完数
完整代码如下

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)

运行结果如下
Python经典练习题(三)_第2张图片
我们可以一步一步分析上述代码

我们首先定义了一个名为 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次反弹多高?

# 初始高度
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 } 米")

运行结果如下
Python经典练习题(三)_第3张图片

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

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

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

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

在这里插入图片描述

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

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

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


Python经典练习题(三)_第4张图片

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

你可能感兴趣的:(Python经典练习题,python,开发语言)