python中的函数(全)
函数的定义
概述:将一段经常使用的函数封装起来,减少重复代码,一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能
于python中,定义函数时要用到def
语法结构:
def 函数名称(参数):
函数体
return 返回值
函数在有返回值的情况下会根据实际情况进行返回,如果函数没有返回值则返回None
- 在定义函数时,如果暂时还没想法可以用pass进行跳过
- 函数可以返回多个值,即return后可以跟多个参数,但函数本身返回只有一个值,其值为元组
- 函数名称是指向函数对象的引用,当把一个函数名称赋值给一个变量就是给它起了一个别名
函数的分类
根据有无参数分类:
- 有参函数
- 无参函数
根据有无返回值分类:
- 有返回值函数
- 无返回值函数
根据定义者分类:
- 系统自定义函数
- 第三方函数
全局变量和局部变量
全局变量:定义在py文件中的变量
特点:在代码运行过程中始终有效
局部变量:定义在函数中的变量
特点:函数外部无法访问函数内的变量即局部变量
函数内部可以访问全局变量,但不能修改全局变量,如果需要在函数内部修改全局变量,则要用到global关键字,一般不建议使用
值传递与引用传递
值传递:值传递时,当函数的形参发生变化不会影响实参的值
引用传递:引用传递时,当函数的形参发生变化会影响实参的值
其中的a,b都代表的是内存地址,代表的是函数本身,而a(),b()代表的是函数的返回值,当没有返回值时,则返回None
值传递适合于不可变类型的实参(字符串、数字、元组),引用传递适合于可变类型的实参(列表、字典)
在弱数据语言中,函数是可以作为参数传递到另一个函数中
函数的递归
在python中函数可以调用其他函数,而函数递归就是函数自己本身调用自己
函数递归必须要有终止条件,如果没有终止条件,函数就会陷入死循环,python中会报错
栈溢出问题:递归调用层次过多,递归函数在运行时会进行压栈操作,当压栈次数过多时,会导致堆栈溢出
解决方法:尾递归优化
尾递归:函数自己调节自己,要有终止条件,return语句中不能包含表达式
递归优缺点:
- 逻辑简单清晰
- 过深的递归会造成栈溢出问题
python解释器并没有对尾递归优化,所以在python中任何的递归都会造成栈溢出问题
匿名函数
概念:没有名称的函数,使用lambda关键字来定义
语法结构:lambda 参数 :函数体
由于lambda返回的是函数对象,因此我们需要用一个变量去接收
匿名函数可以无参数、一个参数或多个参数,可以作为一个参数进行传递,也可以作函数的返回值
偏函数
在python中,调用函数时我们想要其中的一个值设置为一个固定值,此时我们就需要用到偏函数
python中的functools模块为我们提供了许多功能,其中一个便是partial
当我们只引入偏函数时需输入:
from functools into partial
其中int()将字符型转换为整型,默认为十进制
其中int()提供了baes参数,可以调节转换进制
当我们需要大量转换2进制时,每次传入int(x,base=2)过于麻烦,此时我们会定义一个函数,传入base默认值=2
from functools import partial
def int2(x,base = 2):return int(x,base)
print(int2("1000"))
8
全局函数
注意:round() 四舍五入,但是要注意在python中奇数上是标准的四舍五入,在偶数上是以5为分界线
python中的函数(全)相关推荐
- Python中Print()函数的用法___实例详解(二)(全,例多)
Python中Print()函数的用法___实例详解(二)(全,例多) 目录 十一.Print()小例子 十二.Print()中文输入显示乱码问题 十三.Print()写入文件 十四.print()在 ...
- 技术图文:举例详解Python中 split() 函数的使用方法
背景 这篇文章主要介绍Python中的split()函数的使用方法,split()函数通常用于将字符串切片并转换为列表,需要的朋友可以参考一下. 技术分析 Python中有split()和os.pat ...
- python中str函数isdigit、isdecimal、isnumeric的区别
python中str函数isdigit.isdecimal.isnumeric的区别 num = "1" #unicode num.isdigit() # True num. ...
- python中max函数的用法解析
python中 max函数可以输入一个参数,也可以输入两个参数.如果是一个参数,这个参数必须是可迭代的,max会for i in - 遍历一遍这个迭代器函数会返回其最大值,也可以给出key参数,这样函 ...
- python中append函数解析_对python中的pop函数和append函数详解
对python中的pop函数和append函数详解 pop()函数 1.描述 pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值. 语法 pop()方法语法: list. ...
- python中pop函数_Python中的Pop函数
python中pop函数 什么是弹出功能? (What is the pop function?) The method pop() removes and returns the last elem ...
- python中eval()函数的使用
python中eval()函数的使用 python eval函数功能:将字符串str当成有效的表达式来求值并返回计算结果. 函数定义: eval(expression, globals=None, l ...
- Python中eval函数的表达式如何使用
这篇文章主要介绍了Python中eval函数的表达式用法示例,文中通过示例对比来为大家进行详细的讲解,有需要的朋友可以借鉴参下,希望有所帮助 eval 是干嘛的? 解析字符串表达式并执行,并返回一个值 ...
- python中add函数_如何使用python中的add函数?
之前向大家介绍过python中的求和函数sum函数,numpy中的sum函数,对于数组可以指定维度进行相加.numpy中还有另一种求和运算方法,即add函数.add函数不仅作用于numpy中加法运算, ...
- format函数python的顺序_[转载] Python中format函数用法
Python中format函数用法 format优点 format是python2.6新增的格式化字符串的方法,相对于老版的%格式方法,它有很多优点. 1.不需要理会数据类型的问题,在%方法中%s只能 ...
最新文章
- redis实现对账(集合比较)功能
- Android的px、dp和sp
- ios 开发框架原始雏形 01
- 使用TestContainers提高测试性能
- 分布式数据层中间件详解:如何实现分库分表+动态数据源+读写分离
- class matplotlib.markers.MarkerStyle(marker=None, fillstyle=None)
- 飞狐的日线 java_JAVA 版 ATX-Client
- html5制作线路图,HTML5画电路图
- 企业级WLAN市场格局
- 【生信进阶练习1000days】day14-GenomicDataCommons(GDC)
- 将数据库导出成sql文件
- windows电脑版便签工具哪款好用?
- 博通无线网卡驱动安装linux,Ubuntu下Broadcom 802.11g无线网卡驱动安装方法
- Steven Lin 林嘉澍
- 反向代理和正向代理的区别
- 传真百科:传真通讯技术的发展历史
- html边框直线代码,网页制作学习:实现细线边框的两种方法_html
- linux查看进程所在运行目录
- does not have write access to 'C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET File
- 在archlinux中安装virtualbox
热门文章
- shopex服务器信息,最新版ShopEx 安装和默认后台地址及修改方法
- XML 教程(一文彻底搞懂XML)
- mac pdf去水印_mac如何去除视频水印
- lighttools用透镜旋转手动创建菲尼尔透镜
- matlab 双胶合透镜 初始,zemax笔记6——例:双胶合透镜的设计
- tracert命令查询服务器位置,服务器管理中tracert命令常用原理和命令行详解
- tts高级编程 android,Android TTS(TextToSpeech) 使用
- 凤凰系统基于android x x86,凤凰系统(Phoenix OS)x86版1.0 beta官方版
- 使用135编辑器HTML样式,135编辑器滑动样式全教程!
- App Store审核宝典