Python3 【函数】:函数编写训练15列
以下是 15 个 Python 函数使用的经典范例,每个范例都包含完整的程序代码、代码解释说明、测试案例以及程序执行结果。这些案例可供初学者模仿和学习,从而快速掌握函数的编写方法,为进阶学习打下坚实的基础。
温馨提示:这里有一个认知误区。千万不要认为以下函数太简单,函数编写的精髓就是:函数体要小,就是几行语句。这样就可以显著提高代码的重用效率。这就是为什么你看到的函数代码,总是很简单的根本原因。
1. 计算两个数的和
python">def add(a, b):
return a + b
# 测试
result = add(3, 5)
print(result) # 输出: 8
解释:
- 定义一个函数
add
,接受两个参数a
和b
,返回它们的和。 - 测试案例:
add(3, 5)
,结果为8
。
2. 计算阶乘
python">def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n - 1)
# 测试
result = factorial(5)
print(result) # 输出: 120
解释:
- 使用递归计算阶乘。
- 测试案例:
factorial(5)
,结果为120
。
3. 判断一个数是否为素数
python">def is_prime(n):
if n <= 1:
return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
return True
# 测试
print(is_prime(29)) # 输出: True
print(is_prime(30)) # 输出: False
解释:
- 判断一个数是否为素数。
- 测试案例:
is_prime(29)
返回True
,is_prime(30)
返回False
。
4. 反转字符串
python">def reverse_string(s):
return s[::-1]
# 测试
result = reverse_string("hello")
print(result) # 输出: olleh
解释:
- 使用切片操作反转字符串。
- 测试案例:
reverse_string("hello")
,结果为olleh
。
5. 查找列表中的最大值
python">def find_max(lst):
return max(lst)
# 测试
result = find_max([3, 6, 2, 8, 1])
print(result) # 输出: 8
解释:
- 使用内置函数
max
查找列表中的最大值。 - 测试案例:
find_max([3, 6, 2, 8, 1])
,结果为8
。
6. 计算列表中所有元素的平均值
python">def average(lst):
return sum(lst) / len(lst)
# 测试
result = average([1, 2, 3, 4, 5])
print(result) # 输出: 3.0
解释:
- 计算列表中所有元素的平均值。
- 测试案例:
average([1, 2, 3, 4, 5])
,结果为3.0
。
7. 合并两个字典
python">def merge_dicts(d1, d2):
return {**d1, **d2}
# 测试
dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}
result = merge_dicts(dict1, dict2)
print(result) # 输出: {'a': 1, 'b': 2, 'c': 3, 'd': 4}
解释:
- 使用
**
解包操作符合并两个字典。 - 测试案例:
merge_dicts(dict1, dict2)
,结果为{'a': 1, 'b': 2, 'c': 3, 'd': 4}
。
8. 计算斐波那契数列
python">def fibonacci(n):
if n <= 1:
return n
else:
return fibonacci(n - 1) + fibonacci(n - 2)
# 测试
result = fibonacci(6)
print(result) # 输出: 8
解释:
- 使用递归计算斐波那契数列的第
n
项。 - 测试案例:
fibonacci(6)
,结果为8
。
9. 检查字符串是否为回文
python">def is_palindrome(s):
return s == s[::-1]
# 测试
print(is_palindrome("madam")) # 输出: True
print(is_palindrome("hello")) # 输出: False
解释:
- 判断字符串是否与其反转字符串相等。
- 测试案例:
is_palindrome("madam")
返回True
,is_palindrome("hello")
返回False
。
10. 计算两个数的最大公约数(GCD)
python">def gcd(a, b):
while b:
a, b = b, a % b
return a
# 测试
result = gcd(48, 18)
print(result) # 输出: 6
解释:
- 使用欧几里得算法计算两个数的最大公约数。
- 测试案例:
gcd(48, 18)
,结果为6
。
11. 将列表中的元素去重
python">def remove_duplicates(lst):
return list(set(lst))
# 测试
result = remove_duplicates([1, 2, 2, 3, 4, 4, 5])
print(result) # 输出: [1, 2, 3, 4, 5]
解释:
- 使用
set
去重,然后转换回列表。 - 测试案例:
remove_duplicates([1, 2, 2, 3, 4, 4, 5])
,结果为[1, 2, 3, 4, 5]
。
12. 将字符串转换为整数
python">def str_to_int(s):
return int(s)
# 测试
result = str_to_int("123")
print(result) # 输出: 123
解释:
- 使用
int()
函数将字符串转换为整数。 - 测试案例:
str_to_int("123")
,结果为123
。
13. 计算列表中元素的平方
python">def square_list(lst):
return [x**2 for x in lst]
# 测试
result = square_list([1, 2, 3, 4, 5])
print(result) # 输出: [1, 4, 9, 16, 25]
解释:
- 使用列表推导式计算列表中每个元素的平方。
- 测试案例:
square_list([1, 2, 3, 4, 5])
,结果为[1, 4, 9, 16, 25]
。
14. 计算字符串中每个字符的出现次数
python">def count_characters(s):
return {char: s.count(char) for char in set(s)}
# 测试
result = count_characters("hello")
print(result) # 输出: {'h': 1, 'e': 1, 'l': 2, 'o': 1}
解释:
- 使用字典推导式计算字符串中每个字符的出现次数。
- 测试案例:
count_characters("hello")
,结果为{'h': 1, 'e': 1, 'l': 2, 'o': 1}
。
15. 将列表中的元素按升序排序
python">def sort_list(lst):
return sorted(lst)
# 测试
result = sort_list([3, 1, 4, 1, 5, 9, 2])
print(result) # 输出: [1, 1, 2, 3, 4, 5, 9]
解释:
- 使用
sorted()
函数对列表进行升序排序。 - 测试案例:
sort_list([3, 1, 4, 1, 5, 9, 2])
,结果为[1, 1, 2, 3, 4, 5, 9]
。
以上是 15 个 Python 函数的经典范例,涵盖了常见的编程任务和算法。每个范例都附有详细的解释和测试案例,方便理解和实践。