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. 说明

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

delphi中的函数传参如何传枚举参数_Python基础笔记Day05函数相关推荐

  1. python 传参之后 显示缺失参数_Python中的参数传递问题

    首先需要说明python中元组,列表,字典的区别. 列表: 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单. 例如:lst = ['arwen',123] 向list中添加项有两种方法:ap ...

  2. C++ 传参时传内置类型时用传值(pass by value)方式效率较高

    来源:唐磊的个人博客<C++ 传参时传内置类型时用传值(pass by value)方式效率较高> 在<Effective C++>里提到对内置(C-like)类型在函数传参时 ...

  3. 尚硅谷VUE项目-前端项目问题总结07--产品详情页【vuex-排他操作foreach-放大镜-轮播图-兄弟组件通信$bus-购物车-路由跳转传参-路由传参+会话存储】-游客身份-节流

    尚硅谷VUE项目-前端项目问题总结07---产品详情页 1.静态组件(详情页还未注册为路由组件) 2.发请求 3.vuex-获取产品详情信息 3.1放大镜 3.2 属性值[排他操作] 3.3轮播图[j ...

  4. Vue路由传参及传参后刷新导致参数消失处理

    参考:https://blog.csdn.net/qq_43103581/article/details/82260073(vue 路由传递参数,刷新页面后参数丢失) 项目功能需要,要从列表页跳转到第 ...

  5. vue动态路由传参---query传参和params传参

    当一个页面跳转到另一个页面时,组件结构相同,只是内容不同且地址栏后缀不同 ,这个地址栏的后缀就是参数,根据不同参数渲染不同的内容,这个跳转就叫路由传参. 当项目中组件间通过路由跳转,有时,我们需要传递 ...

  6. html页面url中文传值乱码,URL传参时,中文参数乱码的解决方法

    URL传参时,中文参数乱码的解决: 今天在工作中遇到了这样的一个问题,在页面之间跳转时,我将中文的参数放入到url中,使用location进行跳转传参,但是发现接收到的参数值是乱码.我的代码是这样写的 ...

  7. 母子页的iframe传参跳转,参数需要编码

    背景: 我的项目是一个正常html嵌套了一个iframe, 项目需要传参后,改变iframe的src属性值,实现显示不同的页面 说明: 再不传值的时候显示是这样的 传值后显示所传值的页面 例如页面值是 ...

  8. vue页面传参(多个参数传值)与接参 - 代码篇

    index.js路由规则设定: /searchResult/syyName=:syyName 发送页面: //传参页面 this.$router.push({name: 'SearchResult', ...

  9. mysql数据库逆心_数据库系统基础笔记(7)--函数

    逆心 MySQL数据库提供了很多函数包括: 数学函数: 字符串函数: 日期和时间函数: 条件判断函数: 系统信息函数: 加密函数: 格式化函数: 一.数学函数 数学函数主要用于处理数字,包括整型.浮点 ...

最新文章

  1. 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate...
  2. 单目图像深度估计 - 泛化篇:S2R-DepthNet
  3. java实体外键_如何在JPA中添加用户实体和好友关系实体的外键
  4. 接口请求,上传byte数组byte[]数据异常,负数变正数/负数变63
  5. 'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
  6. 互联网人,天生就是送外卖的料!
  7. ansible(4)——配置文件及以对面某个用户来登录
  8. 走近webpack(3)--图片的处理
  9. 遇见未来 | 软件定义数据中心:人类文明运行在软件之上
  10. teablue数据分析_基于大数据分析的茶叶质量评估
  11. clion jiqiao
  12. Python:matplotlib绘制条形图
  13. java 封装返回json数据
  14. sql 安装程序文件_【病毒文件分析】MedusaLocker勒索病毒,小心全网被加密
  15. 使用lombok时可以自定义get、set方法
  16. Mobileye上演IPO生死时速
  17. 机器学习(6)——凸优化理论(一)
  18. java 中国标准时间_JAVA 转Wed Oct 05 2016 00:00:00 GMT+0800 (中国标准时间)
  19. ZigBee无线通信--BasicRF无线点对点通信
  20. cg of spears storm_Steam 上的 Storm Of Spears RPG

热门文章

  1. Android之最好理解的Binder机制
  2. Android之系统服务-WindowManager
  3. 【iVX 初级工程师培训教程 10篇文拿证】04 画布及我和 iVX 合照
  4. java剪切txt文件_用Java把剪切板的内容实时保存到txt
  5. python中sendkeys.sendkeys_python的webbrowser模块和SendKeys模块
  6. 陪孩子看完这几部高分纪录片,胜过出国亲子游!
  7. python求导函数的值_python怎么实现函数求导
  8. java什么是静态_什么是java静态
  9. robcad和catia是什么关系_proe/CATIA/UG/SolidWorks软件区别与联系
  10. 如何动态的生成某种类型的集合呢_知乎画报」的移动端动态化工程实践