函数的定义

概述:将一段经常使用的函数封装起来,减少重复代码,一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能

于python中,定义函数时要用到def

语法结构:

def 函数名称(参数):

函数体

return 返回值

函数在有返回值的情况下会根据实际情况进行返回,如果函数没有返回值则返回None

  1. 在定义函数时,如果暂时还没想法可以用pass进行跳过
  2. 函数可以返回多个值,即return后可以跟多个参数,但函数本身返回只有一个值,其值为元组
  3. 函数名称是指向函数对象的引用,当把一个函数名称赋值给一个变量就是给它起了一个别名

函数的分类

根据有无参数分类:

  • 有参函数
  • 无参函数

根据有无返回值分类:

  • 有返回值函数
  • 无返回值函数

根据定义者分类:

  • 系统自定义函数
  • 第三方函数

全局变量和局部变量

全局变量:定义在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中的函数(全)相关推荐

  1. Python中Print()函数的用法___实例详解(二)(全,例多)

    Python中Print()函数的用法___实例详解(二)(全,例多) 目录 十一.Print()小例子 十二.Print()中文输入显示乱码问题 十三.Print()写入文件 十四.print()在 ...

  2. 技术图文:举例详解Python中 split() 函数的使用方法

    背景 这篇文章主要介绍Python中的split()函数的使用方法,split()函数通常用于将字符串切片并转换为列表,需要的朋友可以参考一下. 技术分析 Python中有split()和os.pat ...

  3. python中str函数isdigit、isdecimal、isnumeric的区别

    python中str函数isdigit.isdecimal.isnumeric的区别 num = "1"  #unicode num.isdigit()   # True num. ...

  4. python中max函数的用法解析

    python中 max函数可以输入一个参数,也可以输入两个参数.如果是一个参数,这个参数必须是可迭代的,max会for i in - 遍历一遍这个迭代器函数会返回其最大值,也可以给出key参数,这样函 ...

  5. python中append函数解析_对python中的pop函数和append函数详解

    对python中的pop函数和append函数详解 pop()函数 1.描述 pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值. 语法 pop()方法语法: list. ...

  6. python中pop函数_Python中的Pop函数

    python中pop函数 什么是弹出功能? (What is the pop function?) The method pop() removes and returns the last elem ...

  7. python中eval()函数的使用

    python中eval()函数的使用 python eval函数功能:将字符串str当成有效的表达式来求值并返回计算结果. 函数定义: eval(expression, globals=None, l ...

  8. Python中eval函数的表达式如何使用

    这篇文章主要介绍了Python中eval函数的表达式用法示例,文中通过示例对比来为大家进行详细的讲解,有需要的朋友可以借鉴参下,希望有所帮助 eval 是干嘛的? 解析字符串表达式并执行,并返回一个值 ...

  9. python中add函数_如何使用python中的add函数?

    之前向大家介绍过python中的求和函数sum函数,numpy中的sum函数,对于数组可以指定维度进行相加.numpy中还有另一种求和运算方法,即add函数.add函数不仅作用于numpy中加法运算, ...

  10. format函数python的顺序_[转载] Python中format函数用法

    Python中format函数用法 format优点 format是python2.6新增的格式化字符串的方法,相对于老版的%格式方法,它有很多优点. 1.不需要理会数据类型的问题,在%方法中%s只能 ...

最新文章

  1. redis实现对账(集合比较)功能
  2. Android的px、dp和sp
  3. ios 开发框架原始雏形 01
  4. 使用TestContainers提高测试性能
  5. 分布式数据层中间件详解:如何实现分库分表+动态数据源+读写分离
  6. class matplotlib.markers.MarkerStyle(marker=None, fillstyle=None)
  7. 飞狐的日线 java_JAVA 版 ATX-Client
  8. html5制作线路图,HTML5画电路图
  9. 企业级WLAN市场格局
  10. 【生信进阶练习1000days】day14-GenomicDataCommons(GDC)
  11. 将数据库导出成sql文件
  12. windows电脑版便签工具哪款好用?
  13. 博通无线网卡驱动安装linux,Ubuntu下Broadcom 802.11g无线网卡驱动安装方法
  14. Steven Lin 林嘉澍
  15. 反向代理和正向代理的区别
  16. 传真百科:传真通讯技术的发展历史
  17. html边框直线代码,网页制作学习:实现细线边框的两种方法_html
  18. linux查看进程所在运行目录
  19. does not have write access to 'C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET File
  20. 在archlinux中安装virtualbox

热门文章

  1. shopex服务器信息,最新版ShopEx 安装和默认后台地址及修改方法
  2. XML 教程(一文彻底搞懂XML)
  3. mac pdf去水印_mac如何去除视频水印
  4. lighttools用透镜旋转手动创建菲尼尔透镜
  5. matlab 双胶合透镜 初始,zemax笔记6——例:双胶合透镜的设计
  6. tracert命令查询服务器位置,服务器管理中tracert命令常用原理和命令行详解
  7. tts高级编程 android,Android TTS(TextToSpeech) 使用
  8. 凤凰系统基于android x x86,凤凰系统(Phoenix OS)x86版1.0 beta官方版
  9. 使用135编辑器HTML样式,135编辑器滑动样式全教程!
  10. App Store审核宝典