澳门新萄京Python 学习笔记 – 函数

澳门新萄京Python 学习笔记 – 函数

  一般在函数的定义中,会有1类变量—形参,它是函数完毕其行事的1项音信。实参往往是调用函数时传递给函数的音讯。我们在调用函数时,就要让函数使用的音信放在括号内。举个例子定义叁个函数def
greet_user(username):,在调用greet_user(‘jeese’)中,将实参’jeese’传递给了函数greet_user(),这几个值被积攒在形参username中。

第八章:

  1. 读书编写函数 。

函数是带名字的代码块,用于达成具体的劳作。要施行函数定义的一定任务,可调用该函数。

优势:
需求在程序中往往实行同1项任务时,你不需求反复编写成功该任务的代码,而只需调用实践该职分的函数,让Python运营个中的代码。你将发掘,通过选拔函数,程序的编写、阅读、测试和修补都将更易于。

二.
读书向函数字传送递信息的艺术。学习如何编写主要任务是展现消息的函数,还有用于处理多少并赶回一个或1组值的函数。

3 习怎么样将函数存款和储蓄在被称呼模块
的单身文件中,让主程序文件的组织越来越有序。

8.1定义函数

def greet_user():

def告诉诉Python你要定义3个函数;
greet_user函数名;()能够放入函数新闻,也足以是空的;后边紧跟着冒号

“”“文书档案字符串”“”,Python使用它们来扭转有关程序中等学校函授数的文书档案。

调用函数:可依次钦点函数名以及用括号括起的必需音信。

函数是带名字的代码块,用于完成具体的专门的工作。必要再程序中数15遍施行同壹项职责时,能够调用实施该职务的函数来拍卖。通过采用函数,程序的编写、阅读、测试和修补都将更易于。

一、函数是哪些


计算机语言中的函数是类比于数学中的函数演化来的,可是又有所差别。前边的文化中我们学会了接纳基础语法和流程序调节制语句貌似也能管理局地复杂的主题素材,可是相对于一般的大方重复性的操作大家就不可能用事先的逻辑格局来缓慢解决了,那时候就必要贰个得以总结这个重复性操作的统一代码来描述其特征来完结,所以函数是团体好的,可重复使用的,用来兑现单壹,或相关联成效的代码段。

定义:函数是值将一组语句集结通过3个名字封装起来,要想进行那几个函数,只需调用其函数名就能够。

优点:在化解难点时,使用函数有广大功利,最爱抚的功利就是:提升代码的重用性和可读性,早先时期扩张方便

  传递实参有很种种艺术,下边了然一下他们。

8.一.壹 向函数传递音信

函数定义def greet_user() 的括号内增加username 。

过在此处加多username ,就可让函数接受你给username 钦点的别的值。

澳门新萄京 1

调用greet_user(),向它传递jesse

 

二、函数的概念

壹、地点实参

8.1.2 形参 实参

变量username 是三个形参 ——函数完毕其行事所需的1项新闻。

代码greet_user(‘jesse’) 中,值’jesse’ 是3个实参 。

1.定义函数

2.1、格式

def 函数名:    函数体

函数定义的简单规则:    函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。    任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。    函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。    函数内容以冒号起始,并且缩进。    return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

举个栗子,轻便认知一下函数:

def greet_user():        """显示最简单的问候语"""    print("Hello,"greet_user()

   在调用函数时,每种实参要与概念中的形参关联起来。最简便的关系格局正是根据实参的顺序,那种关系情势就称为地方实参。实参的相继要与定义中的形参顺序一致。

八.二 传递实参

澳门新萄京 2

鉴于函数定义中大概带有多少个形参,由此函数调用中也说不定含有多个实参。

向函数字传送递实参的主意大多,可采取职责实参
,那须求实参的次第与形参的顺序同样;也可接纳重视字实参
,当中每一种实参都由变量名和值组成;还可采取列表和字典。

 

上面那三行代码正是一个大致的函数实例,def是必需的,用于定义函数,greet_user是概念的函数名,()

括号内建议函数为做到其职务急需怎么着的信息,也正是参数,可是此地它不必要任何音信就会造成其行事,因而括号是空的(纵然如此,括号也少不了)。末了,定义以冒号结尾。

中等的缩进行整合了函数体。这里是函数的首要,全部的操作都以概念在那边的。上面包车型地铁评释处的公文是被称之为文书档案字符串
( docstring )的注释,描述了函数是做如何的。文书档案字符串用3引号括起,
Python 使用它们来扭转有关程序中等高校函授数的文书档案。

greet_user()
那是对上面定义好的函数的调用。Python中要调用函数,可依次内定函数名以及用括号括起的必备音信-参数,上边的函数因为从没概念参数所以就无需实行参数的传递,直接加括号调用。

1 def describe_pet(animal_type,pet_name):
2     print('\nI have a '+animal_type+'.')
3     print('My '+animal_type+"'s name is "+pet_name.title()+'.')
4 
5 describe_pet('hamster','harry')

8.贰.壹 地点实参

调用函数时,Python必须将函数调用中的每种实参都提到到函数定义中的2个形参。

澳门新萄京 3

a
能够调用参数多次:在函数中,可依赖须求使用自便数量的岗位实参,Python将按梯次将函数调用中的实参关联到函数定义中相应的形参。

b 请确认函数调用中实参的逐条与函数定义中形参的逐条1致。

def greet_user():

2.贰、函数的命名规则

函数名必须以下划线或字母开头,可以包含任意字母、数字或下划线的组合。不能使用任何的标点符号;函数名是区分大小写的。函数名不能是保留字。

  在调用describe_pet()函数时,要依据形参的一一提供三个动物的体系和多个名字。。平常依照要求能够频仍调用。

8.二.二 关键字实参

一言九鼎字实参
是传递给函数的名目—值对。直接在实参司令员名称和值关联起来,不需求思量函数调用中的实参顺序,还清楚地建议了函数调用中相继值的用处。

澳门新萄京 4

函数describe_pet()
依旧原来那么,但调用那么些函数时,向Python鲜明地建议了种种实参对应的形参。务必正确地钦定函数定义中的形参名。

        “””彰显轻松的问候语”””

3、参数的传递

  运行结果:

8.2.3 默认值

编写函数时,可给各类形参钦赐默许值。

。在调用函数中给形参提供了实参时,Python将运用钦命的实参值;不然,将动用形参的默许值。

给形参内定默许值后,可在函数调用中总结相应的实参。

澳门新萄京 5

形参animal_type 钦点了暗许值,
函数调用中只含有多个实参——宠物的名。Python照旧将那个实参视为地点实参,若是函数调用中只含有宠物的名字,那个实参将涉及到函数定义中的第3个形参。所以放在开头。

显式地给animal_type 提供了实参,因而Python将忽略那个形参的默许值。

        print(“Hello!”)

三.一、形参和实参

举个栗子:

def greet_user:    print("Hello,"+username.titlegreet_user('jack')

地方的代码片段,定义函数greet_user,需求向函数中传递参数,在上头的函数中名后的括号中的username正是形参,调用函数时给函数字传送入的值’jack’正是实参。实参将用户传递的值传递给形参,形参在传递进函数体中张开连锁运算执行。

形参:方式参数,不是实在存在,是虚构变量。在概念函数和函数体的时候使用形参,指标是在函数调用时接到实参(实参个数,类型应与实参1一对应)

实参:骨子里参数,调用函数时传给函数的参数,能够是常量,变量,表达式,函数,传给形参

区分:形参是编造的,不占用内部存款和储蓄器空间,形参变量唯有在被调用时才分配内部存款和储蓄器单元,实参是2个变量,占用内部存储器空间,数据传送单向,实参传给形参,不能够形参传给实参。

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

小心  使用暗中同意值时,在形参列表中务必先列出从未默许值的形参,再列出有暗中认可值的实参。那让Python还能够够科学地解读地方实参。

 

3.二、地方实参

鉴于函数定义中只怕带有四个形参,因而函数调用中也说不定含有三个实参。向函数字传送递实参的艺术多数,可利用地方实参
,那要求实参的逐条与形参的逐条一样;也可接纳首要字实参
,个中每种实参都由变量名和值组成;还可使用列表和字典。

调用函数时, Python
必须将函数调用中的每一个实参都关系到函数定义中的2个形参。为此,最简易的涉及形式是依赖实参的次第。那种关涉格局被喻为地方实参。

文字描述太多比不上举个栗子:看二个展现宠物消息的函数。那一个函数提议三个宠物属于哪个种类动物以及它叫什么名字

def describe_pet(pet_name,animal_type):    print("\nI have a " + animal_type)    print("My " + animal_type + "'s name is " + pet_name.titledescribe_pet('Hellen','dog')describe_pet('dog','Hellen')  # 错误的位置参数传递

上述代码的运维结果为:

C:\Python37\python3.exe D:/pythoncode/Exercise/Exer8/Exer8-2.pyI have a dogMy dog's name is Hellen# 参数位置传递错误  结果也不一样I have a HellenMy Hellen's name is DogProcess finished with exit code 0

分析:上述代码上五回实参的传递因为职分不相同而收获分歧的结果,第贰个显著不是我们想要的结果,所以在进展实参传递时肯定函数调用中实参的逐一与函数定义中形参的逐1一致。

  假设调用函数中提交的实参顺序和概念中的形参差别,就能够出现让人步履蹒跚的结果。如下:

8.贰.4 如出一辙的函数调用

出于可混合使用地点实参、关键字实参和暗中同意值,平日有三种同1的函数调用格局。

describe_pet(‘harry’, ‘hamster’)

describe_pet(pet_name=’harry’, animal_type=’hamster’)

describe_pet(animal_type=’hamster’, pet_name=’harry’)

都行。

greet_user()

三.3、关键字实参

重大字参数是向形参传递–值对,关键字实参传递让我们不要求思考函数调用中的实参顺序,还掌握地提出了函数调用中相继值的用处。

举个栗子:

def describe_pet(pet_name,animal_type):    print("\nI have a " + animal_type)    print("My " + animal_type + "'s name is " + pet_name.title#  关键字传参不必考虑位置describe_pet(pet_name='Hellen',animal_type="dog") describe_pet(animal_type="dog",pet_name='Hellen')

上述代码的运维结果为:

C:\Python37\python3.exe D:/pythoncode/Exercise/Exer8/Exer8-2.pyI have a dogMy dog's name is HellenI have a dogMy dog's name is HellenProcess finished with exit code 0

分析:地点的那个事例是非同常常字实参传递,使用首要字参数允许函数调用时参数的次第与注解时不雷同,因为
Python 解释器能够用参数名匹配参数值。

澳门新萄京 6

瞩目:假如首要字参数和岗位参数一同现身时,关键字参数是无法写在职分参数前面的

1 describe_pet('harry','hamster')

  I have a harry.
2 My harry's name is Hamster.

8.二.伍 幸免实参错误

Python读取函数的代码,并建议我们供给为啥以形参提供实参。

假定提供的实参太多,将现出类似的traceback,援救您担保函数调用和函数定义相配。

 

三.3、私下认可参数

编排函数时,可给每种形参钦定 暗中同意值 。在调用函数中给形参提供了实参时,
Python
将使用内定的实参值;否则,将应用形参的暗中认可值。因此,给形参钦定暗中同意值后,可在函数调用中总结相应的实参。使用私下认可值可简化函数调用,还可领会地建议函数的卓著用法。

举个栗子:

def describe_pet(pet_name,animal_type='dog'):    print("\nI have a " + animal_type)    print("My " + animal_type + "'s name is " + pet_name.titledescribe_pet('jack')  # 默认animal_type='dog'describe_pet('pick','cat') # 使用位置实参,赋值animal_type='cat'describe_pet(animal_type="cat",pet_name='Hellen')  # 关键字传参

上述代码的施行结果为:

C:\Python37\python3.exe D:/pythoncode/Exercise/Exer8/Exer8-2.pyI have a dogMy dog's name is JackI have a catMy cat's name is PickI have a catMy cat's name is HellenProcess finished with exit code 0

分析:那边修改了函数 describe_pet() 的概念,在内部给形参
animal_type 钦点了默许值 ‘dog’ 。那样,调用这几个函数时,借使未有给
animal_type 钦定值, Python 将把这些形参设置为 ‘dog’ ,若是钦定animal_type的值则就动用内定的值。

  那种状态的产出正是实参顺序不科学,根据那种措施,实参‘harry’会被储存到形参animal_type中;同理,’hamster’将储存到形参pet_name中,结果就是我们得到了地点的名称为Hamster的harry。

========================================================

三.四、不定长参数

偶尔只怕我们先行不晓得函数供给接受多少个实参,幸而 Python
允许函数从调用语句中搜罗跋扈数量的实参。

举个栗子:

def make_pizza:    printmake_pizza('pepperoni')make_pizza('mushrooms','green peppers','extra cheese')

上述代码的施行结果为:

C:\Python37\python3.exe D:/pythoncode/Exercise/Exer8/Exer8-5.py('pepperoni',)('mushrooms', 'green peppers', 'extra cheese')Process finished with exit code 0

分析:上面的make_pizza函数唯有2个形参 *toppings
,但无论调用语句提供了略微实参,那么些形参都将它们统统收入囊中。**形参名
*toppings 中的星号让 Python 创造2个名称叫 toppings
的空元组,并将接收的全部值都打包到那个元组中**,纵然是1个值也会转移贰个元组。

注意:上面make_pizza函数还有另1种传值格局,test(*[1,2,3,4,5]),那样依旧会以元组的法子赶回数据

其中 toping = [1,2,3,4,5]

澳门新萄京 7

举个栗子:

def make_pizza:    printmake_pizza(*'list')                            ====>  ('l', 'i', 's', 't')  /传入字符串时返回元组make_pizza                           ====>    /传入元组时返回元组make_pizza                           ====>    /传入列表时返回元组make_pizza(*{'first':'name','last':'name2'})   ====>  ('first', 'last') /传入字典时,只返回key值元组

  所以切记,地方实参一定要与形参顺序1致。

Hello!

三.四.壹、结合使用地点实参和无限制数量实参

如若要让函数接受差异门类的实参,必须在函数定义少校选取大肆数量实参的形参放在最终。
Python
先相配岗位实参和要害字实参,再将盈余的实参都采访到终极二个形参中。

def make_pizza(size,*topings):    print(size,topings)make_pizza(2,'pepperoni')make_pizza(16,23,45,'mushrooms','green peppers','extra cheese')

上述代码的实施结果为:

C:\Python37\python3.exe D:/pythoncode/Exercise/Exer8/Exer8-5.py2 ('pepperoni',)16 (23,45,'mushrooms', 'green peppers', 'extra cheese')Process finished with exit code 0

分析:依赖上述函数定义, Python 将吸收的首先个值存储在形参 size
中,并将其余的全体值都存款和储蓄在元组 toppings 中。

**注意:*topings只接到地点参数,不能接到关键字参数**

当地方参数碰到topings时:正是有任务参数同时也有N个实参传入,首先将值赋给岗位参数,然后剩下的结余的值赋给args以元组的方式出口

二、关键字实参

 

3.四.2、使用狂妄数量的重中之重字实参

有时,须求经受大4数量的实参,但先行不清楚传递给函数的会是怎样的消息。在那种情景下,可将函数编写成能够承受大4数量的
键—值 对 —— 调用讲话提供了稍稍就接受多少。

举个栗子:

def build_profile(first, last, **user_info):    profile = {}    profile['first_name'] = first    profile['last_name'] = last    for key, value in user_info.items():        profile[key] = value    return profileuser_profile = build_profile('albert','eniston',                             location = 'China',                             field = 'physics',                             age = 18)print(user_profile)

上述代码的进行理并了结果为:

C:\Python37\python3.exe D:/pythoncode/Exercise/Exer8/Exer8-5.py{'first_name': 'albert', 'last_name': 'eniston', 'location': 'China', 'field': 'physics', 'age': 18}Process finished with exit code 0

分析:形参 * *user_info 中的七个星号让 Python 创立1个名字为user_info 的空字典,并将接收的享知名称 —
值对都卷入到那么些字典中。上边的build_profile函数不驾驭用户会输入多少音信,指明姓名后,再提供住址、年龄等音信,函数都会将那个音信都存款和储蓄在空字典中。

注意:上述任性数量关键字实参传值时也有三种格局:1是运用键值传值,2是直接调用**{字典}的方式

print(build_profile(**{'first':123,'last':'name'}))  # 也接受**{字典} 的传值方式# 运行结果{'first_name': 123, 'last_name': 'name'}

  关键字函数实参是传递给函数的名号-值对。关键字实参令你不需求怀想函数调用中的实参顺序,还是能明白各样值的用处,获得的结果是均等的。

注:函数的定义以冒号结尾,及时没有传递任何消息,括号也不可或缺。

叁.4.2.一、当地点参数遇上**kwargs时:
def build_profile(name, **user_info): #name 是一个位置形参  **user_info是用来生成一个空字典接受其他变量    print    print(user_info)# 首先是赋值一个位置实参,然后将后面键值对指定的实参存储到字典里build_profile('keitter',age=12,location = 'China')          # 使用特殊传值方式 **{}  传入的是字典  最后传出的也是字典build_profile('\njson',**{'first':'jack','location':'China'})# 当只传入一个位置实参时  则后面的**user_info 还是会生成一个空字典build_profile('\nkitter')       # 当传入的位置参数个数和形参中定义好的位置参数数量不符时就直接报错build_profile('\nkitter','name',age=12,location = 'China')    ===》直接报错

C:\Python37\python3.exe D:/pythoncode/Exercise/Exer8/Exer8-5.pykeitter{'age': 12, 'location': 'China'}json{'first': 'jack', 'location': 'China'}kitter{}Process finished with exit code 0
1 describe_pet(animal_type='hamster',pet_name='harry')
2 describe_pet(pet_name='harry',animal_type='hamster')
3 
4 I have a hamster.
5 My hamster's name is Harry.

 

三.4.贰.二、当位置参数、默许参数蒙受 **kwargs 时:

注意:默许参数一定不可能松手 **kwargs 前面,否则程序会一向报错。

举个栗子:

def build_profile(name, age=18,**user_info):  #name 是一个位置形参  age是默认形参  **user_info是用来生成一个空字典接受其他变量    print    print    print(user_info)# 这很好理解,就是位置实参传值,将默认参数age赋值为12,然后剩下的参数生成字典build_profile('keitter',12,location = 'China')  # 这和上面那个差不多,只不过是使用了关键字实参给默认参数赋值build_profile('\nHellon',location = 'China',age=23)# 使用特殊传值方式 **{}  age值和上面两个一样,可以是位置实参,也可以关键字指定build_profile('\njson',**{'first':'jack','location':'China'})# 当只传入一个位置实参时 则会生成默认参数值和后面的**user_info 生成的一个空字典build_profile('\nkitter')

C:\Python37\python3.exe D:/pythoncode/Exercise/Exer8/Exer8-5.pykeitter12{'location': 'China'}Hellon23{'location': 'China'}json18{'first': 'jack', 'location': 'China'}kitter18{}Process finished with exit code 0

3、默认值

二.函数字传送递新闻

3.四.二.三、当地点参数、暗中同意参数遇上 *args 和 **kwargs 时

注意: *args 只接收地方参数,调换来元组的方式,不收取关键字参数

​ * *kwargs 只接到关键字参数,转变来字典的款型

​ **职责顺序无法变, args必须放在 *kwargs 前面,地点参数一定是坐落暗许参数前边,不定长参数分明是献身最前面。**

举个栗子:

def build_profile(name, age=18, *user, **user_info): # 位置参数 默认参数 两种不定长参数    print    print    print    print(user_info)# 位置参数肯定是要匹配的 默认参数可给可不给   *args 只接收位置参数  **kwargs 只接收关键字参数build_profile('keitter',12,'people',location = 'China')# 多种形参混合时,不能将默认实参放到最后 会直接报错build_profile('\nHellon','people',location = 'China',age=23)    ====》 直接报错# 特殊参数传递方法 注意在传递*[]时,没有指定默认实参时,会将第一个值赋给默认参数build_profile('\njson',*[{'name':'jack'},1,2,3],**{'first':'jack','location':'China'},)# 默认没有给 *args  和   * *kwargs 传值时,还是会生成一个空列表和空字典build_profile('\nkitter','people')

C:\Python37\python3.exe D:/pythoncode/Exercise/Exer8/Exer8-5.pykeitter12('people',){'location': 'China'}json{'name': 'jack'}   # 注意在传递*[]时,没有指定默认实参时,会将第一个值赋给默认参数          # 注意在传递*[]时,除了传给默认参数的,后面的剩的值还是会生成一个元组{'first': 'jack', 'location': 'China'}kitterpeople()               # 还是会生成一个空列表和空字典{}Process finished with exit code 0

  在函数定义编写的时候,能够给形参钦点暗许值。当在调用函数中给形参提供了实参时,python将运用钦点的实参值,不然正是行使暗中同意的形参值。使用形参给定的默认值时,调用函数时得以总结相应的实参。

 

四、返回值

函数并非总是直接体现输出,相反,它能够管理部分数码,并回到多少个或1组值。函数再次回到的值被叫做
再次来到值 。在函数中,可应用 return
语句将值重临到调用函数的代码行。重临值使你可见将先后的大许多千斤职业移到函数中去达成,从而简化主程序。

重返值的归类:

当返回值数 = 0         ==》返回none当返回值数 = 1         ==》返回object,是什么就返回什么当返回值数 > 1         ==》 返回元组元组中包含所有的返回值 

举个栗子:

def get_formatted(first_name,last_name):    full_name = first_name + ' ' + last_name    return full_name.title()musician = get_formatted('qi','siwill')print

上述代码的实践结果为:

C:\Python37\python3.exe D:/pythoncode/Exercise/Exer8/Exer8-3.pyQi SiwillProcess finished with exit code 0

分析:调用重临值的函数时,必要提供一个变量,用于存款和储蓄再次回到的值。在这里,将再次来到值存款和储蓄在了变量
musician 中

函数可回到任何项指标值,包含列表和字典等较复杂的数据结构

举个再次回到字典的事例:

def build_people(first_name,last_name):    person = {'first':first_name,'last':last_name}    return personmusician = build_people('jack','rose')print

上述代码的执行结果为:

C:\Python37\python3.exe D:/pythoncode/Exercise/Exer8/Exer8-3.py{'first': 'jack', 'last': 'rose'}Process finished with exit code 0

分析:上述代码就是指重返值个数为1,那么是怎么就赶回什么,person是二个字典所以就回到二个字典,假设是任何对象也都回来对应的。

再举个栗子:

def build_people(first_name,last_name):    # person = {'first':first_name,'last':last_name}    return first_name,last_namemusician = build_people('jack','rose')musician2 = build_people('jack','["Rose","jack"]')printprint(musician2)

C:\Python37\python3.exe D:/pythoncode/Exercise/Exer8/Exer8-3.py('jack', 'rose')('jack', '["Rose","jack"]')Process finished with exit code 0

分析:上述代码正是指再次来到值个数大于1,那么则赶回二个元组,包涵全体值的元组。

1 def describe_pet(pet_name,animal_type='dog'):
2     print('\nI have a '+animal_type+'.')
3     print('My '+animal_type+"'s name is "+pet_name.title()+'.')
4 
5 describe_pet('willie')

def greet_user(username):

  运营结果:

        “””展现简单的问候语”””

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

        print(“Hello, ” + username.title() + “!”)

  这几个函数的编写制定更换了形参的相继,由于带有默许值的animal_type无需在函数调用中钦定项目,由此函数只提到到pet_name必要交给名字。鉴于python如故将该实参以为是岗位实参,若必要给出函数名字,则这么些名字的实参将关乎到函数定义中的第一个形参,故而将带私下认可值的形参放在前边。

 

  若函数调用中,给animal_type重新赋了新的值,则原来的暗许值就能够忽略。

greet_user(‘dylan king’)

 

 

========================================================

Hello, Dylan King!

 

从上面例子能够见到,Python中等学校函授数参数没有须要点名项目,只跟传播的实参类型有关。

 

在函数 greet_user() 的概念中,变量 username
是三个形参——函数完结其专门的工作所需的1项信息。在代码 greet_user(‘dylan
king’) 中,值 ‘dylan
king’正是1个实参。实参是调用函数时传递给函数的音讯。大家调用函数时,将要让函数使用的新闻放在括号中。在
greet_user(‘dylan king’) 中,将实参 ‘dylan king’ 传递给了函数
greet_user(),这一个值被贮存在形参username中。

 

三.传递实参

 

Python
必须将函数调用中的每种实参都关乎到函数定义中的多少个形参。为此,最轻松易行的涉及方式正是基于实参的依次。那种关涉格局被叫做任务实参

 

地方实参的传递一定要注意相应形参的岗位。若是忧虑地方会写错,可以用根本字实参。一言九鼎字实参是传递给函数的名称-值对。

 

def describe_pet(animal_type, pet_name):

        “””显示宠物新闻”””

        print(“\nI have a ” + animal_type + “.”)

        print(“My ” + animal_type + “‘s name is ” + pet_name.title() +
“.”)

 

describe_pet(‘harry’, ‘hamster’)

describe_pet(pet_name = ‘harry’, animal_type = ‘hamster’)

describe_pet(animal_type = ‘harry’, pet_name = ‘hamster’)

 

========================================================

I have a harry.

My harry’s name is Dog.

 

I have a hamster.

My hamster’s name is Harry.

 

I have a harry.

My harry’s name is Hamster.

 

偶然大家想以此函数可以被越多的次第调用,可是有个别形参在调用的时候完全不用给值,这年大家能够设想给形参钦点默认值

 

def describe_pet(animal_type, pet_name=’dog’):

        “””展现宠物新闻”””

        print(“\nI have a ” + animal_type + “.”)

澳门新萄京,        print(“My ” + animal_type + “‘s name is ” + pet_name.title() +
“.”)

 

describe_pet(‘harry’)

 

========================================================

I have a harry.

My harry’s name is Dog.

 

小心:使用私下认可值时,在形参列表中必须先列出从未暗中同意值的形参,再列出又暗许值的形参。那让Python依旧能够准确地解读地方实参。暗中同意值能够钦赐为空字符,表示那几个形参的无翼而飞实参时可选的。例如:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图