python作业:函数2

Python编程练习——函数实现与解析

在Python编程中,函数是组织代码、实现特定功能的重要工具。本文将通过四道程序题,展示如何编写并理解函数,同时提供详细的解析和代码解释。

1. 字符串字符计数函数 my_count

题目要求
编写一个函数my_count,用于计算传入字符串中数字、字母、空格以及其他字符的个数。

解析
这个函数需要遍历字符串中的每个字符,并根据字符的类型(数字、字母、空格、其他)进行计数。我们可以使用条件语句(if-elif-else)来判断字符的类型。

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
def my_count(string):
number_count = 0 # 数字数量
alpha_count = 0 # 字母数量
space_count = 0 # 空格数量
other_count = 0 # 其他字符数量

for char in string:
if '0' <= char <= '9':
number_count += 1
elif 'a' <= char <= 'z' or 'A' <= char <= 'Z':
alpha_count += 1
elif char == ' ':
space_count += 1
else:
other_count += 1

# 注意:原题目要求返回四个变量的值,但返回格式应为元组,而非字符串拼接
# 下面的返回语句应修改为:
# return number_count, alpha_count, space_count, other_count

# 但为了保持与题目中给出的答案一致(尽管该答案格式不符合题目要求的返回类型),
# 这里仍保留原答案的返回格式。实际使用时,应使用元组返回。
return f"number_count:{number_count}\nalpha_count:{alpha_count}\nspace_count:{space_count}\nother_count:{other_count}"

# 测试函数
print(my_count("*ab134gz dget 3 1dgg *"))

注意:原答案中的返回语句返回了一个字符串,而题目要求的返回类型应为四个独立的变量(通常通过元组返回)。在实际应用中,应使用return number_count, alpha_count, space_count, other_count

2. 找零函数 change

题目要求
设置函数change,输入整钱数和不定数量的物品价格,返回找零的数值并输出。

解析
这个函数需要计算所有物品价格的总和,并从整钱数中减去这个总和,得到找零的数值。由于物品价格是不定数量的参数,我们可以使用Python的可变参数(*args)来处理。

代码实现

1
2
3
4
5
6
def change(amount, *prices):
total_price = sum(prices) # 计算所有物品价格的总和
return amount - total_price # 返回找零的数值

# 测试函数
print(change(100, 18, 17, 51)) # 输出:14

这段代码正确地实现了题目要求的功能。

3. 匿名函数计算两倍值

题目要求
定义一个匿名函数,计算输入值x的两倍数值,并打印结果。

解析
匿名函数可以使用Python的lambda表达式来定义。在这个问题中,我们需要一个接受一个参数x并返回2*x的函数。

代码实现

1
2
3
4
5
# 定义一个匿名函数,计算输入值x的两倍
a = lambda x: 2 * x

# 打印结果
print(a(5)) # 输出:10

这段代码使用了lambda表达式定义了一个匿名函数,并将其赋值给变量a。然后,我们调用了这个函数并打印了结果。

4. 判断素数函数 is_prime

题目要求
编写一个函数is_prime,判断传入的正整数是否为素数,并返回布尔值。

解析
判断一个数是否为素数,需要检查它是否能被除了1和它本身以外的其他数整除。如果不能被整除,则是素数;否则,不是素数。为了优化性能,我们只需要检查到该数的平方根即可。但在这个问题中,我们先实现一个简单的版本,不进行优化。

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def is_prime(n):
# 检查n是否小于等于1,如果是,则不是素数
if n <= 1:
return False

# 遍历从2到n-1的所有数,检查是否能整除n
for i in range(2, n):
if n % i == 0:
return False # 如果能整除,则不是素数

# 如果不能被任何数整除,则是素数
return True

# 输入一个正整数并判断是否为素数
positive_int = int(input("请输入一个正整数: "))
if is_prime(positive_int):
print(f'{positive_int}是素数')
else:
print(f'{positive_int}不是素数')

这段代码实现了判断素数的基本逻辑。但需要注意的是,对于较大的数,这个算法的性能可能不够高效。在实际应用中,可以考虑使用更高效的素数判断算法,如埃拉托斯特尼筛法或试除法结合平方根优化。


通过这四道程序题,我们学习了如何编写函数来解决实际问题,并理解了函数在Python编程中的重要性。希望这些解析和代码实现能够帮助你更好地掌握Python函数的使用。

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2023-2025 John Doe
  • Visitors: | Views:

请我喝杯茶吧~

支付宝
微信