1:关键字

python中,自定义函数使用def关键字,后面加函数名和参数列表,如下:

def 函数名(参数列表):函数体

如果不需要传参,括号里就不用填,注意,python中不需要定义变量类型。自定义函数除了函数的功能是我们自己编写代码实现的外,其他的与python中的函数并无差别,所以在调用函数时,直接使用函数名就行。眼见为实,来看下面的栗子。

 def hello():print("hello world!!")hello()
#输出如下
hello world!!

现在我们就自定义了一个简单的函数,他的功能是输出“hello world!!”,值得注意的是,python中并没用大括号({})划分代码块,python中靠的是相同的缩进,所以在写python时一定要注意一块代码中的缩进

2:自定义函数中的变量

在自定义函数时,我们难免会使用到变量,这就关系到了python的局部变量和全局变量,做一个简单的解释,局部变量就是在函数内部定义的变量,全局变量就是在函数内部定义的变量。在函数内部可以访问外面的全局变量,但不可以对全局变量进行修改,但在函数外部,不可以访问局部变量。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
>>> a=3
>>> def test():
...     print(a)            #函数内访问全局变量
...
>>> test()
3
>>> def test4():
...     a=a+1
...     print(a)        #函数内修改全局变量会报错
...
>>> test4()
Traceback (most recent call last):File "<stdin>", line 1, in <module>File "<stdin>", line 2, in test4
UnboundLocalError: local variable 'a' referenced before assignment
>>>
>>> def test3():
...     c=5
...
>>> c            #外部访问局部变量也会报错
Traceback (most recent call last):File "<stdin>", line 1, in <module>
NameError: name 'c' is not defined

其实无论是在外部访问局部变量还是在函数内修改全局变量都是有方法的,大家可以百度一下。

3:带参数的自定义函数

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
>>> def test5(m,n):
...     print(m*n)
...
>>> test5(2,3)
6
>>>

我们定义了一个带参数的函数,他的功能是计算m*n的值,如果传入的值无法进行运算,则会报错

4:参数的传递

python参数的传递分为四种情况:必须参数、关键字参数、默认参数、不定长参数。

必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样,上面的test5()函数的两个参数就是必须参数,如果我们只传入一个值,就会报错。如下:

>>> test5(8)
Traceback (most recent call last):File "<stdin>", line 1, in <module>
TypeError: test5() missing 1 required positional argument: 'n'
>>>

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

>>> def test6(name,age):
...     print(name)
...     print(age)
...
>>> test6(age=50,name="liang")
liang
50
>>>

参数的顺序是name、age,虽然我们先传入了age,但因为在传入时带上了关键字,所以也不会报错。

默认参数调用函数时,如果没有传递参数,则会使用默认参数。以下实例中如果没有传入 age 参数,则使用默认值:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
>>> def test7(name,age=50):
...     print(name)
...     print(age)
...
>>> test7('liang')
liang
50
>>> test7('liang',100)
liang
100
>>>

第一次调用时只传入了name参数,所以age参数使用了默认值,第二只调用时对age参数也传入了值,所以胡覆盖掉默认的50.

值得注意的是:在默认使用参数,第一个默认参数后的所有参数都要是默认参数,就是说,如果你把第二个参数设为默认,那么后面的第三第四…个参数都要是默认的,要不会出现“non-default argument follows default argument”错误.

不定长参数存放所有未命名的变量参数。比如你在函数中值定义了两个参数,而在调用时你需要传入四个或者更多,那么从第三个开始的参数都会被存放到不定长参数中。

>>> def test8(n,*var):
...     print(n)
...     print(var)
...
>>> test8(1,2,3,4,5,6)
1
(2, 3, 4, 5, 6)
>>>

第一个参数被传递给n,后面都以元祖的形式存放在var这个不定长参数中。

python的自定义函数相关推荐

  1. python编写自定义函数计算一维numpy数组中与指定目标数值最接近(距离最近)的数值(find closest value in numpy array to a certain value)

    python编写自定义函数计算一维numpy数组中与指定目标数值最接近(距离最近)的数值(find closest value in numpy array to a certain value) 目 ...

  2. python使用del保留字定义一个函数-python中自定义函数的保留字是

    基本使用(推荐学习:Python视频教程)def function_name(parameters): expressions Python使用def开始函数定义,紧接着是函数名,括号内部为函数的参数 ...

  3. python如何自定义函数_python如何自定义函数_后端开发

    c语言特点是什么_后端开发 c语言特点是:1.语言简洁.紧凑,使用方便.灵活:2.运算符丰富:3.数据结构丰富,具有现代化语言的各种数据结构:4.具有结构化的控制语句:5.语法限制不太严度格,程序设计 ...

  4. python:自定义函数,通过姓名及电话查询人员信息及添加新人员信息表(列表+字典)

    python:自定义函数,通过姓名及电话查询人员信息及添加新人员信息表(列表+字典) def zmz(c):s=[{'姓名':'','电话':'','部门':'','小组':'','职务':''}] ...

  5. python编写自定义函数计算约登值(约登指数、Youden Index)、寻找最佳阈值(threshold、cutoff)、可视化ROC曲线并在曲线中标记最佳阈值及其数值标签

    python编写自定义函数计算约登值(约登指数.Youden Index).寻找最佳阈值(threshold.cutoff).可视化ROC曲线并在曲线中标记最佳阈值及其数值标签 目录

  6. python设计自定义函数_python

    该语言中可方便的自定义函数,并调用所创建的函数.编程中,其有着多种函数形式,包括有无参数.预设参数值等,非常灵活.通过创建函数,可以解决部分代码重复调用问题,非常方便.接下来介绍,如何创建及引用自定义 ...

  7. 使用()关键字来创建python的自定义函数_17.python自定义函数

    标签: 什么是函数,函数说白了就是将一系列代码封装起来,实现代码的重用. 什么是代码重用? 假设我有这样的需求: 但是我还是觉得太麻烦了,每次想吃饭的时候都要重复这样的步骤.此时,我希望有这样的机器: ...

  8. 第5天-[21天学Python]-Python中自定义函数及调用的方法

    本章内容主要包括: 声明函数 调用自定义函数 变量作用域 各种类型的函数参数应用 使用lambda建立匿名函数 Python其他常用内建函数 1.使用函数 1.1 声明函数 在python中,函数必须 ...

  9. Python中自定义函数的方法

    在Python编程中,可以使用已经定义好的函数,也可以自定义函数实现某些特殊的功能. 1 自定义函数的语法 在Python中,自定义函数的语法如下所示 def 函数名(参数):函数体 其中,def是关 ...

最新文章

  1. 知乎热议!一个博士生接受怎样的训练是完整的科研训练?
  2. c++中c_str()函数
  3. 启用了不安全的 HTTP 方法
  4. 第 1 章 MybatisPlus 快速入门
  5. Promise/A+规范
  6. Vue小案例 之 商品管理------添加商品
  7. 嵌入式可视化编程软件选哪个好?(可视化编程平台介绍、测评与选择)【Scratch、Mind+、Mixly】
  8. 在Excel中优化跨页的合并单元格,避免打印后产生空白
  9. 文件(图片)上传保存与展示
  10. .tar.lz压缩包解压
  11. 汉字如何造就世界上最伟大的文化整体
  12. python 软件包_以正确的方式管理Python软件包
  13. JAVA-面向过程编程
  14. 美国计算机专业的大学,美国计算机专业什么大学好
  15. python绘制heart
  16. 2011年2月14日 业界新闻摘要
  17. 一男老师每日百词转载+连载(4)
  18. matlab上机考试怎么考,MATLAB上机作业
  19. gitlab下载指定文件/文件夹
  20. 高德地图——查询天气

热门文章

  1. 使用鲁大师检测旧电脑信息如下:
  2. 颜色偏差裙子测试软件,裙子到底是白金还是蓝黑?你的大脑在捣鬼
  3. 亿万级别商品详情页面设计
  4. wamp环境下如何安装composer?
  5. 构筑立体世界,AR Engine助力B站会员购打造沉浸式营销
  6. wap.php区别,WAP与PHP程序设计之基础篇
  7. Python函数-int()
  8. 小米副总裁崔宝秋离职 原掌管的清河大学并入人力资源部
  9. Android基础-Facebook Rebound 弹性动画库 源码分析
  10. gh-ost的原子rename