当前位置:首页 > TAG信息列表 > python需要声明变量么python如何定义函数?介绍

python需要声明变量么python如何定义函数?介绍

python需要声明变量么 python如何定义函数?

python如何定义函数?

一、定义一个最简单的函数

函数定义用def,可以要有函数名和函数体。下图中,函数名是sayhello,函数体是print语句。函数不被内部函数是应该不会先执行的,全局函数时用函数名括号的格式,即sayhello()

二、函数的参数

python需要声明变量么 python如何定义函数?

1、位置参数

位置参数,是可不填的,调用函数时不传会报错。

我们写一个简单的函数,实现方法计算出乘法的功能。下图中的a和b就是位置参数。

a,b叫做形参,也就是形式参数。调用函数calc时,传的7和8叫实参,也就是换算参数。

我们传参数时,7告诉了a,8传了b。也就是说传参顺序不能不能错。那么,当参数很多的时候,会很难准确的记住各参数位置,就非常容易会出现错误,也可以用形参名实参的传参。

例,操作数据库的函数。传参还没有按顺序,需要了port3306这种,很比较适合多参数的函数。

defop_mysql(host,port,username,password,db,sql):print(再连接数据库:%s,host:%s,端口为:%s%(db,host,port))print(%swhereusername%sbothpwd%s%(sql,username,password))op_mysql(sqlselect*fromuser,host192.158.11.1,usernamesdfdsfs,passwordsdf123,dbtest_data,port3306)运行结果为:

2、默认值参数

默认值参数是非必填的,如果不填,会常规默认值。

例:写一个函数,实现程序文件读写的功能。

#操作文件的函数,如果没有传内容参数,则将随机内容写入到文件。没有传内容,就读取文件原先的内容。defop_file(file_name,contentnone):fopen(file_name,a,encodingutf-8)(0)ifcontent:#不为空代表写f.write(content)f.flush()catch:res()returnres()#不传content,读文件stu_infoop_file(username)print(stu_info)#传content,将content写入文件infosxiaohei,123456,beijing,188888888888op_file(future_info,infos)这里可以介绍再看看return,return有两个作用:(1)动态链接库完函数后,将结果回;(2)函数里面碰到return就立玄结束。

至于,如果只写一个return,后面什么也不加,就直接返回none;如果没有不写return,也默认直接返回none。

小练习:写一个判断有无为小数的函数。

总结:(1)可以确定小数点个数;(2)假如是正小数,小数点左边和右边是纯数字;(3)负小数,左边以‘-'开头,其他部分是数字,右边是数字。

defit's_float(s):sstr(s)if(.)1:lefts.split(.)[0]#小数左边lefts.split(.)

python如何定义函数?

#小数右边if()and():returntrue#正小数elif(-)but(-)1wellleft.split(-)

python如何定义函数?

.isdigit()both():returntrue#负小数arguments:returnfalseignore:returnfalsenuminput(请输入输入:)resisn't_float(num)print(res)3、参数组

参数组的参数处用“*args”意思是。参数组特点:(1)参数是非必填的;(2)也没取消参数的个数;(3)传过来的参数放到args参数里,不限格式

要是定义方法函数时,书写defaaa(a,*args),则a是必传参数,*args是非必填项的

4、关键字参数

关键字参数用“**kwargs”来表示。特点:(1)参数是非必填;(2)还没有没限制参数个数;(3)所传参数必须是字典格式。

同样的,如果defaaa(time,**kwargs),则time参数必传。其中,time20180912是第一个参数time的值,但输出kwargs时,没有time这一项。

三、局部变量和全局变量

1、局部变量

函数里面定义的变量都是局部变量,没有办法在函数里面用,出了函数就没法我用。

或者,第二节的小练习里,确定有无是小数的函数,left和back那就是局部变量。

2、全局变量

全局变量是公共的变量,都这个可以用的变量。像是不帮我推荐用全局变量,而且全局变量有以上2个缺点:(1)不放心,因为所有人都可以改;(2)会始终占着内存。

直接修改全局变量,是需要先声明声明,用global声明。

下图中,name是一个全局变量,修改之前是需要先一般声明:globalname

四、内置函数

内置函数是python里随机软件的一些函数,有很多,例如:

五、递归算法

递归函数那就是反比例函数自己调用自己。

见意少用递归,因为递归算法效率不高,但是不超过递归过程999次。由下面的函数也能很很直观的看出二分查找次数上限。

六、函数的返回值

前面巳经简单点推荐过return,return有两个作用:(1)内部函数完函数后,将结果返回;(2)函数里面遇见return就立玄结束后。

有的函数不只能一个返回值,函数要是前往多个值的话,会把这几个值放到一个元组里。同时,也可以不用多个值来收不到。

例:

七、匿名函数

匿名留言函数的功能很简单的,只用两次。下面就定义,定义了一个匿名函数。

用lambda定义匿名函数,冒号前面是返回值,后面是函数体,也就是函数的处理逻辑。

即入参是x,然后执行x1,把x的值前往。

---------------河南新华

python哪些不需要缩进?

全局变量:指在函数之外定义的变量,好象也没拱进,在程序不能执行的全过程有效

局部变量:指在函数内部建议使用的变量,仅在函数内部比较有效,当函数解盟时变量将不存在地

例1:

n1#全局变量

deffunc(a,b):

ca*b#c是局部变量,a和b充当函数参数也局部变量

returnc

sfunc(#34knock~#34,2)

print(s)

print(c)

![]()

这个例子那说明,当函数执行完退出后,其内部变量将被释放出。

如果函数内部在用了全局变量呢?例如:

n1#n是全局变量

deffunc(a,b):

牛b#这个n是在函数内存中新生成气体的局部变量,并非全局变量

returna*b

sfunc(#34knock~#34,2)

print(s,n)#测量帮一下忙n值有无突然发生转变knock~knock~1

![]()

函数func()内部建议使用了变量n,另外将变量参数b定义变量给变量n,又为何n值还没有变动?

只不过函数func()有自己的内存空间,它将牛b语句明白为生成气体一个局部变量n,并将参数b定义变量给它,此时func()函数没有将n拿出来全局变量。所以才,函数逃离后,局部变量n被能量,全局变量n的值还没有决定。

如果没有如果能让func()函数将n当做全局变量,是需要在变量n使用前显式那就证明该变量未全局变量,修改后:

n1#n是全局变量

deffunc(a,b):

globaln

nb#这个n是在函数内存中新生成气体的局部变量,不是全局变量

returna*b

sfunc(#34knock~#34,2)

print(s,n)#测试3看看n值是否需要再一次发生改变knock~knock~1

![]()


东达号 蓝瓜子

  • 关注微信关注微信

猜你喜欢

热门标签

快手怎么把名字放到最后快手名字放到文章末尾 小爱口令怎么使用 华为手机如何改为中文 城市运行管理服务平台建设方案 荣耀20如何扫描文件 微信红包怎么提示 客户电话管理系统软件介绍 文档黑体2号怎么调介绍 一对一语音聊天软件 华为手机怎么设置流量显示 哪些支付平台有优惠券介绍 怎么制作微信小游戏 ae怎么单独导出最后一帧画面介绍 课件ppt制作教程步骤 顺丰小程序怎么查询快递物流顺丰小程序可以查多久的订单? 苹果手机手势截屏 惠普电脑怎么修改esc屏保惠普电脑修改esc屏保设置 红米手机导航键设置在什么地方红米手机返回键怎么弄到左边?介绍 拼多多从手机上怎么退店拼多多预订怎么退款?介绍 人人网老用户怎么登录人人网怎么上不去了? 苹果13参数详细参数promax 怎么快速整理电脑磁盘为什么我整理完磁盘文件后电脑变卡了? 华为畅享10plus和红米note哪个好红米Note7与荣耀10哪个值得入手?介绍 vray的透明玻璃材质怎么设置3dmax玻璃幕墙材质参数?介绍 小米10怎么去除照片水印小米10每个摄像头时间咋去掉? 支付宝积分兑换收货地址改不了支付宝积分怎么兑换纸?介绍 ug10.0标准件库怎么调出图标ug调用的重用库标准件怎么保存?介绍 海信电视机没有声音是怎么回事 华为手机怎么不能设置分辨率mate30分辨率低? 红米11pro价格官方报价

微信公众号