个人营销网站,网站建设常识,西瓜编程网站怎么做,数据库对网站开发的作用文章目录 3.1 函数#xff1a;编写你的代码乐曲3.1.1 什么是函数#xff1f;3.1.2 如何定义函数#xff1f;3.1.3 如何调用函数#xff1f;3.1.4 函数的返回值3.1.5 函数的文档字符串3.1.6 默认参数值3.1.7 可变数量的参数3.1.8 局部变量和全局变量3.1.9 递归函数 3.2 模块… 文章目录 3.1 函数编写你的代码乐曲3.1.1 什么是函数3.1.2 如何定义函数3.1.3 如何调用函数3.1.4 函数的返回值3.1.5 函数的文档字符串3.1.6 默认参数值3.1.7 可变数量的参数3.1.8 局部变量和全局变量3.1.9 递归函数 3.2 模块扩展你的工具箱3.2.1 什么是模块3.2.2 如何导入模块3.2.3 使用模块中的函数和变量3.2.4 给模块起别名3.2.5 导入模块中的特定函数或变量3.2.6 查看模块中的所有函数和变量3.2.7 创建自己的模块 3.3 错误处理找到音乐中的音符3.3.1 什么是错误处理3.3.2 异常类型3.3.3 使用 try 和 except3.3.4 多个 except 块3.3.5 使用 else 和 finally3.3.6 抛出自定义异常3.3.7 异常处理最佳实践 当然让我们深入研究第 3 章的 3.1 节“函数编写你的代码乐曲”。函数是编程的基本构建块之一它们允许你组织代码、提高可重用性并让你的程序更加模块化。
3.1 函数编写你的代码乐曲
3.1.1 什么是函数
在编程中函数是一组用于执行特定任务或操作的指令的集合。你可以将函数看作是一个黑匣子你向其中输入一些数据它会执行一些操作并返回结果。这使得代码更加有组织、易于维护并且可以重复使用。
经常是这样的有些功能要么是你已经写好了别人直接就能通过调用函数名去使用要么是别人写好了你去调用。
3.1.2 如何定义函数
在 Python 中你可以使用def关键字来定义函数后跟函数的名称、参数列表和冒号。函数的主体是缩进的代码块用于执行特定的任务。
示例
# 定义一个 greet() 函数
def greet(name):一个简单的问候函数print(f你好{name})这个函数叫做greet它接受一个参数name然后打印出问候语。
3.1.3 如何调用函数
定义函数只是第一步要让函数真正发挥作用你需要调用它。调用函数意味着执行函数内的代码并传递特定的参数如果有的话。
示例
# 调用函数并传入了参数
greet(Alice)这个示例中我们调用了greet函数并传递了参数Alice。
3.1.4 函数的返回值
函数可以返回一个值这个值可以在函数调用后被使用。使用return语句来指定函数的返回值。
示例
def add(a, b):将两个数字相加并返回结果result a b# 将处理后的结果进行返回return result这个函数接受两个参数a和b将它们相加然后返回结果。
3.1.5 函数的文档字符串
良好的文档对于理解函数的用途非常重要。你可以在函数内部使用文档字符串docstring来描述函数的作用、参数和返回值。
也就是一对 符号将需要写入文档的内容包裹起来即可。
示例
def add(a, b):将两个数字相加并返回结果Args:a (int): 第一个数字b (int): 第二个数字Returns:int: 相加后的结果result a breturn result文档字符串可以帮助其他开发者理解你的函数也可以在编程中作为参考文档。
3.1.6 默认参数值
Python 允许你为函数的参数提供默认值这意味着如果调用函数时没有提供参数值将使用默认值。
示例
# 给 name 设置默认值
def greet(name世界):一个带有默认参数的问候函数print(f你好{name})在这个示例中如果调用greet()而不提供参数它将默认使用世界作为名字。
3.1.7 可变数量的参数
有时你不确定函数将接受多少个参数。Python 允许你使用 *args 和 **kwargs 来处理可变数量的参数。
示例
# 在 args 前面加上一个 * 号代表参数可变
def multiply(*args):将所有参数相乘并返回结果result 1for num in args:result * numreturn result这个函数接受任意数量的参数并将它们相乘。
3.1.8 局部变量和全局变量
函数内部定义的变量称为局部变量它们只在函数内部可见。全局变量是在函数外部定义的可以在整个程序中访问。
示例
global_var 10 # 全局变量def my_function():local_var 5 # 局部变量print(global_var) # 可以访问全局变量print(local_var) # 可以访问局部变量my_function()
print(global_var) # 在函数外部也可以访问全局变量这个示例中global_var 是全局变量而 local_var 是函数内的局部变量。
3.1.9 递归函数
递归函数是调用自身的函数。它们通常用于解决递归问题如计算阶乘或斐波那契数列。
怎么理解呢就好比你去跑步你如果能持续跑的话身体肯定是越来越强的。
在这个过程中第二天去跑步的身体是在第一天已经跑完步变得更强的身体的基础上去进行的这就是递归了今天的自己调用了昨天的自己继续跑步 —— 是不是很好理解哈哈哈
示例
def factorial(n):计算阶乘的递归函数if n 0:return 1else:return n * factorial(n - 1)这个函数计算阶乘其中使用了递归调用。
这就是关于函数的详细解释。函数是编程的基础掌握好它们将使你能够更有效地编写代码。通过实践和编写自己的函数你将成为一个更有经验的 Python 编程者。继续前进编写你自己的代码乐曲 当然让我们深入研究第3章的3.2节“模块扩展你的工具箱”。模块是Python编程中的重要概念它们允许你组织和重用代码同时还可以让你访问Python的丰富功能库。
3.2 模块扩展你的工具箱
3.2.1 什么是模块
模块是包含 Python 代码的文件可以包括函数、变量和类等。Python 标准库中有许多内置模块同时你也可以创建自己的模块来组织代码。
简单理解就是很多别人已经实现好了的复杂功能你直接拿来就能用。比如说数学中很多复杂公式的实现不需要自己来实现只需要传入对应的参数就可以获得自己想要的结果。
3.2.2 如何导入模块
要使用模块中的功能你需要首先导入它。使用 import 关键字后跟模块的名称即可。
示例
import math # 导入数学模块现在你可以使用math模块中的数学函数和常量。
3.2.3 使用模块中的函数和变量
一旦导入了模块你可以使用点号 . 来访问模块中的函数和变量。
示例
import mathresult math.sqrt(25) # 使用math模块中的sqrt函数计算平方根3.2.4 给模块起别名
你可以给导入的模块起一个别名以便更方便地使用它。
示例
import math as m # 给math模块起别名为mresult m.sqrt(25) # 使用别名m来访问模块这在模块名称很长或容易混淆时特别有用。
3.2.5 导入模块中的特定函数或变量
如果你只需要模块中的特定函数或变量而不是整个模块你可以使用 from 关键字来导入它们。
示例
from math import sqrt # 仅导入math模块中的sqrt函数result sqrt(25) # 直接使用sqrt函数无需使用模块名称这可以减少名称冲突和提高代码的可读性。
3.2.6 查看模块中的所有函数和变量
你可以使用 dir() 函数来查看模块中的所有函数和变量列表。
dir 其实就是“目录”的意思。
示例
import mathfunctions_and_variables dir(math) # 获取math模块中的所有函数和变量列表这将返回一个包含模块中所有名称的列表。
3.2.7 创建自己的模块
要创建自己的模块只需创建一个包含 Python 代码的 .py 文件并在其他地方导入它。这使你能够将代码组织成可重用的单元。
示例
创建一个名为 my_module.py 的文件其中包含以下内容
def greet(name):一个简单的问候函数print(f你好{name})然后在其他文件中导入并使用它
import my_modulemy_module.greet(Alice) # 使用自己创建的模块这就是模块的基本知识。
模块是 Python 编程中非常重要的概念它们允许你将代码组织成可维护和可重用的部分。通过导入标准库模块或创建自己的模块你可以扩展你的工具箱让你的编程任务更加高效和有条不紊。继续探索模块并将它们作为编程的利器 当然让我们深入研究第3章的3.3节“错误处理找到音乐中的音符”。错误处理是Python编程中不可或缺的一部分它允许你在程序出现问题时优雅地处理异常情况。
3.3 错误处理找到音乐中的音符
3.3.1 什么是错误处理
错误处理是一种编程技术用于捕获、识别和处理程序中的异常情况。异常通常是不期望的错误或问题它们可能导致程序中断或崩溃。
3.3.2 异常类型
Python 中有许多内置的异常类型每种类型都表示不同的错误情况。一些常见的异常类型包括
SyntaxError语法错误通常是由于代码书写不正确引起的。TypeError类型错误例如尝试对不兼容类型执行操作。NameError名称错误尝试访问未定义的变量或函数。ValueError值错误尝试使用无效的值。ZeroDivisionError除以零错误尝试执行除法操作并除以零。
⚠️ 注意不要背不要背不要背 —— 见多了自然就熟悉。
3.3.3 使用 try 和 except
要捕获异常并进行处理你可以使用 try 和 except 语句。代码块在 try 内执行如果出现异常则会跳转到匹配的 except 块。
示例
try:result 10 / 0 # 尝试除以零
except ZeroDivisionError:print(哎呀除以零了)在这个示例中我们尝试除以零但由于出现了 ZeroDivisionError 异常所以程序不会崩溃而是执行了 except 块中的代码。
3.3.4 多个 except 块
你可以为不同类型的异常指定多个 except 块以分别处理它们。
示例
try:num int(abc) # 尝试将字符串转换为整数
except ValueError:print(无法将字符串转换为整数)
except TypeError:print(类型错误发生)在这个示例中我们处理了 ValueError 和 TypeError 两种异常。
3.3.5 使用 else 和 finally
除了 try 和 except还可以使用 else 块和 finally 块。
else块中的代码将在没有异常发生时执行。finally块中的代码将始终执行无论是否发生异常。
示例
try:result 10 / 2
except ZeroDivisionError:print(哎呀除以零了)
else:print(f结果是{result})
finally:print(无论如何都会执行的代码)在这个示例中由于没有异常发生所以else块中的代码会执行然后无论如何finally块中的代码也会执行。
3.3.6 抛出自定义异常
除了处理内置异常你还可以抛出自定义异常以便更好地控制程序行为。
示例
def divide(a, b):if b 0:raise ValueError(除数不能为零)return a / btry:result divide(10, 0)
except ValueError as e:print(f捕获自定义异常{e})在这个示例中我们定义了一个自定义异常并在函数中抛出它。
3.3.7 异常处理最佳实践
尽量只捕获你知道如何处理的异常避免捕获所有异常。使用异常处理来增强程序的稳定性使其能够优雅地处理问题。记录异常信息以便在调试和维护时找到问题的根本原因。
错误处理是Python编程中的关键技能它使你的程序更健壮更容易调试和维护。通过理解不同类型的异常和如何处理它们你可以提高你的代码质量并避免意外崩溃。继续编写代码但不要忘记处理那些“音符”