文章目录
- 🍀第一题
- 🍀第二题
- 🍀第三题
🍀第一题
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
本题需要我们掌握的知识点在于,判断字符串,是数字还是字母还是啥的,当然在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 += 1elif char.isspace(): # 判断是否为空格space_count += 1elif char.isdigit(): # 判断是否为数字digit_count += 1else:other_count += 1# 输出统计结果
print(f"英文字母个数:{letter_count}")
print(f"空格个数:{space_count}")
print(f"数字个数:{digit_count}")
print(f"其他字符个数:{other_count}")
运行结果如下
🍀第二题
找出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)
运行结果如下
我们可以一步一步分析上述代码
我们首先定义了一个名为 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 += heightheight /= 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次落地为止。
挑战与创造都是很痛苦的,但是很充实。