Python 函数(1)

1、函数

函数是带名字的代码块,用于完成具体的工作。要执行函数定义的特定义务,可调用该函数。当需要再程序中多次执行同一项任务时,无需反复编写完成该任务的代码,只需要调用该任务的函数,让其运行即可。

1.1、定义函数

def  函数名( 填入需要的信息 ):

 下面为一个简单的实例:

def greet_user():
    '''显示问候语'''
    print("Hello!")
greet_user()

第一行代码使用关键字def来告诉Python,需要定义一个什么函数。这是函数定义 ,向Python指出了函数名,还可以在括号内指出函数为完成工作需要什么信息。最后,定义以冒号结尾

 注:   函数名的命名规则:函数名一律小写,若有多个单词则用下划线将其分隔开;另外,私有函数一下划线开头。

要使用某个函数必须调用它。函数调用让Python执行函数中的代码。要调用函数,可依次指定函数名以及用括号括起来的必要信息。如上调用它是只需要输入greet_user()即可。即打印Hello!

1.1.1、向函数传递信息

        可在函数定义def greet_user():的括号内添加需要执行的信息。如下我在括号内添加name,这样,可让函数接受你给的name指定的任何值。现在,这个函数要求你在调用它时给name指定一个值。因此在调用greet_user()时,可将名为name的值填入括号内,传递给它。如下:

def greet_user(name):
    '''显示问候语'''
    print(f"Hello!{name.title()}")
greet_user('karry')

代码greet_user('karry')调用函数greet_user(),并向它提供执行函数调用print()所需的信息。这个代码接受你传递给它的name,并且打印它:

可以根据需要调用greet_user()任意多次,无论在调用时传入的name为什么,都将生成相依的输出。

1.1.2、实参和形参

     在前面定义greet_user()函数时,要求给变量name指定一个值。这样,在调用这个函数并提供这种信息时,它将打印相应的信息。

     在greet_user()函数的定义中,变量name是一个形参,即函数完成工作所需的信息;在代码greet_usr(‘karry’)中,值‘karry’是一个实参,即在调用函数时传递给函数的信息。

1.2、传递实参

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

1.2.1、位置实参

         实参的位置与形参的位置相对应,每个实参关联到函数定义中的一个形参。最简单的方式就是依照实参的顺序进行关联。这种称为位置实参

        为了理解其中的原理,我们来看个实例:

def des_pet(ani,pet):
    print(ani)
    print(f"{ani.title()},{pet.title()}")
des_pet('hamster','harry')

实参'hamster'赋给形参ani;实参'harry'赋给形参pet。打印输出如下:

Hamster,Harry 

位置实参的顺序很重要,当使用位置实参来调用函数时,如果实参的顺序不正确,结果可能会出乎意料,打印输出的信息和你想的可能会打乱。在使用位置实参时,一定要注意确认调用中实参对的顺序与函数定义中形参的顺序是否一致。 

1.2.2、关键字实参

  关键字实参是传递给函数的名值对。会直接在实参中将名称和值关联起来,因此像函数传递实参时就不会混淆了。

下面编写,在其中使用关键字实参来调用des_pet():

def des_pet(ani,pet):
    print(ani)
    print(f"{ani.title()},{pet.title()}")
des_pet(ani='hamster',pet='harry')

des_pet()函数还和之前一样,但这次调用这个函数时,向Python明确地指出了各个实参对应的形参。关键字实参的顺序无关紧要,因为Python知道各个值该被赋给哪个形参。如下的输出和上的一样:

 Hamster,Harry 

 1.2.3、默认值

    在编写函数时,可以给每个形参指定默认值。如果在调用函数中给形参提供了实参,Python将使用指定的实参值;否则,将使用形参的默认值。

1.2.4、避免实参错误

     当提供的实参多于或少于函数完成工作所需的实参数量时,将会出现实参不匹配的错误。

1.3、返回值(return)

    函数并非直接显示输出,它还可以处理一些数据,并返回一个或一组值。函数返回的值称为返回值。可以使用return语句将值返回到调用函数的那行代码。

格式:

def 函数名(参数1,参数2,...,参数n)
    函数体第一行代码
    函数体第一行代码
    ...
    函数体第一行代码
    return 语句
变量=函数名(参数1,参数2,...,参数n)

1.3.1、返回简单的值

如下来进行一段代码:

def city_country(city,country):
    full=f"{city.title()},{country.title()}"
    return full
magger=city_country('chongqing','China')
print(magger)

 city_country()函数定义通过形参接受'chongqing'和'China',并将其赋给变量full,然后,它将full的值转换为首字母大写的格式,并将结果返回函数调用行。

在调用可以返回值的函数时,需要提供一个变量,以便将返回的值赋给它。这里将返回值赋给变量magger。输出如下:

Chongqing,China 

1.3.2、让实参变成可选的

      可以是用默认值来让实参变成可选的。如下实例显出怎么打代码让其默认:

def make_album(name,song,year='13'):
    persons=f"名字为:{name},歌曲为:{song},年份为:{year}"
    return persons
magges=make_album(name='wjk',song='tfboys')  #使用的year为默认
print(magges)
magges=make_album(name='wjk',song='tfboys',year='25')  #使用的year为指定的值
print(magges)

同时提供‘name’,‘song’,‘year’这三个的值,这个代码才能正常运行。如果调用这个函数时没有提供这里面需要的三个值则会出现错误。要想只提供一个或两个值的话,则需要将剩下需要的值设为默认。那怎样设呢?就是在定义函数时,在函数需要的运行的信息里面填上需要默认为实名值,在如上定义make_ablum()函数,在括号里面填入需要的实参时,把year的值填上去,则下面调用函数时只需输入两个实参,如果把year值指定了,则默认的值将失效,运行的将是修改的值。如下输出:

1.3.3、返回字典

     函数可返回任意类型的值,包括列表和字典等较为复杂的数据结构。例如下实例:

def make_album(name,song):
    persons={'make':name,'album':song}
    return persons
magges=make_album(name='wjk',song='tfboys')
print(magges)

make_ablbum()函数接受name,song,并将这些值放在字典中。在存储name的值时,是用键为‘make’,在存储song的值时,使用键为‘album’。然后,返回表示make_album的整个字典,然后打印:

1.3.4、结合使用函数和while循环

下列代码呈现:

def make_album(name,song):
    persons={'make':name,'album':song}
    return persons
while True:
    print("\n 请输入名和专辑")
    name = input("请输入名:")
    song = input("请输入专辑:")
    magger=make_album(name,song)
    print(magger)
    if name == 'q':
        break
    if song == 'q':
        break

输出为: 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值