2.1 定义函数

def函数名(参数):

代码1

代码2

......

2.2 调⽤函数

函数名(参数)

注意:

1. 不同的需求,参数可有可⽆。

2. 在Python中,函数必须先定义后使⽤。

2.3 快速体验

需求:复现ATM取钱功能。

1. 搭建整体框架(复现需求)

print('密码正确登录成功')#显示"选择功能"界⾯

print('查询余额完毕')#显示"选择功能"界⾯

print('取了2000元钱')#显示"选择功能"界⾯

2. 确定“选择功能”界⾯内容

print('查询余额')print('存款')print('取款')

3. 封装"选择功能"

注意:⼀定是先定义函数,后调⽤函数。

#封装ATM机功能选项 -- 定义函数

defselect_func():print('-----请选择功能-----')print('查询余额')print('存款')print('取款')print('-----请选择功能-----')

4. 调⽤函数

在需要显示“选择功能”函数的位置调⽤函数。

print('密码正确登录成功')#显示"选择功能"界⾯ -- 调⽤函数

select_func()print('查询余额完毕')#显示"选择功能"界⾯ -- 调⽤函数

select_func()print('取了2000元钱')#显示"选择功能"界⾯ -- 调⽤函数

select_func()

三.函数的参数作⽤

思考:完成需求如下:⼀个函数完成两个数1和2的加法运算,如何书写程序?

#定义函数

defadd_num1():

result= 1 + 2

print(result)#调⽤函数

add_num1()

思考:上述add_num1函数只能完成数字1和2的加法运算,如果想要这个函数变得更灵活,可以计算任何⽤户指定的两个数字的和,如何书写程序?

分析:⽤户要在调⽤函数的时候指定具体数字,那么在定义函数的时候就需要接收⽤户指定的数字。函数调⽤时候指定的数字和定义函数时候接收的数字即是函数的参数。

#定义函数时同时定义了接收⽤户数据的参数a和b,a和b是形参

defadd_num2(a, b):

result= a +bprint(result)#调⽤函数时传⼊了真实的数据10 和 20,真实数据为实参

add_num2(10, 20)

四.函数的返回值作⽤

例如:我们去超市购物,⽐如买烟,给钱之后,是不是售货员会返回给我们烟这个商品,在函数中,如果需要返回结果给⽤户需要使⽤函数返回值。

defbuy():return '烟'

#使⽤变量保存函数返回值

goods =buy()print(goods)

4.1 应⽤

需求:制作⼀个计算器,计算任意两数字之和,并保存结果。

defsum_num(a, b):return a +b#⽤result变量保存函数返回值

result = sum_num(1, 2)print(result)

五.函数的说明⽂档

思考:定义⼀个函数后,程序员如何书写程序能够快速提示这个函数的作⽤?

答:注释

思考:如果代码多,我们是不是需要在很多代码中找到这个函数定义的位置才能看到注释?如果想更⽅便的查看函数的作⽤怎么办?

答:函数的说明⽂档

函数的说明⽂档也叫函数的⽂档说明。

5.1 语法

定义函数的说明⽂档

def函数名(参数):"""说明⽂档的位置"""代码

......

查看函数的说明⽂档

help(函数名)

5.2 快速体验

defsum_num(a, b):"""求和函数"""

return a +b

help(sum_num)

六.函数嵌套调⽤

所谓函数嵌套调⽤指的是⼀个函数⾥⾯⼜调⽤了另外⼀个函数。

示例

deftestB():print('---- testB start----')print('这⾥是testB函数执⾏的代码...(省略)...')print('---- testB end----')deftestA():print('---- testA start----')

testB()print('---- testA end----')

testA()

执⾏流程

如果函数A中,调⽤了另外⼀个函数B,那么先把函数B中的任务都执⾏完毕之后才会回到上次 函数A执⾏的位置。

七. 变量作⽤域

变量作⽤域指的是变量⽣效的范围,主要分为两类:局部变量和全局变量。

局部变量

所谓局部变量是定义在函数体内部的变量,即只在函数体内部⽣效。

deftestA():

a= 100

print(a)

testA()#100

print(a) #报错:name 'a' is not defined

变量a是定义在 testA 函数内部的变量,在函数外部访问则⽴即报错。

局部变量的作⽤:在函数体内部,临时保存数据,即当函数调⽤完成后,则销毁局部变量。

全局变量

所谓全局变量,指的是在函数体内、外都能⽣效的变量。

思考:如果有⼀个数据,在函数A和函数B中都要使⽤,该怎么办?

答:将这个数据存储在⼀个全局变量⾥⾯。

#定义全局变量a

a = 100

deftestA():print(a) #访问全局变量a,并打印变量a存储的数据

deftestB():print(a) #访问全局变量a,并打印变量a存储的数据

testA()#100

testB() #100

思考: testB 函数需求修改变量a的值为200,如何修改程序?

a = 100

deftestA():print(a)deftestB():

a= 200

print(a)

testA()#100

testB() #200

print(f'全局变量a = {a}') #全局变量a = 100

思考:在 testB 函数内部的 a = 200 中的变量a是在修改全局变量 a 吗?

答:不是。观察上述代码发现,15⾏得到a的数据是100,仍然是定义全局变量a时候的值,⽽没有返回testB 函数内部的200。综上: testB 函数内部的 a = 200 是定义了⼀个局部变量。

思考:如何在函数体内部修改全局变量?

a = 100

deftestA():print(a)deftestB():#global 关键字声明a是全局变量

globala

a= 200

print(a)

testA()#100

testB() #200

print(f'全局变量a = {a}') #全局变量a = 200

八. 多函数程序执⾏流程

⼀般在实际开发过程中,⼀个程序往往由多个函数(后⾯知识中会讲解类)组成,并且多个函数共享某些数据,如下所示:

共⽤全局变量

#1. 定义全局变量

glo_num =0deftest1():globalglo_num#修改全局变量

glo_num = 100

deftest2():#调⽤test1函数中修改后的全局变量

print(glo_num)#2. 调⽤test1函数,执⾏函数内部代码:声明和修改全局变量

test1()#3. 调⽤test2函数,执⾏函数内部代码:打印

test2() #100

返回值作为参数传递

deftest1():return 50

deftest2(num):print(num)#1. 保存函数test1的返回值

result =test1()#2.将函数返回值所在变量作为参数传递到test2函数

test2(result) #50

九. 函数的返回值

思考:如果⼀个函数如些两个return (如下所示),程序如何执⾏?

defreturn_num():return 1

return 2

result=return_num()print(result) #1

答:只执⾏了第⼀个return,原因是因为return可以退出当前函数,导致return下⽅的代码不执⾏。

思考:如果⼀个函数要有多个返回值,该如何书写代码?

defreturn_num():return 1, 2

result=return_num()print(result) #(1, 2)

注意:

1. return a, b 写法,返回多个数据的时候,默认是元组类型。

2. return后⾯可以连接列表、元组或字典,以返回多个值。

十. 函数的参数

10.1 位置参数

位置参数:调⽤函数时根据函数定义的参数位置来传递参数。

defuser_info(name, age, gender):print(f'您的名字是{name}, 年龄是{age}, 性别是{gender}')

user_info('TOM', 20, '男')

注意:传递和定义参数的顺序及个数必须⼀致。

10.2 关键字参数

函数调⽤,通过“键=值”形式加以指定。可以让函数更加清晰、容易使⽤,同时也清除了参数的顺序需求。

defuser_info(name, age, gender):print(f'您的名字是{name}, 年龄是{age}, 性别是{gender}')

user_info('Rose', age=20, gender='⼥')

user_info('⼩明', gender='男', age=16)

注意:函数调⽤时,如果有位置参数时,位置参数必须在关键字参数的前⾯,但关键字参数之间不存在

先后顺序。

10.3 缺省参数

缺省参数也叫默认参数,⽤于定义函数,为参数提供默认值,调⽤函数时可不传该默认参数的值(注意:所有位置参数必须出现在默认参数前,包括函数定义和调⽤)。

def user_info(name, age, gender='男'):print(f'您的名字是{name}, 年龄是{age}, 性别是{gender}')

user_info('TOM', 20)

user_info('Rose', 18, '⼥')】

注意:函数调⽤时,如果为缺省参数传值则修改默认参数值;否则使⽤这个默认值。

十一. 函数应⽤

11.1 打印图形

1. 打印⼀条横线

defprint_line():print('-' * 20)

print_line()

2. 打印多条横线

defprint_line():print('-' * 20)defprint_lines(num):

i=0while i

print_line()

i+= 1print_lines(5)

11.2 函数计算

1. 求三个数之和

defsum_num(a, b, c):return a + b +c

result= sum_num(1, 2, 3)print(result) #6

2. 求三个数平均值

defaverage_num(a, b, c):

sumResult=sum_num(a, b, c)return sumResult / 3result= average_num(1, 2, 3)print(result) #2.0

python average函数怎么用_python之函数的使用相关推荐

  1. python自定义函数详解_Python自定义函数

    自定义函数 使用def定义函数,例如: def my_abs(x) : if x >= 0 : return x else : return -x 函数可以返回多个值,但是这是假象,实际上函数返 ...

  2. python使用函数的目的_python之函数基本使用

    函数的定义: 函数是一段具有特定功能的.可重用的语句组,用函数名来表示并通过函数名进行功能调用. 使用函数主要有两个目的:降低编程难度和代码重用. python定义一个函数是通过使用def保留字的方式 ...

  3. python class函数报错_Python 的函数是第一类 First-Class 对象

    Python的函数是第一类对象(first-class object).你可以把一个函数复制给变量,或者把函数存储在一个结构中.可以像参数一样把函数传递进另一个函数,还可以从一个函数中返回另一个函数. ...

  4. python函数返回值_Python中函数的返回值示例浅析

    前言: 前面我们介绍了简单的介绍了函数和函数的参数,今天我们来说一下Python中函数的返回值. 函数的返回值:函数运算的结果,需要进一步的操作时,给一个返回值return用来返回函数的结果,如果没有 ...

  5. python入口函数的作用_python之函数中参数的作用域

    学编程究竟学的是什么呢?在写文章的这几天也一直在思考这个问题--恐怕这也是接下来的几年一直会去思考的问题.这个问题的答案也会指导我的方法论,所以索性整顿一下. 现阶段我的回答是,发现需求,然后解决. ...

  6. python函数进阶小结_python之函数进阶

    1. 今日内容 1.1 函数的参数 *的魔性用法 函数形参最终顺序 1.2名称空间 全局名称空间,局部名称空间,内置名称空间 取值顺序与加载顺序 作用域 内置函数:globals() locals() ...

  7. dynamo python修改多个参数_python之函数

    a.sort()没有返回值.而sorted(a)是有返回值的. Python的标准比较运算符:<.<=. > .>=. ==. != 函数用法和底层分析:函数是一个可重用的程序 ...

  8. python调用函数怎么错_python调用函数失败是什么原因

    一.调用函数 Python内置了很多有用的函数,我们可以直接调用. 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数. 也可以在交互式命令行通过help(abs)查看a ...

  9. python中write函数%啥意思_python write( )函数

    (交流学习群 467604262) 在博客(python 本地数据获取   网址:http://blog.csdn.net/sxingming/article/details/51333663)中,我 ...

最新文章

  1. 【电信业务】【原则与规范】SOA 面向服务架构
  2. Python--判断一个字符串是否包含某子串的几种方法
  3. c语言数值运算法和非数值运算法,数据结构(c语言)1.数据结构是一门研究非数值计算的程序设计问题中计算机的 以及它们之间的 _ 和运算等的学科。① A....
  4. 回溯算法n皇后问题_使用回溯算法的N Queen问题和解决方案
  5. tfs sql查询_TFS安装中SQL Server课程
  6. 9 年前他用 1 万个比特币买两个披萨, 9 年后他把当年的代码卖给苹果, 成 GPU 挖矿之父...
  7. [Share]前端开发大众手册(包括工具、网址、经验等)
  8. 【硬核课】最新《图卷积神经网络GCN》2020概述,76页ppt,NTU-Xavier Bresson,纽约大学深度学习课程...
  9. 7. mybatis实战教程(mybatis in action)之八:mybatis 动态sql语句
  10. 为什么 PSP22 对 Polkadot 生态系统很重要
  11. 要管理此计算机上的用户账户,Win10安装软件用户账户控制提示管理员已阻止运行此应用解决方法...
  12. 【高项】第5章 项目范围管理【知识点精华笔记】
  13. win7 定时开关机命令
  14. 电影《龙卷风》主题旋律你一定听过
  15. 图像识别的核心思想是什么!
  16. 合合信息——用智能文字识别技术赋能古彝文原籍数字化
  17. 第一章:2030.5、CSIP、Rule21简介 and 本项目内容介绍
  18. 组合体视图的画图步骤_画组合体三视图的方法和步骤.ppt
  19. 003-photoshop快速去掉图片背景颜色、签名放到指定文档合成图片
  20. Python在线聊天室(windows)

热门文章

  1. 超实用小技巧,iPhone如何除去APP的开屏广告?
  2. 基于Zemax平台的激光扩束系统的设计
  3. Kotlin 仿微信长按列表弹出菜单(动画)
  4. 计算机视觉 | 哥大读博五年总结(一)
  5. Forest一款轻量级HTTP客户端框架
  6. matlab 修正后阿尔法,修正后的阿尔法均值滤波器alpha-trimmedmeanfilter.ppt
  7. python模拟正方教务系统登录
  8. 社保卡当银行卡用如何随时知道钱的多少?
  9. java 渐变橡皮擦_android实现图片橡皮擦和快速染色功能
  10. 企业为什么会陷入财务危机?财务危机案例启示录