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() 接收两个参数,一个是函数,一个是Iterablemap将传入的函数依次作用到序列的每个元素,并把结果作为新的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结束本次循环,立刻开始下一次。
 
 
anaconda搭建环境python类
Loading...
Catalog