Python基础笔记-Day05-函数 - 海筒研习社.SeaSilo.CN

/ 0评 / 0

Python函数 function    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。以下Python基础函数笔记​:

pycharm快捷键

Ctrl + P 参数信息(在方法中调用参数)

Ctrl + Q 快速查看文档

Ctrl + Alt + M 提取方法

定义

  1. 用于封装一个特定的功能,表示一个功能或者行为。
  2. 函数是可以重复执行的语句块, 可以重复调用。

作用

提高代码的可重用性和可维护性(代码层次结构更清晰)。

定义函数

  1. 语法:

def 函数名(形式参数):

     函数体

  1. 说明:

def 关键字:全称是define,意为”定义”。

函数名:对函数体中语句的描述,规则与变量名相同。

形式参数:方法定义者要求调用者提供的信息。

函数体:完成该功能的语句。

  1. 函数的第一行语句建议使用文档字符串描述函数的功能与参数。

调用函数

  1. 语法:函数名(实际参数) 
  2. 说明:根据形参传递内容。

返回值

  1. 定义:

方法定义者告诉调用者的结果。

  1. 语法:

return 数据 

  1. 说明:

return后没有语句,相当于返回 None。

函数体没有return,相当于返回None。

可变/不可变类型在传参时的区别

  1. 不可变类型参数有:

数值型(整数,浮点数)

布尔值bool

None 空值

字符串str

元组tuple

  1. 可变类型参数有:

列表 list

字典 dict

集合 set

  1. 传参说明:

不可变类型的数据传参时,函数内部不会改变原数据的值。

可变类型的数据传参时,函数内部可以改变原数据。

函数参数

实参传递方式argument

位置传参

定义:实参与形参的位置依次对应。

序列传参

定义:实参用*将序列拆解后与形参的位置依次对应。

关键字传参

定义:实参根据形参的名字进行对应。

字典关键字传参

  1. 定义:实参用**将字典拆解后与形参的名字进行对应。
  2. 作用:配合形参的缺省参数,可以使调用者随意传参。

形参定义方式parameter

缺省形参

  1. 语法:

def 函数名(形参名1=默认实参1, 形参名2=默认实参2, ...):

      函数体

  1. 说明:

缺省参数必须自右至左依次存在,如果一个参数有缺省参数,则其右侧的所有参数都必须有缺省参数。

缺省参数可以有0个或多个,甚至全部都有缺省参数。

位置形参

语法:

def 函数名(形参名1, 形参名2, ...):

函数体

命名关键字形参

  1. 语法:

   def 函数名(*args, 命名关键字形参1, 命名关键字形参2, ...):
            函数体

def 函数名(*, 命名关键字形参1, 命名关键字形参2, ...):

函数体

  1. 作用:

强制实参使用关键字传参

不定长形参

星号元组形参

  1. 语法:

def 函数名(*元组形参名):

  函数体

  1. 作用:

可以将多个位置实参合并为一个元组

  1. 说明:

一般命名为'args'

形参列表中最多只能有一个

双星号字典形参

  1. 语法:

def 函数名(**字典形参名):

函数体

  1. 作用:

可以将多个关键字实参合并为一个字典

  1. 说明:

一般命名为'kwargs'

形参列表中最多只能有一个

参数自左至右的顺序

位置形参 --> 星号元组形参 --> 命名关键字形参 --> 双星号字典形参

作用域LEGB

  1. 作用域:变量起作用的范围。
  2. Local局部作用域:函数内部。
  3. Enclosing  外部嵌套作用域 :函数嵌套。 
  4. Global全局作用域:模块(.py文件)内部。 
  5. Builtin内置模块作用域:builtins.py文件。

变量名的查找规则

  1. 由内到外:L -> E -> G -> B
  2. 在访问变量时,先查找本地变量,然后是包裹此函数外部的函数内部的变量,之后是全局变量,最后是内置变量。

局部变量

  1. 定义在函数内部的变量(形参也是局部变量)
  2. 只能在函数内部使用
  3. 调用函数时才被创建,函数结束后自动销毁

全局变量

  1. 定义在函数外部,模块内部的变量。
  2. 在整个模块(py文件)范围内访问(但函数内不能将其直接赋值)。

global 语句

  1. 作用:

在函数内部修改全局变量。

在函数内部定义全局变量(全局声明)。

  1. 语法:

global 变量1, 变量2, …

  1. 说明

在函数内直接为全局变量赋值,视为创建新的局部变量。

不能先声明局部的变量,再用global声明为全局变量。

nonlocal 语句

  1. 作用:

在内层函数修改外层嵌套函数内的变量

  1. 语法

nonlocal 变量名1,变量名2, ...

  1. 说明

在被嵌套的内函数中进行使用

发表评论

邮箱地址不会被公开。 必填项已用*标注