解决问题
蛋白模拟
小小编程
机器学习
要看文献
成长思考
自娱自乐
python函数
type
status
date
slug
summary
tags
category
icon
password
定义一个函数
你可以定义一个由自己想要功能的函数,以下是简单的规则:
- 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
- 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
- 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
- 函数内容以冒号起始,并且缩进。
- return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。return结束执行,把执行结果返回到调用的地方,并把程序的控制权一起返回。
调用函数:函数名后加括号
()
,并传递必要的参数。参数
通过形参(parameters)声明函数的输入,调用函数时,提供的具体值成为实参(arguments)。
参数类型:
位置参数:调用函数时,实参会按位置依次赋值给形参。add(a,b)
默认参数:如果调用函数时未提供对应的实参,形参会使用默认值。
可变参数:允许接受任意数量的实参。定义时用
*
表示可变参数,接收的值会被转换为一个元组。
关键字参数:任意数量的键值对作为参数,在定义时,用 **
表示关键字参数,接收的值会被转换为一个字典。
混合参数变量作用域
在作用域中定义的变量,一般只在作用域中有效。在Python中并不是所有的语句块中都会产生作用域。只有当变量在Module(模块)、Class(类)、def(函数)中定义的时候,才会有作用域的概念。要注意的是:在if-elif-else、for-else、while、try-except\try-finally等关键字的语句块中并不会产成作用域。
LEGB
- 局部作用域(Local Scope):函数内部定义的变量属于该函数的局部作用域,仅在该函数内有效。
- 嵌套作用域(Enclosing Scope):嵌套函数(内部函数)可以访问外层函数的局部变量。嵌套和局部是相对的。对一个函数而言,局部是定义在此函数内部的局部作用域,而嵌套是定义在此函数的上一层父级函数的局部作用域。主要是为了实现Python的闭包,而增加的实现。
- 全局作用域(Global Scope):模块级别的变量或函数,可以在整个模块中访问。
- 内置作用域(Built-in Scope):Python 预定义的全局名称,比如
len()
。
局部访问全局变量,global
内层函数可直接访问外层函数的变量,但是修改,python会将该变量视为局部变量,无法直接修改外层函数的变量。需要用nonlocal
外层函数无法访问内层函数的变量,更不能直接修改。
变量和参数关系
- 变量是计算机程序中的一个命名位置,用于存储数据。变量可以存储不同类型的数据,例如数字、字符串、列表、字典等。变量可以是全局变量或局部变量,取决于它们定义的位置。
- 参数是函数定义时指定的变量,表示函数的输入。它在函数被调用时接收值,并在函数内部使用。参数本质上是局部变量,它们的作用范围仅限于函数内部。
高阶函数
高阶函数是接受函数作为参数或返回函数作为结果的函数。
高阶函数,事实上它把运算规则抽象了
常见应用:
map()
接收两个参数,一个是函数,一个是Iterable
,map
将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator
返回。filter()
也接收一个函数和一个序列。和map()
不同的是,filter()
把传入的函数依次作用于每个元素,然后根据返回值是True
还是False
决定保留还是丢弃该元素。reduce()
把一个函数作用在一个序列[x1, x2, x3, ...]
上,这个函数必须接收两个参数,reduce
把结果继续和序列的下一个元素做累积计算。reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
闭包
闭包:里面函数用到了外面函数的变量,而且这个变量是外面函数的,而不是全局的。不管有没有修改这个变量,只要用到了,就是闭包。
闭包是函数,函数不一定是闭包。
想利用闭包保持外部函数的局部变量或状态。返回一个函数的关键在于它能够保存外部函数的环境,直到该函数被调用。这使得闭包可以在以后调用时,记住外部函数的状态。
闭包是内部函数引用外部函数的变量。即使外部函数结束,闭包仍然可以访问这些变量。
递归函数
调用自己的函数
递归需要一个明确的终止条件,否则会导致栈溢出错误。
装饰器
???
模块
lib文件夹中,模块,或者叫库,包。直接用,提高开发效率。
break和continue
break是完全结束这个循环体。
continue结束本次循环,立刻开始下一次。
Loading...
Last update: 2024-11-22
🎉终于搭建完成🎉
-- 感谢您的支持 ---
👏欢迎阅读👏