1、什么是函数:函数是带名字的代码块,用于完成具体的工作。 需要在程序中多次执行同一项任务时,你无需反复编写完成该任务的代码,而只需调用执行该任务的函数。

2、定义函数,函数定义使用关键字def,直接附上示例代码:

#函数定义
def test():print("测试函数定义");#调用函数
test();

其中定义函数test(),方法体就需进行代码的缩进,调用函数直接用test()即可,运行后代码如下:

3、向函数传递信息,我们可以向函数传递信息,只需在函数里带个参数,然后调用函数的时候传递过去即可,示例代码如下:

#向函数传递信息
def test(msg):print("你想说的是:" + msg);#调用函数
msg = input("请输入你想说的话:");
test(msg);

运行后如下图所示:

4、实参和形参概念,通过代码来解析:

#向函数传递信息
def test(msg):print("你想说的是:" + msg);#调用函数
test('Hello Python!');

其中在定义函数的时候带了个msg参数,这个msg变量就是形参,函数完成其工作所需的一项信息。其中后面调用函数时,'Hello Python!'便为实参,实参是调用函数时传递给函数的信息。我们调用函数时,将要让函数使用的信息放在括号内。所以'Hello Python!'这个实参传递到函数里,并存储到形参msg变量里面。

5、传递实参,鉴于函数定义中可能包含多个形参,因此函数调用中也可能包含多个实参。向函数传递实参 的方式很多,可使用位置实参,这要求实参的顺序与形参的顺序相同;也可使用关键字实参,其中每个实参都由变量名和值组成;还可使用列表和字典。

(1)、位置实参,你调用函数时,Python必须将函数调用中的每个实参都关联到函数定义中的一个形参。为此, 简单的关联方式是基于实参的顺序。这种关联方式被称为位置实参。 其中位置实参的顺序很重要,不然参数传递会出现一些意外的效果,函数是可以调用多次的。示例代码如下:

#传递实参,位置实参示例代码def test(name,msg):print("你想对" + name + "说的是:")print(msg + "\n");#多次调用函数
test('林梓然','我爱你,因为我爱我自己');
test('大佬','苟富贵,勿相忘');#实参顺序调换之后,意义就不一样了,所以顺序很重要
test('苟富贵,勿相忘','大佬');

运行后如下图所示:

(2)、关键字实参,关键字实参是传递给函数的名称—值对。你直接在实参中将名称和值关联起来了,因此向函数传递实参时不会混淆。关键字实参让你无需考虑函数调用中的实参顺序,还清楚地指出了函数调用中各个值的用途。 改下上面的代码:

#传递实参,关键字实参示例代码def test(name,msg):print("你想对" + name + "说的是:")print(msg + "\n");#实参顺序调换之后,但使用了关键字实参
test(msg='苟富贵,勿相忘',name='大佬');

运行后如下图所示:

注:关键字实参的顺序无关紧要,因为Python知道各个值该存储到哪个形参中。使用关键字实参时,务必准确地指定函数定义中的形参名。

(3)默认值,在实参传递到形参的时候,如果实参里没有指定相关的值,可以在形参里指定其默认值,如果实参里指定了相关的值,形参也指定默认值了,就只会读取实参里传递给形参的值,不会读取默认值。示例代码如下:

#传递实参,默认值示例代码def test(name='林哈皮',msg='一起哈皮'):print("你想对" + name + "说的是:")print(msg + "\n");#实参无值传递,则全部使用形参里的默认值
test();#实参传递name的值,则形参里的name的默认值不起作用
test(name='陈哈啤');

运行后如下图所示:

(4)、等效的函数调用,可混合使用位置实参、关键字实参和默认值,通常有多种等效的函数调用方式。示例代码如下:

#传递实参,等效的函数调用def test(name,msg='一起哈皮'):print("你想对" + name + "说的是:")print(msg + "\n");test('林小熊');
test(name='大哈皮');
#test(msg='哈皮好玩吗');这里不符合位置实参的顺序,所以一运行的话会报下面的错误,这里注释这一行代码
#TypeError: test() missing 1 required positional argument: 'name' test()丢失了一个要求的位置实参'name'
test(name='陈哈啤',msg='哈啤你值得拥有');
test(msg='哈啤你知道我在等你吗',name='李哈啤');

运行后如下所示:

(5)、避免实参错误,如果出现实参错误时,Python解释器会traceback指出了问题出在什么地方,上面一个代码示例注释的也算一个,下面给出另外两个简单的示例代码:

示例代码一,传递实参时参数名写错:

#传递实参,实参传递错误问题def test(name,msg='一起哈皮'):print("你想对" + name + "说的是:")print(msg + "\n");test(nam='林梓然');

运行后如下,Traceback就提出第7行,test()函数得到一个意想不到的关键字参数“nam”:

示例代码二:

#传递实参,实参传递错误问题def test(name,msg):print("你想对" + name + "说的是:")print(msg + "\n");test();

运行后如下图所示,test()丢失了2个必要的位置参数:'name'和'msg':

以上内容仅供大家学习参考,谢谢!

Python学习笔记之函数(一)相关推荐

  1. Python学习笔记:函数(Function)

    Python学习笔记:函数(Function) 一.函数基本概念 函数是Python里组织与重用代码最重要的方法.一般来说,如果你期望多次重复相同或相似的代码,写一个可重用的函数可能是值得的.函数通过 ...

  2. Python学习笔记12_函数

    Python学习笔记12_函数 文章目录 Python学习笔记12_函数 1.函数定义 2.函数调用 3.函数的参数 3.1.可更改对象和不可更改对象参数 3.2.必需参数(位置参数) 3.3.关键字 ...

  3. Python学习笔记——一些函数

    本文对应头歌上的Python练习:https://www.educoder.net/paths/pn7qklv9 基础知识1: input( )函数 input()函数从控制台获得用户输入,无论用户在 ...

  4. 小甲鱼python003答案_小甲鱼:Python学习笔记003_函数

    >>> # 函数 >>> def myFirstFunction(params1,params2...): print("这是我的第一个函数!" ...

  5. Python学习笔记系列——函数

    今年下半年的计划主要是Python和Mysql了,公司不方便看书和视频,就照着廖雪峰的Python网站开始看了.以下纯为个人笔记记录,若是想系统学习的小伙伴还是看这里的好一些,毕竟系统.https:/ ...

  6. Python学习笔记:匿名函数

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  7. Python学习笔记:函数

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  8. python学习笔记三一 函数学习

    函数学习 range函数 •生成有序的序列 •生成数字队列可以定制 # range函数案例1 # 生成一个从1到10的数字序列 # range的生成序列的两个面数字是左包括,右不包括(如下所示只包括1 ...

  9. Python学习笔记之函数(四)

    1.传递任意数量的实参,可以在形参的参数底下加个 * 符号,在我们预先不知道要函数要接受多少实参的时候,就可以使用这种方式,函数就可以从调用语句中收集任意数量的实参. 示例代码如下: #传递任意数量的 ...

  10. Python学习笔记之函数(二)

    一.函数返回值 1.什么是返回值:函数返回的值被称为返回值.在函数中,可使用return语句将值返回到调用函数的代码行.这样,我们可以在函数方法体下实现一些小模块的功能,并返回,从而简化主程序的代码. ...

最新文章

  1. iOS - UnitTests 单元测试
  2. 得力人脸识别考勤机密码设置_百度大脑人脸识别公有云日均调用量过亿 成为业内第一...
  3. go中NOSQL数据库操作
  4. 2021-10-11 程序人生 -感想随笔
  5. {WP7/WP8·获取屏幕大小}
  6. acm java 类库_ACM java入门和基本技巧
  7. react-native 第三方库
  8. 萌新的Python练习菜鸟100例(十八)求s=a+aa+aaa+aaaa+aa...a的值
  9. PowerDesigner 16.5 安装图解 与 快速入门
  10. linux 安装vlc源码包,linux Centons 6.5 下yum安装vlc
  11. 各省简称 拼音 缩写_中国省市县地区首字母缩写
  12. 使用Google搜索引擎的10个搜索技巧
  13. centos 7.6编译安装nginx
  14. python flask-sqlalchemy flask-marshmallow基本使用
  15. C++ search()函数用法详解(深入了解,一文学会)
  16. Single Channel Speech Enhancement Using Temporal Convolutional Recurrent Neural Networks
  17. 孟岩所说的革命到底是什么?
  18. marvelous designer 10安装使用教程(附快捷键)
  19. Axon 4.4 中文版文档(十四)
  20. MKL_THREADING_LAYER=INTEL is incompatible with libgomp.so.1 library

热门文章

  1. vue中$watch源码阅读笔记
  2. Shank的大步小步算法(Shank‘s Baby-Step-Giant-Step Algorithm)
  3. 双语学习xml系列----之一 什么是xml?(第一小节)
  4. 用css3实现Social Media Buttons
  5. PyTorch入门(二)--实现简单神经网络
  6. C语言动态存储分配函数
  7. 7-5 列出连通集 (6 分)
  8. 基于顺序存储结构的图书信息表的新图书的入库(C++)
  9. 计算机网络 HTTP工作机制 TCP三次握手四次挥手 TCP滑动窗口
  10. MySQL学习记录—常用语句集