函数

什么是函数?函数是带名字的代码块,用于完成具体的工作。写出一个函数后,就可以一直调用。

定义函数,函数的基本组成:

1.1 向函数传递参数

向函数中传递任意参数,这样打印出的结果就可以根据自己的选择,做出改变。即是下一节讲到的形参

1 #向函数传递信息

2

3 defgreet_user(username):4 """显示简单的问候语"""

5 print("hello," + username + "!")6

7 greet_user('python')

打印结果:

hello,python!

2、形参与实参

什么是形参?顾名思义,形参就是形式上的参数,可以理解为数学的X,没有实际的值,通过别人赋值后才有意义。相当于变量。

什么是实参?顾名思义,实参就是实际意义上的参数,是一个实际存在的参数,可以是字符串或是数字等。

以上面的例子介绍下什么是形参和实参:

就是在函数名中定义一个形参,然后在函数调用的时候,给函数名中的形参传递一个实际的参数,这个就变为实参。这样的话执行函数体内容时就会执行对应的操作。

注意:传入实参时,一定要加上引号,否则会报错。

greet_user(python)

NameError: name'python' is not defined

3、传递实参(位置实参、关键字实参、默认值、等效的函数调用、避免参数错误)

使用背景:

函数定义中可能包含多个实参,而向函数传递实参的方式有很多,位置实参和关键字实参等。

3.1、位置实参

调用函数时,必须将函数调用中的每个实参都关联到函数定义中的一个形参。关联方式是基于实参的顺序,这被称作位置实参

1 #位置实参

2 defdescribe_pet(animal_type,pet_name):3 """显示宠物信息"""

4 print("\nI have a" + animal_type + ".")5 print("My" + animal_type + "'s name is" + pet_name.title() + ".")6

7 describe_pet('dog','harry')

执行结果:

I have a dog.

My dog's name is Harry.

3.1.1 可以多次调用函数

1 defdescribe_pet(animal_type,pet_name):2 """显示宠物信息"""

3 print("\nI have a" + animal_type + ".")4 print("My" + animal_type + "'s name is" + pet_name.title() + ".")5

6 describe_pet('dog','harry')7

8 #可以多次调用

9 describe_pet("cat",'coo')10 describe_pet('pig','echo')

执行结果:

1 I have a dog.2 My dog's name is Harry.

3

4 I have a cat.5 My cat's name is Coo.

6

7 I have a pig.8 My pig's name is Echo.

3.1.2 实参的位置也很重要,本末倒置可不好

describe_pet('coo','dog')

执行结果:

I have a coo.

My coo's name is Dog.

3.2、关键字参数

关键字实参 是传递给函数的名称:值对。直接将形参与实参关联起来,这样就不存在顺序问题(不会像上一个例子一样出现搞笑的结果)。

示例:

1 2、关键字实参2 defdescribe_pet(animal_type,pet_name):3 """显示宠物信息"""

4 print("\n关键字实参示例:")5 print("I have a" + animal_type + ".")6 print("My" + animal_type + "'s name is" + pet_name.title() + ".")7

8 describe_pet(animal_type="dog",pet_name="harry")

执行结果:

关键字实参示例:

I have a dog.

My dog's name is Harry.

3.3、默认值参数

在编写函数时,可以给每个形参设定一个固定值,即为默认值。

在调用函数给形参提供实参时,就使用实参值,否则,使用实参的默认值,因此,给形参指定默认值后,在函数调用中省略相应的实参。

1 #默认值参数

2 def describe_pet(pet_name,animal_type = 'dog'):3 """显示宠物信息"""

4 print("\n关键字实参示例:")5 print("I have a" + animal_type + ".")6 print("My" + animal_type + "'s name is" + pet_name.title() + ".")7

8 describe_pet(pet_name="harry")

执行结果:

1 默认值实参示例:2 I have a dog.3 My dog's name is Harry.

注意点:这里把pet_name 放在了前面,原因是在这里还是把它当做是位置参数,如果形参与实参的位置不对应,还是会报错

如果不想使用默认值参数,也可以在调用函数时,将形参定义一个值,这样函数名中的形参默认值就会被忽略。

1 describe_pet(animal_type="cat",pet_name="harry")

3.4、等效的函数调用

什么叫等效的函数调用,即在函数调用时,无论是使用位置参数还是关键字参数、默认值参数、等到的结果都是一样的,这样的方式就是等效调用。

示例:

1 #函数等效调用

2 #一个名为harry 的小狗

3 def describe_pet(pet_name,animal_type = 'dog'):4 describe_pet(pet_name="harry")5 describe_pet("harry")

3.5、避免实参错误

意思就是在进行参数调用时,要给形参传一定的实参。否则会报

最后,欢迎关注我的公众号,这里分享Python/Java技术,自动化、以及认知感悟。

python函数调用时的实参和形参之间传递_python 函数(实参与形参、传递参数)...相关推荐

  1. python形参和实参_python函数实参和形参

    形参: 在定义函数阶段定义的参数称之为形式参数,简称形参,相当于变量名 实参: 在调用函数阶段传入的值称之为实际参数,简称实参,相当于变量值 形参与实参的关系: 1.在调用阶段,实参(变量值)会绑定给 ...

  2. python函数调用时等价_python 之 函数

    s = 'hello' # print(len(s)) # len() 内置函数:python提前给你的写好了的函数 你直接调用即可 # # n = 0 # for i in s: # n += 1 ...

  3. python函数调用时所提供的参数可以是常量_元组的元素不能修改,一般作为参数传递给函数调用,或是从函数调用除获得参数时,保护其内容不被外部接口修改和破坏。( )_学小易找答案...

    [单选题]设 且 存在,则 ________ [单选题]下列论断中,( )是准确的 [单选题]当常数 --时,曲线 与 相切 [判断题]在列表中可以嵌套另一个列表.( ) [填空题]常用的编程思想有面 ...

  4. python 函数调用列表_在项目列表上调用一个函数的最简洁方法 - python

    在python 2中,我使用map将函数应用于多个项目,例如,删除所有与模式匹配的项目: map(os.remove,glob.glob("*.pyc")) 当然我忽略了os.re ...

  5. python调用函数_Python 函数中的 4 种参数类型

    作者:小小程序员 链接:https://zhuanlan.zhihu.com/p/89538123 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 在调用函数时,通常 ...

  6. python中可选参数和可变参数_Python函数中的可变长参数详解

    一.Python函数中的参数 1.使用python的函数时,有参数类别,比如位置参数.关键字参数.可变长参数 2.位置参数.关键字参数很好理解,关键是可变长参数经常能见到,但是一直没有搞懂是什么意思 ...

  7. python 值传递还是引用传递_python函数是值传递还是引用传递

    在网上看python的基础知识,看到函数这一章的时候,看到这么一段话: 所有参数(自变量)在Python里都是按引用传递.如果你在函数里修改了参数,那么在调用这个函数的函数里,原始的参数也被改变了. ...

  8. Python花式编程案例集锦(9):sorted()函数中消失的cmp参数

    明天开启全国巡讲Python模式,连续8场20天讲课,外加路上来回大约16天,这个假期有的忙了.所以接下来的一段时间里不一定能像以前更新的那么频繁,我尽量. 在很久很久很久以前,公众号曾经推送过这样一 ...

  9. python函数调用时所提供的参数可以是变量吗_Python函数一章,关于变量参数调用(何时使用*)记录,pytho,章节,可变,的,什么,时候...

    关于可变参数调用 def bmi(*person): for list_person in person: for item in list_person: - 这个,调用时,不需要带* bmi(li ...

最新文章

  1. 【怎样写代码】对象克隆 -- 原型模式(四):浅克隆与深克隆
  2. Android Studio 从入门到精通
  3. 腾讯的一笔画游戏--巧妙解法
  4. 如何在Windows中快速轻松地将文件发送到SkyDrive
  5. java arraylist 重复_Java中ArrayList去除重复元素
  6. div下图片自适应解决方法
  7. 互联网晚报 | 12月6日 星期一 | 荣耀线下门店超3万家;鸿蒙系统明年正式登陆欧洲;凯撒旅业与众信旅游终止合并...
  8. docker前后端分离_Docker分离模式介绍
  9. Java生产环境下性能监控与调优详解 第7章 JVM层GC调优
  10. Java学习日志(四)
  11. Sky公司的爱丁堡数据中心的能源效率纳入欧盟能效标准
  12. anaconda简单解决PackagesNotFoundError: The following packages are not available from current channels:
  13. Spring Cloud Hystrix服务容错 (学习总结)
  14. Visio软件方案UML选择
  15. 抖音推荐的背后原理——大数据+推荐
  16. 《HelloGitHub》第 69 期
  17. 大数据scala面试题汇总
  18. Burp的安装配置与启动
  19. Mac上如何输入数学符号??
  20. 美团移动端UI一致性解决方案探索

热门文章

  1. wxWidgets:wxSplitterWindow类用法
  2. wxWidgets:wxRadioBox类用法
  3. wxWidgets:wxAnimationCtrl类用法
  4. boost::test模块具有自定义初始化测试的共享库使用变体
  5. boost::proto模块实现简单的算术表达式求值器的测试程序
  6. 2021-06-12
  7. boost::log模块使用属性关键字的示例
  8. boost::fusion::unfused用法的测试程序
  9. boost::error_info的用法测试程序
  10. Boost:bimap双图信息的测试程序