Python基础教程(第3版)中文版 第6章 函数(笔记)

简介: Python基础教程(第3版)中文版 第6章 函数(笔记)

                                      第6章 函数

1.懒惰是一种美德(代码重用)

2.抽象和结构

抽象可节省人力,更容易被人理解。

抽象隐藏具体细节。

3.自定义函数

函数执行操作并返回一个值。

使用def (define的缩写) 定义函数

def hello(name):

   return'Hello, ' + name + '!'

def 下面添加字符串就是给函数添加文档字符串

def square(x):

   'Calculates the square of the number x.'

   return x*x;

访问文档: 使用 square.__doc__

获取函数相关信息:help()

没有返回值的函数:不包含return,或return后面是空的。

4.参数

给函数传递一个数,在函数内无法改变这个数的值

参数为可变的数据结构(如列表)将改变

#和C语言的函数参数类似。

#可以借助列表修改参数

调用参数时指定参数名称如:

hello_1(greeting='Hello', name='world')

指定名称的参数叫 关键字参数

定义关键字参数函数时,可以提供默认值

收集参数:*params *会收集多余的参数,不会收集关键字参数 得到序列

** 可收集关键字参数 得到字典

分配参数:

*

**

在调用函数时 将分配参数

5.作用域

此处作用域的概念类似C语言。

使用函数globals来访问全局变量,它返回一个包含全局变量的字典

重新关联全局变量(在函数内部给全局变量赋值)

通过  global 变量名 ,使用全局变量。

函数内可嵌套定义

#C语言不允许嵌套定义函数

作用域也将嵌套,内部函数可访问外部的局部作用域

#nonlocal 类似global 给外部作用域内变量赋值

6.递归

调用自身

#与C语言类似

以阶乘为例:

def fac(n):

   if n == 1:

       return 1

   else

       return n * fac(n - 1)


相关文章
|
3天前
|
Python
SciPy 教程 之 Scipy 显著性检验 3
本教程介绍Scipy显著性检验,包括其基本概念、原理及应用。显著性检验用于判断样本与总体假设间的差异是否显著,是统计学中的重要工具。Scipy通过`scipy.stats`模块提供了相关功能,支持双边检验等方法。
10 1
|
6天前
|
机器学习/深度学习 Python
SciPy 教程 之 SciPy 插值 2
SciPy插值教程:介绍插值概念及其在数值分析中的应用,特别是在处理数据缺失时的插补和平滑数据集。SciPy的`scipy.interpolate`模块提供了强大的插值功能,如一维插值和样条插值。通过`UnivariateSpline()`函数,可以轻松实现单变量插值,示例代码展示了如何对非线性点进行插值计算。
10 3
|
9天前
|
机器学习/深度学习 数据处理 Python
SciPy 教程 之 SciPy 空间数据 4
本教程介绍了SciPy的空间数据处理功能,主要通过scipy.spatial模块实现。内容涵盖空间数据的基本概念、距离矩阵的定义及其在生物信息学中的应用,以及如何计算欧几里得距离。示例代码展示了如何使用SciPy计算两点间的欧几里得距离。
23 5
|
8天前
|
机器学习/深度学习 Python
SciPy 教程 之 SciPy 空间数据 6
本教程介绍了SciPy处理空间数据的方法,包括使用scipy.spatial模块进行点位置判断、最近点计算等内容。还详细讲解了距离矩阵的概念及其应用,如在生物信息学中表示蛋白质结构等。最后,通过实例演示了如何计算两点间的余弦距离。
17 3
|
7天前
|
机器学习/深度学习 数据处理 Python
SciPy 教程 之 SciPy 空间数据 7
本教程介绍了SciPy的空间数据处理功能,涵盖如何使用`scipy.spatial`模块进行点的位置判断、最近点计算等操作。还详细解释了距离矩阵的概念及其在生物信息学中的应用,以及汉明距离的定义和计算方法。示例代码展示了如何计算两个点之间的汉明距离。
13 1
|
10天前
|
Python
SciPy 教程 之 SciPy 图结构 7
《SciPy 教程 之 SciPy 图结构 7》介绍了 SciPy 中处理图结构的方法。图是由节点和边组成的集合,用于表示对象及其之间的关系。scipy.sparse.csgraph 模块提供了多种图处理功能,如 `breadth_first_order()` 方法可按广度优先顺序遍历图。示例代码展示了如何使用该方法从给定的邻接矩阵中获取广度优先遍历的顺序。
21 2
|
11天前
|
算法 Python
SciPy 教程 之 SciPy 图结构 5
SciPy 图结构教程,介绍图的基本概念和SciPy中处理图结构的模块scipy.sparse.csgraph。重点讲解贝尔曼-福特算法,用于求解任意两点间最短路径,支持有向图和负权边。通过示例演示如何使用bellman_ford()方法计算最短路径。
23 3
|
11天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
27 1
|
4天前
|
机器学习/深度学习 数据处理 Python
SciPy 教程 之 SciPy 插值 3
本教程介绍了SciPy中的插值方法,包括什么是插值及其在数据处理和机器学习中的应用。通过 `scipy.interpolate` 模块,特别是 `Rbf()` 函数,展示了如何实现径向基函数插值,以平滑数据集中的离散点。示例代码演示了如何使用 `Rbf()` 函数进行插值计算。
11 0
|
4天前
|
Python
SciPy 教程 之 Scipy 显著性检验 1
本教程介绍Scipy显著性检验,包括统计假设、零假设和备择假设等概念,以及如何使用scipy.stats模块进行显著性检验,以判断样本与总体假设间是否存在显著差异。
9 0