位置: 编程技术 - 正文

python常用函数详解(常见python函数)

编辑:rootadmin

推荐整理分享python常用函数详解(常见python函数),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:常见python函数,python常用函数总结,python中常用函数表,python3常用函数,python的各种函数,python的各种函数,python3常用函数,python中各种函数的用法,内容如对您有帮助,希望把文章链接给更多的朋友!

1.函数的介绍

为什么要有函数?因为在平时写代码时,如果没有函数的话,那么将会出现很多重复的代码,这样代码重用率就比较低。。。并且这样的代码维护起来也是很有难度的,为了解决这些问题,就出现了函数,用来将一些经常出现的代码进行封装,这样就可以在任何需要调用这段代码的地方调用这个函数就行了。

函数的定义:函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可

特性:

代码重用保持一致性可扩展性

2.函数的创建

在python中函数定义的格式如下:

函数的调用使用 函数名(实参) 就可以调用函数了。

函数名的命名规则和变量的命名规则一样:

函数名必须以下划线或字母开头,可以包含任意字母、数字或下划线的组合。不能使用任何的标点符号; 函数名是区分大小写的。 函数名不能是保留字。

形参和实参的区别:

函数在定义的时候,函数名后面的括号中可以添加参数,这些参数就叫做形参,形参:顾名思义就是形式参数,只是一个代号。

实参是在调用函数的时候函数名后面的括号中的参数,形参和实参需要一一对应起来,否则调用函数会报错。

3.函数参数及返回值

前面提到函数的形参和实参要一一对应,那么参数对应有如下几种:

必须参数 关键字参数 默认参数 不定长参数 *args 不定长参数 **kwargs

1.必须参数:

必须参数必须以对应的关系一个一个传递进入函数,函数调用时传递的实参必须和函数定义时的形参一一对应,不能多也不能少,顺序也得一致。

举个栗子:

2.关键字参数

关键字参数是实参里面的概念,在调用函数的时候声明某个参数是属于某个关键字的。使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。

举个栗子:

3.默认参数

默认参数是在函数声明的时候,可以给某个参数指定默认值,这样的参数叫做默认值参数。如果在调用函数的时候,默认参数没有接收到对应的实参,那么就会将默认值赋值给这个参数。

举个栗子:

这样,就会把默认参数male赋值给sex了。

4.不定长参数 *args

在python里面,函数在声明的时候,参数中可以使用(*变量名)的方式来接受不确定长度的参数,但是在python里面大家约定俗成使用*args接受不定长参数,这样在调用函数的时候传递的参数就可以是不定长度的了。args接受了不定长参数之后,将这些参数放到一个tuple里面,可以通过访问args来获取这些不定长参数。

举个栗子:

打印出来的是一个tuple,里面存放了(“小明”,,”male”)这三个元素。

5.不定长参数 **kwargs

但是上面的args只能接收未命名的参数,那假如有类似于关键字参数的不定长参数该怎么办呢?python里面使用(**变量名)来接收不定长的命名变量参数。同样,python里面也约定俗成使用**kwargs接收不定长命名参数。kwargs接收了不定长参数之后,将这些参数放到一个字典里面,可以通过key获取到相应的参数值。

举个栗子:

介绍完了这些参数之后,接下来要介绍的是关于这些参数混合使用的情况:

假如一个函数使用了上面所有种类的参数,那该怎么办?为了不产生歧义,python里面规定了假如有多种参数混合的情况下,遵循如下的顺序使用规则:

def f(必须参数,默认参数,*args,**kwargs): pass如果同时存在args和kwargs的话,args在左边

默认参数在必须参数的右边,在*args的左边

关键字参数的位置不固定(ps:关键字参数也不在函数定义的时候确定)

python常用函数详解(常见python函数)

那么,假如有一个列表想要传递进入一个不定长的未命名参数的函数中去,可以在该列表前面加上*实现,同理如果想传递一个字典进入不定长命名参数的函数中去,可以在该字典前面加上**

举个栗子:

函数的返回值

要想获取函数的执行结果,就可以用return语句把结果返回

注意:

函数在执行过程中只要遇到return语句,就会停止执行并返回结果,也可以理解为 return 语句代表着函数的结束 如果未在函数中指定return,那这个函数的返回值为Nonereturn多个对象,解释器会把这多个对象组装成一个元组作为一个一个整体结果输出。

4.LEGB作用域

python中的作用域分4种情况:

L:local,局部作用域,即函数中定义的变量;

E:enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作用域,但不是全局的;

G:globa,全局变量,就是模块级别定义的变量;

B:built-in,系统固定模块里面的变量,比如int, bytearray等。 搜索变量的优先级顺序依次是:作用域局部>外层作用域>当前模块中的全局>python内置作用域,也就是LEGB。

local和enclosing是相对的,enclosing变量相对上层来说也是local。

在Python中,只有模块(module),类(class)以及函数(def、lambda)才会引入新的作用域,其它的代码块(如if、try、for等)不会引入新的作用域。

变量的修改(错误修改,面试题里经常出):

global关键字

当内部作用域想修改外部作用域的变量时,就要用到global和nonlocal关键字了,当修改的变量是在全局作用域(global作用域)上的,就要使用global先声明一下,代码如下:

nonlocal关键字

global关键字声明的变量必须在全局作用域上,不能嵌套作用域上,当要修改嵌套作用域(enclosing作用域,外层非全局作用域)中的变量怎么办呢,这时就需要nonlocal关键字了

小结

变量查找顺序:LEGB,作用域局部>外层作用域>当前模块中的全局>python内置作用域; 只有模块、类、及函数才能引入新作用域; 对于一个变量,内部作用域先声明就会覆盖外部变量,不声明直接使用,就会使用外部作用域的变量; 内部作用域要修改外部作用域变量的值时,全局变量要使用global关键字,嵌套作用域变量要使用nonlocal关键字。nonlocal是python3新增的关键字,有了这个 关键字,就能完美的实现闭包了。

5.特殊函数

递归函数定义:递归函数就是在函数内部调用自己

有时候解决某些问题的时候,逻辑比较复杂,这时候可以考虑使用递归,因为使用递归函数的话,逻辑比较清晰,可以解决一些比较复杂的问题。但是递归函数存在一个问题就是假如递归调用自己的次数比较多的话,将会使得计算速度变得很慢,而且在python中默认的递归调用深度是层,超过这个层数将会导致“爆栈”。。。所以,在可以不用递归的时候建议尽量不要使用递归。

举个栗子:

递归函数的优点:定义简单,逻辑清晰。理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰。

递归特性:

必须有一个明确的结束条件 每次进入更深一层递归时,问题规模相比上次递归都应有所减少 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返 回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。)

6.函数式编程

关于函数式编程,我理解的也不是很深,但是python中有4个比较重要的内置函数,组合起来使用有时候能大大提高编程效率。

对sequence中的item依次执行function(item),将执行结果为True的item做成一个filter object的迭代器返回。可以看作是过滤函数。

2 map(function, sequence)

对sequence中的item依次执行function(item),将执行结果组成一个map object迭代器返回. map也支持多个sequence,这就要求function也支持相应数量的参数输入:

3 reduce(function, sequence, starting_value)

对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用.

4 lambda

普通函数与匿名函数的对比:

匿名函数的命名规则,用lamdba 关键字标识,冒号(:)左侧表示函数接收的参数(a,b) ,冒号(:)右侧表示函数的返回值(a+b)。

因为lamdba在创建时不需要命名,所以,叫匿名函数

Python中操作mysql的pymysql模块详解 前言pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。但目前pymysql支持python3.x而后者不支持3.x版本。本文测试python版本:2.7.。mysql版本:5.

Python安装第三方库及常见问题处理方法汇总 源码安装Python第三方库几乎都可以在github或者pypi上找到源码。源码包格式大概有zip、tar.zip、tar.bz2。解压这些包,进入解压好的文件夹,通常会有一个se

python实现可以断点续传和并发的ftp程序 前言下载文件时,最怕中途断线,无法成功下载完整的文件。断点续传就是从文件中断的地方接下去下载,而不必重新下载。这项功能对于下载较大文

标签: 常见python函数

本文链接地址:https://www.jiuchutong.com/biancheng/385341.html 转载请保留说明!

上一篇:python如何查看系统网络流量的信息(python查询系统)

下一篇:Python中操作mysql的pymysql模块详解(python中操作PDF的库)

  • 所得税可以弥补几年
  • 进口关税计算公式 案例
  • 企业利息收入需要交哪些税
  • 税控盘开票机号是哪个
  • 申报后发现成本算错了
  • 提供咨询服务的小规模企业是一般纳税人吗
  • 企业流水账怎么查
  • 企业因被盗丢失物品案例
  • 企业赔款可以抵税吗
  • 支付给银行的借款利息属于什么会计要素
  • 消费税的征收方式是代收代缴
  • 案例分析工程发票进项高于销项怎么抵扣?
  • 购买面粉的税率是多少
  • 递延所得税费用影响净利润吗
  • 临时建筑进项税可以一次抵扣吗?
  • 取得抵债房产的涉税风险,你清楚吗?
  • 费用无发票财务怎么做账
  • 专项应付款贷方是什么意思
  • 分配现金股利是什么活动
  • 吸收合并后被合并的公司
  • 残保金和工会经费
  • 期初未缴税额和期末未缴税额
  • 公司注销其他应收款怎么冲平
  • 会议费 报销
  • 预收购货款的会计分录
  • 公司接受承兑汇票的风险
  • 开发阶段包括
  • 税控系统服务费怎么抵扣
  • 合并报表中营业利润不等于
  • 城镇土地使用税征收范围
  • 美元汇款怎么汇
  • 购入成品油怎么做会计分录
  • 收到政府财政拨款用于购买生产设备
  • 融资租赁租金计算公式
  • lsalss.exe
  • 金融企业贷款逾期怎么办
  • 冲减其他应收款摘要怎么写
  • os x 10.10 yosemite自动纠正怎么关?os x yosemite自动纠正功能关闭教程
  • 滚动开发项目如何做账
  • php如何调用function
  • 废旧物资回收税收优惠政策2022
  • php操作mysql数据库
  • php输出表格css
  • htmlspecialchars_decode
  • 数据库arc文件
  • 企业预付账款属于什么科目
  • 结转销售成本的凭证需要附件吗
  • 能单独打一张发票的软件
  • 小企业投资款怎么做账
  • 成本会计科目的三级科目有哪些
  • 其他应收款坏账处理
  • 什么是预付账款的管理重点
  • 递延收益的影响
  • 保税区商品可以开发票吗
  • 高新技术企业亏损弥补的年限为十年
  • 商业承兑汇票怎么贴现
  • 坏账准备的计提方法有哪些
  • 事业单位非税收入帐务处理
  • macos装mysql
  • 如何解决局域网问题
  • sqlserver数据库备份
  • win7操作系统在哪儿卖
  • 中兴新支点操作系统安装教程
  • winxp系统控制面板
  • linux dd测试
  • ios8.4.1完美越狱教程
  • 红帽子在工地上是什么级别
  • 64位CentOS 6.4安装配置流量监控工具ntopng
  • 程序中map是什么意思
  • pycharm如何使用
  • perl 排序
  • 纸嫁衣6攻略全文图解
  • 如何给图像应用css滤镜处理效果
  • unity 1
  • jQuery EasyUI之DataGrid使用实例详解
  • 用python抓取网页数据的代码
  • Unity-DF 2048界面
  • js中判断
  • 基于mvc的项目实例
  • 广东电子税务局app
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设