Python学习笔记

Python学习笔记(六)

如果我们在一个程序中需要反复执行同一项任务时,我们可以不用重复编写该任务代码,我们可以使用函数,从而减少我们的代码量。

一.定义函数

如果要定义函数,我们使用关键字def,基本格式为关键字+函数名,最后以冒号结尾。

>>> def greet():
	print('Hello')
>>> greet()

Hello

上边这个例子是一个最简单的函数,我们调用greet()函数打印Hello
1.函数传递信息
我们最常使用的函数还包含有两个参数,叫做形参实参。Python中的函数我们可以类比数学中的函数。如同y=x+1,式子中的x如同形参,我们对x赋值2,2就相当于实参。把实参传递给形参,就相当于一个赋值的过程。

>>> def greet(name):
		print('Hello,'+ name)
	greet('libai')

Hello,libai

上边这个例子中name 就是形参,libai就是实参。
2.传递实参
函数中可能存在多个形参,用户使用时也可能包含多个实参。
位置实参:每一个调用的实参都必须对应于一个形参,这种关联方式称为位置实参。

>>> def message(name,age):
		print('My name is '+ name +',and I am '+ age +' years old')
>>> message('libai','20')
>>> message('dufu','15')

My name is libai,and I am 20 years old
My name is dufu,and I am 15 years old

注意:我们在调用实参的时候,注意和形参对应,顺序不能错。
关键字实参:传递给函数的名称与值对应,明确指明形参对应的实参。

>>> def message(name,age):
		print('My name is '+ name +',and I am '+ age +' years old')
>>> message(age = '20',name = 'libai')

My name is libai,and I am 20 years old

3.默认值
编写函数时,我们可以对函数形参使用默认值。如果调用函数时,提供了对应的实参值,就输出实参;如果没有提供实参,那么就会输出默认值。

>>> def message(name,age='20'):
		print('My name is '+ name +',and I am '+ age +' years old')
>>> message('libai','20')
>>> message('libai')

My name is libai,and I am 20 years old
My name is libai,and I am 20 years old

以上三种函数调用可以混合使用,但是需要注意的是使用函数时必须实参和形参相匹配。如果实参多于或少于形参,Python将会报错。

有些时候,我们对于实参取值具有不确定性,所以我们可以让实参变成可选的。我们对形参进行处理,如上例中令age=’ ',让它变成一个空字符串。这样,我们的实参对于age将可有可无。

二.返回值

函数并非总是直接显示输出,它可以处理一些数据,并返回一个值。函数返回的值的称为返回值。我们通常使用return语句将值返回到调用函数的代码行。

>>> def message(name,age):
		full_name = 'My name is '+ name +',and I am '+ age +' years old'
		return full_name

>>> full_name = message('libai','20')
>>> print(full_name)

My name is libai,and I am 20 years old

函数可以返回任何类型的值,我们让它可以返回成字典结构。

>>> def message(name,age):
		full_name = {'name':name,'age':age}
		return full_name

>>> full_name = message('libai','20')
>>> print(full_name)

{'name': 'libai', 'age': '20'}
三.传递列表

有些时候,我们可以对列表进行传递,列表中可以是名字,年龄等。传递列表,可以提高我们的效率。

>>> def greet(names):
        for name in names:
                full_name = 'My name is '+ name 
                print(full_name)

>>> message = ['libai','dufu','dumu']
>>> greet(message)

My name is libai
My name is dufu
My name is dumu
四.传递任意数量的实参
>>> def greet(*name):
        print(name)

>>> greet('libai')
>>> greet('libai','dufu','dumu')

('libai',)
('libai', 'dufu', 'dumu')

有时候我们不知道会接收多少个实参,我们通过形参名前加一个星号(*)创建一个空元组,将实参传递的所有值送给这个空元组中。
我们还可以通过形参名前加两个星号(**)创建一个空字典,将实参传递的所有值送给这个空字典中。
这种方法也可以结合位置实参和任意数量实参;或者结合任意数量的关键字实参使用。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值