Python3 【函数】:函数编写训练15列

news/2025/1/31 0:29:54 标签: python, 经验分享, 编程技巧, 案例学习

Python3 【函数】:函数编写训练15列

以下是 15 个 Python 函数使用的经典范例,每个范例都包含完整的程序代码、代码解释说明、测试案例以及程序执行结果。这些案例可供初学者模仿和学习,从而快速掌握函数的编写方法,为进阶学习打下坚实的基础。

温馨提示:这里有一个认知误区。千万不要认为以下函数太简单,函数编写的精髓就是:函数体要小,就是几行语句。这样就可以显著提高代码的重用效率。这就是为什么你看到的函数代码,总是很简单的根本原因。


1. 计算两个数的和

python">def add(a, b):
    return a + b

# 测试
result = add(3, 5)
print(result)  # 输出: 8

解释:

  • 定义一个函数 add,接受两个参数 ab,返回它们的和。
  • 测试案例: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) 返回 Trueis_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") 返回 Trueis_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 函数的经典范例,涵盖了常见的编程任务和算法。每个范例都附有详细的解释和测试案例,方便理解和实践。


http://www.niftyadmin.cn/n/5838182.html

相关文章

Node.js 的底层原理

Node.js 的底层原理 1. 事件驱动和非阻塞 I/O Node.js 基于 Chrome V8 引擎&#xff0c;使用 JavaScript 作为开发语言。它采用事件驱动和非阻塞 I/O 模型&#xff0c;使其轻量且高效。通过 libuv 库实现跨平台的异步 I/O&#xff0c;包括文件操作、网络请求等。 2. 单线程事…

games101-作业2

图形管线 Vertex Processing 对顶点进行加工&#xff0c;使其变换到屏幕空间坐标。 Triangle Processing 将加工后的顶点组装成三角形&#xff0c;用于下一步的光栅化。 void rst::rasterizer::draw(pos_buf_id pos_buffer, ind_buf_id ind_buffer, col_buf_id col_buffer, Pr…

SOME/IP--协议英文原文讲解4

前言 SOME/IP协议越来越多的用于汽车电子行业中&#xff0c;关于协议详细完全的中文资料却没有&#xff0c;所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块&#xff1a; 1. SOME/IP协议讲解 2. SOME/IP-SD协议讲解 3. python/C举例调试讲解 4.1.3 End…

冯诺依曼系统及操作系统

目录 一.冯诺依曼体系结构 二.操作系统 三.系统调用和库函数概念 一.冯诺依曼体系结构 我们常见的计算机&#xff0c;如笔记本。我们不常见的计算机&#xff0c;如服务器&#xff0c;大部分都遵守冯诺依曼体系 截至目前&#xff0c;我们所认识的计算机&#xff0c;都是由一…

clean code阅读笔记——如何命名?

命名的原则 1. “小处诚实非小事“ 有个词叫做”以小见大“。以建筑作喻&#xff0c;宏大建筑中最细小的部分&#xff0c;比如关不紧的门、未铺平的地板&#xff0c;甚至时凌乱的桌面&#xff0c;都会将整个大局的魅力毁灭殆尽&#xff0c;这就是整洁代码之所系。 2. 有意义…

OpenCV图像显示imshow()函数——详解

OpenCV图像显示imshow()函数——详解 本文目录&#xff1a; 零、时光宝盒 一、OpenCV 图像显示使用imshow()函数语法 二、imshow()显示图片时发生图片显示不全的解决方法 解决办法&#xff08;1&#xff09; 解决办法&#xff08;2&#xff09; 总结 三、imshow()图像显…

【算法设计与分析】实验1:字符串匹配问题的算法设计与求解

目录 一、实验目的 二、实验环境 三、实验内容 四、核心代码 五、记录与处理 六、思考与总结 七、完整报告和成果文件提取链接 一、实验目的 给定一个文本&#xff0c;在该文本中查找并定位任意给定字符串。 1、深刻理解并掌握蛮力法的设计思想&#xff1b; 2、提高应用…

2024年除夕

多少年前的除夕&#xff0c;一如今天这样的除夕&#xff1b;多少年后的除夕&#xff0c;也一如多少年前的除夕。 无数个这样的除夕下午&#xff0c;我打开电脑&#xff0c;望着窗外安静的小区&#xff0c;车声渐渐稀疏的马路&#xff0c;想写下一些新的感受时&#xff0c;多少…