python基础(part10)--函数
鄙人学习笔记
开发工具:Spyder
文章目录
- 函数function
- 定义
- 作用
- 定义函数
- 调用函数
- 返回值
- 举个例子
- 可变与不可变类型数据在传参时的区别
- 举个例子1
- 举个例子2
- 函数参数
- 实参传递方式
- 形参定义方式
- 默认参数
- 位置形参
- 星号元组形参
- 命名关键字形参
- 双星号字典形参
- 参数自左至右的顺序
函数function
定义
函数用于封装一个特定的功能,表示一个功能或者行为。函数是可以重复执行的语句块,可以重复调用。
作用
函数可以提高代码的可重用性和可维护性。(注意函数命名和清晰性)
定义函数
- 语法
def 函数名(形式参数):函数体
- 说明
def 关键字 | 全称是define, 意味"定义" |
函数名 | 对函数体中语句的描述,命名规则与变量名相同 |
形式参数 | 方法定义者要求调用者提供的信息 |
函数体 | 完成该功能的语句 |
备注:函数的第一行语句,可以选择性地使用文档字符串存放函数与参数的说明。
调用函数
- 语法
函数名(实际参数)
返回值
- 定义
方法定义者告诉调用者的结果
- 语法
return [表达式]
- 说明
①表达式就是需要返回的结果
②若return后不带表达式,相当于返回None
③若不带return语句,函数执行完后返回None(相当于在最后加了一条 return None 语句)
举个例子
代码:
def my_add(num01, num02):result = num01 + num02return resultre = my_add(1, 2)
print(re)
结果:
可变与不可变类型数据在传参时的区别
- 不可变类型数据
- 可变类型数据
- 传参说明
不可变类型的数据传参时,函数内部不会改变原数据的值。
可变类型的数据传参时,函数内部可以改变原数据。
举个例子1
代码:
def fun01(fun_num01):fun_num01 = 2print("fun_num01:"+ str(fun_num01))number01 = 1
fun01(number01)
print("number01:" + str(number01))
结果:
备注:str( )是python自带函数,是python保留的关键字,定义变量时应该避免使用str作为变量名。如果在使用str( )函数之前已经定义过str变量,则会出现TypeError: ‘str’ object is not callable这个报错。可以使用del str将str变量删除。
举个例子2
代码:
def fun01(num01, listA, listB):num01 = 100listA[0] = 200listB = 300number01 = 1
list01 = [2, 3]
list02 = [4, 5, 6]fun01(number01, list01, list02)print(number01)
print(list01)
print(list02)
结果:
函数参数
实参传递方式
①位置传参-序列传参
②关键字传参-字典传参
- 例子
代码:
def fun01(a, b, c):print(a, b, c)#位置传参:实参与形参的位置依次对应
fun01(1, 2, 3)#序列传参:用*将序列拆分后与形参的位置依次对应
fun01(*[4, 5, 6])#关键字传参:实参根据形参的名称进行对应
fun01(b = 2, a = 1, c = 3)#字典传参:用**将字典拆分后与形参的名字进行对应
fun01(**{"b":20, "c":10, "a":5})
结果:
形参定义方式
默认参数
默认参数,可让调用者有选择性的传递需要的信息
- 例子
代码:
def fun01(a = 0, b = 1, c = 2):print(a, b, c)fun01()
fun01(1)
fun01(*[2, 3])
fun01(b = 10)
fun01(**{"a":-1, "c":32})
结果:
位置形参
- 语法
def 函数名(形参名1, 形参名2, ...):函数体
星号元组形参
- 语法
def 函数名(*元组形参名):函数体
- 作用
收集多余的位置传参
- 说明
①一般情况下,元组形参名为’args’
②形参列表中最多只能有一个星号元组形参
- 例子1
- 例子2
命名关键字形参
我们先看2个例子,来感受一下命名关键字传参。
- 例子1(强制实参使用关键字传参)
代码:
#若*放在最开头,则强制我们使用关键字传参
def fun01(*,a,b):print(a, b)#如果我们不通过关键字传参,则运行下面这行代码会报错
fun01(1, 2)
结果:
报错!
- 例子2
代码:
#b必须使用关键字传参,否则会报错
def fun01(*a,b):print(a, b)fun01(1, 2, b = 2)
结果:
双星号字典形参
- 例子1
- 例子2
参数自左至右的顺序
位置形参 -> 星号元组形参 -> 命名关键字形参 -> 双星号字典形参
python基础(part10)--函数相关推荐
- python的用途实例-Python基础之函数原理与应用实例详解
本文实例讲述了Python基础之函数原理与应用.分享给大家供大家参考,具体如下: 目标 函数的快速体验 函数的基本使用 函数的参数 函数的返回值 函数的嵌套调用 在模块中定义函数 01. 函数的快速体 ...
- Python基础之函数
详情请戳 python基础之函数介绍及使用 python基础之内置函数 python基础之迭代器和生成器 python基础之装饰器 转载于:https://www.cnblogs.com/zhangl ...
- Python数据结构与算法(1.5)——Python基础之函数与异常
Python数据结构与算法(1.5)--Python基础之函数与异常 0. 学习目标 1. 函数 1.1 自定义函数 1.2 函数与参数 1.3 函数与返回值 2. 异常处理 2.1 raise 语句 ...
- 刻意练习:Python基础 -- Task05. 函数与Lambda表达式
背景 我们准备利用17天时间,将 "Python基础的刻意练习" 分为如下任务: Task01:变量.运算符与数据类型(1day) Task02:条件与循环(1day) Task0 ...
- Python基础__函数
本节将进入函数的介绍,函数是Python基础中最精彩的部分之一,接下来将对函数做详细介绍. 函数 函数就是对代码进行一个封装.把实现某一功能的代码进行封装到一起.下次需要使用时不需要进行编写代码直接调 ...
- 『Python基础』函数
Python中的函数 函数 (1)什么是函数? 软件开发,是为了解决生活中的问题,函数就是生活中的一种行为,如:吃饭.睡觉.学习.游戏等等等- 不需要资源.不需要结果.执行即可 关门的行为 需要资源. ...
- 第七篇 python基础之函数,递归,内置函数
阅读目录 一 数学定义的函数与python中的函数 二 为何使用函数 背景提要 三 函数和过程 四 函数参数 五 局部变量和全局变量 六 前向引用之'函数即变量' 七 嵌套函数和作用域 八 递归调用 ...
- python入门之函数调用内置函数_第九篇 python基础之函数,递归,内置函数
阅读目录 一 数学定义的函数与python中的函数 二 为何使用函数 背景提要 三 函数和过程 四 函数参数 五 局部变量和全局变量 六 前向引用之'函数即变量' 七 嵌套函数和作用域 八 递归调用 ...
- Python基础第六天——函数的使用、函数的参数、函数的返回值、函数的嵌套、命名空间、作用域、函数对象...
一.拾遗 1.通常情况下无参函数只是进行操作,所以不需要返回值:有参数函数则需要返回值. 2.练习: 判断用户输入一串字符,如果这串字符的长度小于5则重新输入,如果大于5则退出循环. while Tr ...
最新文章
- ionic3中使用自定义配置
- unicode字符串 转 中文
- linux 防火墻生成器shorewall
- Redis configuration
- 使用Stream流的方式,遍历集合,对集合中的数据进行过滤
- AlphaGo之父亲授深度强化学习十大法则
- Java线程池理解及用法
- 用jdbc连接oracle的第一次经历
- Filecoin Gas基础费率升至5.06 nanoFIL
- asp.net mvc 路由检测工具
- c语言为什么运行慢,【图片】今天写几个性能测试,为什么C语言跑得这么慢呢??【c语言吧】_百度贴吧...
- HTML+CSS系列教程导学
- react native swiper ios 图片顺序 问题 解决
- Linux运维工程师综合面试题
- 程序员做笔记的利器:MarkDown软件
- Altium Designer初学教程(一)
- 安全研究 # 课题:二进制成分分析(Binary SCA)
- 在线教育是否能完美结合直播授课与短视频呢?
- 集成显卡驱动与linux不兼容,显卡驱动的问题,困扰了很久
- 扬州全景拍摄,扬州全景图片欣赏