1.函数的定义

python内置了很多函数,可以直接调用,多数情况下,还需要自定义函数,自定义函数的主体,换行的缩进表示代码属于该函数.定义的函数只有被调用的时候才会执行.函数只有有返回值的情况下才可以打印

语法定义:

def 函数名():

......

......

其中,函数名可以由数字,字母,下划线组合而成,但不能以数字开头,冒号以下的代码是函数的主体,换行的缩进表示代码属于该函数

实例代码:

1 defadd():2 a = 1

3 b = a+3

4 print(b)5 add()6 #运行结果:

7 4

代码说明:

1 自定义一个名叫add的函数

2 在add函数中定义变量a,并将a赋值为1

3 在add函数中定义变量b,并将b赋值为a+3的运算结果

4 打印b的值

5 调用执行add()函数

7 运行结果,为4

注意:如果没有第5行的调用,那么add()函数就不会执行了

2.函数的参数

自定义函数的时候还可以加上参数,参数可以是一个,也可以是多个,参数放在()里面,加上的参数只是一个形式参数,而非真正的参数.

实例代码1:

1 defadd(a,b):2 c = a+b3 print(c)4 add(1,2)5 #运行结果:

6 3

代码说明:

1 定义一个add函数,并创建形式参数a,b

2 将a+b的结果赋值给变量c

3 打印c的值

4 调用执行add(a,b)函数,并给形式参数给传递实参1,给形式参数b传递实参2

6 运行结果,为3

注意:对于add(a,b)函数来说,函数内的a,b只是形式参数,a,b可以表示任何数据,而c就是a和b任意数据的和,等式c=a+b,只是建立了c与a,b的关系

实例代码2:

1 def add(a = 1,b = 2):2 c = a +b3 print(c)4 add()5 add(2,3)6 add()7 #运行结果:

8 3

9 5

10 3

代码说明:

1.定义函数,有形式参数a,b 并给a赋默认值1,给b赋默认值2

2.定义变量c,赋值a+b的运算结果

3.打印c

4.调用函数,不传实参

5.调用函数,传实参,a传实际参数2,b传实际参数3

6.调用函数,不传实参.caution:虽然第5行在调用函数时改变了a和 b的值,但对于函数本身默认值是不会变的,调用时改变的值只是对调用时生效,并不会影响函数本身的默认值

8.4的运行结果

9.5的运行结果

10.3的运行结果

注意:在定义具有形参的函数时,也可以给形式参数赋值,产生一个默认值,当调用函数时,分为两种情况:当调用函数不加实际参数时,就以定义函数时默认值作为实际值;当调用函数加上实际值,那么新的实参就会代替原来的默认值.

使用关键字参数允许函数调用时参数的顺序与声明时不一致,Python解释器能够用参数名匹配参数值.如:

def printinfo(name,age):

..................

printinfo(age=50,name='猪太肥')

传参时会通过参数名匹配参数值,不会出现name=50,age="猪太肥"的情况.

3.函数的返回值

之前定义的函数只是用来执行某些操作,并没有将最后执行的结果保存.上面的例子是将c的值打印了出来,并未将c的值保存和返回,导致c的值只能在函数内使用

实例代码1:

1 def add(a = 1,b = 2):2 c = a +b3 print(add())4 print(add(2,3))5 #运行结果:

6 None7 None

注意:python语言中,没有返回值时不会报错,会返回一个None

如何返回和保存c的值呢? 只需要在函数中加return + 返回值

实例代码:

1 def add(a = 1,b = 2):2 c = a +b3 returnc4 print(add())5 print(add(2,3))6 #运行结果

7 3

8 5

代码说明:

3.在执行完add函数时返回c的值

4.将调用执行add()的结果打印出来.由于add函数有了返回值,所以打印出来就是c的值

有时候函数需要返回的值不止一个,同样可以用return来返回,区别于单个返回值,多个返回值需要用逗号隔开,数据以元组的形式返回,同样也可以把返回值按照顺序赋值给多个变量

实例代码:

1 def add(a = 1,b = 2):2 c = a +b3 returna,b,c4 print(add())5 print(add(2,3))6 x,y,z = add(3,5)7 print(x,y,z)8 #运行结果:

9 (1, 2, 3)10 (2, 3, 5)11 3 5 8

代码说明:

3.在执行完add函数后,返回a,b,c的值

4.调用add函数,不传实参,并打印执行结果,由于返回了3个值,所以返回的是3个元素的元组

5.调用add函数,传递实参,并打印执行结果,由于返回了3个值,所以返回的是3个元素的元组

6.调用add函数,不传实参,并将执行结果分别赋值给x,y,z

7.打印x,y,z的值

实例代码体会下有无返回值的区别:]

defchangeme(mylist):

mylist.append(6);print('list =',mylist)list= [1,2,3,4,5]print(changeme(list))

print(list)

运行结果:

list= [1, 2, 3, 4, 5, 6]#执行调用函数时,被调用函数内的打印None#被调用函数没有返回值,所以打印不出东西来defchangeme(mylist):

mylist.append(6);print('list =',mylist)returnmylist #被调用函数有返回值

list= [1,2.3,4,5]print(changeme(list))

print(list)

运行结果:

list= [1, 2, 3, 4, 5, 6]

[1, 2, 3, 4, 5, 6] #被调函数有返回值,可以打印出东西来

[1, 2, 3, 4, 5, 6] #列表的可变性,在执行调用函数时,列表以发生变化

4.函数的嵌套

除了 自定义和执行函数外,还可以在函数中相互嵌套调用,即在某个函数的代码中调用其他函数,这就是函数的嵌套.

实例代码:

1 defa1(a,b):2 return a+b3 defa2(c):4 returnc5 defa3(x,y,z):6 result = a1(x,y)-a2(z)7 returnresult8 print(a3(1,2,3))9 #运行结果:

10 0

代码说明:

1.自定义a1()函数,并创建形式参数a和b

2.函数a1返回a+b的结果

3.自定义a2()函数,并创建形式参数c

4.函数a2返回c的结果

5.自定义a3()函数,并创建形式参数x,y,z

6.将函数a1的运行结果减去函数a2的运行结果,并把结果赋值给result.

7,函数a3()执行完结果,返回运算结果result的值

8.打印a(1,2,3)的执行结果.

任意函数都能调用任意函数,没有上下级等级关系.但这不利于代码的可读性.为了让代码更清晰,利于对代码进行修改,设立一个主函数,并在这个函数下定义它需要调用的子函数,这样主次关系就会更加明确,而且子函数不会被其他函数调用,避免了代码调用混乱的结果.

实例代码:

1 defa(x,y,z):2 defa1(a,b):3 return a+b4 defa2(c):5 returnc6 result = a1(x,y)-a2(z)7 returnresult8 print(a(1,2,3))9 #运行结果:

10 0

1 defa1(a,b):2 c = a+b3 defa2(x):4 x=x*x5 returnx6 returna2(c)7 print(a1(1,2))8 #运行结果:

9 9

python函数只有被调用才会执行_Python函数相关推荐

  1. python函数只有被调用才会执行_Python函数调用

    转载自链接: http://www.cnblogs.com/feixuelove1009/p/5541632.html 1.python函数基础 函数名: fun 函数体:1~3行 返回值:2 调用函 ...

  2. python不允许使用关键字作为变量名_python函数变量_python不允许使用关键字作为变量名,允许使用内置函数名作为变量名,但这会改变函数 - 云+社区 - 腾讯云...

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在python 中, ...

  3. mysql通过函数完成10的阶乘_请使用函数的递归调用编写求阶乘的函数,并计算1!+2!+3!+4!+5!...

    点击查看请使用函数的递归调用编写求阶乘的函数,并计算1!+2!+3!+4!+5!具体信息 答:include "stdio.h" int fac(int k) { if(k==1) ...

  4. c++ 一个函数包括多个返回值判断_Python函数的概念和使用

    函数 为了便于程序的维护和更好的实现模块化,好的程序都会分解为很多函数. 可以这么说,对于任何的编程语言,函数都是一个非常重要的概念. python 不仅简化了函数的定义过程,而且还大量借鉴了其他函数 ...

  5. JDBC使用总结:增删改查、调用存储过程、执行存储函数、存储过程与存储函数区别分析

    JDBC(Java Database Connectivity):Java访问数据库的解决方案. JDBC只定义接口,具体实现由各个数据库厂商负责. 原生jdbc技术的使用基本都是模板式的开发,基本格 ...

  6. python创建实例会调用哪些魔术方法_Python最会变魔术的魔术方法,我觉得是它!...

    作者:豌豆花下猫 来源:Python猫 在,我有一个核心的发现:Python 内置类型的特殊方法(含魔术方法与其它方法)由 C 语言独立实现,在 Python 层面不存在调用关系. 但是,文中也提到了 ...

  7. 【软件开发底层知识修炼】十 链接器-main函数不是第一个被执行的函数

    上一篇文章,大概了解了链接器的工作内容就是:符号解析和重定位.点击上一篇文章查看:点击查看. 本片文章其实还是围绕链接器来学习.只不过不是很明显,当你学到下一篇文章时,就明白了. 本篇文章来弄明白一个 ...

  8. c语言程序执行完main函数后,一个c程序在执行main函数之前和main之后都做了那些事情啊该如何解决...

    当前位置:我的异常网» C语言 » 一个c程序在执行main函数之前和main之后都做了那些 一个c程序在执行main函数之前和main之后都做了那些事情啊该如何解决 www.myexceptions ...

  9. VUE保存页面的数据,VUE页面显示就执行某个函数,VUE页面隐藏就执行某个函数

    用 VUE 默认的 keep-alive 组件实现 保存页面的数据,页面显示就执行某个函数,页面隐藏就执行某个函数实现方式: 1.在路由内设置页面是否需要缓存: 示例代码:(在需要的组件里面添加met ...

最新文章

  1. Java EE---Spring AOP
  2. List集合存入int类型值1,remove(1)方法按下标还是按对象删除信息
  3. MacBook 如何通过命令终端进入 U 盘内的目录
  4. youcans 的 OpenCV 学习课—5.图像的几何变换
  5. 新手编程:程序员 5 种编程入门方法,快速学会一门编程语言!
  6. NET快速信息化系统开发框架 V3.2 -WinForm部分全部重构为Dev风格界面
  7. mysql int的长度
  8. Linux基础自学记录六-引导流程解析2
  9. 无人驾驶(如何自己构建hdmap)
  10. Android蓝牙操作笔记
  11. 嵌入式程序员是难得的全栈型程序员
  12. highcharts:根据Y的数值范围,动态改变图形的填充颜色
  13. Incorrect string value: '\xF0\x9F\x98\x84\xF0\x9F 表情插入mysql 报错
  14. Java 对象布局、大小工具 jar包工具类jol
  15. 单片机段式LCD驱动教程
  16. 单片机多级菜单的简单实现
  17. 一文读懂ICO、IFO、IMO、IEO的区别,或许是全网最全科普
  18. Spatial-Spectral Transformer for Hyperspectral Image Classification_外文翻译
  19. hive------内部函数与自定义函数
  20. vue.js创建网站实例1

热门文章

  1. 1、Angular-Ui Router 状态概要
  2. 《2016年中国旅游行业邮件营销市场报告》
  3. [论文阅读]阿里DIN深度兴趣网络之总体解读
  4. python异步爬虫协程的使用学习笔记
  5. 【虚拟仿真】人口模拟系统,老龄化和少子化距离我们有多远
  6. bird quagga 静态路由配置
  7. Windows 补丁批量安装脚本
  8. android 微信检测工具,Android 如何测试微信小游戏小程序?
  9. 大小端、字节顺序转换函数和IP地址格式转换函数
  10. Spark使用场景有哪些?大数据spark教程