遇见Python | Day8 函数

一、自定义函数

def 函数名:
	函数体

在Python中使用关键字def来定义一个函数,def后面是函数名,只有还有一个冒号,冒号后面的所有缩进行构成了函数体。

def SayHello():
	print("Hello!")

SayHello()
'''输出结果:
Hello!
'''

1、向函数传递信息

参数在函数名后定义,并用括号括起来。

def SayHello(name):
	print(name+"said: Hello!")

SayHello('Tom')
SayHello('Bob')
'''输出结果:
Tomsaid: Hello!
Bobsaid: Hello!
'''

在SayHell()的定义中,变量name是一个形参——函数完成其工作所需的一项信息。在代码SayHello(‘Tom’)中,'Tom’是一个实参,实参是调用函数是传递给函数的信息。

二、传递实参

向函数传递实参的方式很多,可以使用位置实参,这就要求实参的顺序与形参的顺序也相同;也可以使用关键字实参,其中每个实参都由变量名和值组成;还可以使用列表和字典。

1、位置实参

调用函数时,Python将函数调用中的每个实参都关联到函数定义中的一个形参。这种关联方式成为位置实参。

def SayHello(Name,Somethings):
	print(Name+" said: "+Somethings+"!")

SayHello('Tom','Hello')
SayHello('Bob','Hi')
'''输出结果:
Tom said: Hello!
Bob said: Hi!
'''

(1)调用函数多次

(2)位置实参的顺序很重要

2、关键字实参

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

def SayHello(Name,Somethings):
	print(Name+" said: "+Somethings+"!")

SayHello(Name='Tom',Somethings='Hello')
SayHello(Somethings='Hi',Name='Bob',)
'''输出结果:
Tom said: Hello!
Bob said: Hi!
'''

此时,关键字实参的顺序已经无关紧要了。

3、默认值

编写函数时,可以给每个形参指定默认值。

def SayHello(Name,Somethings='Hello'):
	print(Name+" said: "+Somethings+"!")

SayHello('Tom')
SayHello('Bob','Hi')
'''输出结果:
Tom said: Hello!
Bob said: Hi!
'''

在使用默认值时,在形参列表中必须先列出没有默认值的形参,再列出有默认值的形参。

4、等效的函数调用

混合使用位置实参、关键字实参和默认值可以混合使用,这样就有多种等效的函数调用方式。

5、避免实参错误

如果遇到实参不匹配错误时,首先检查提供的实参是否多与或少于函数完成其工作所需的信息。

三、返回值

函数并非总是直接显示输出,更多地是处理一些数据,并返回一个或一组值,函数返回的值被称为返回值。在函数中,可使用return语句将值返回到调用函数的代码行。

1、返回简单值

调用返回值的函数时,需要提供一个变量,用于存储返回的值。

def Num_Sum(num1,num2):
	return num1+num2
S_Sum=Num_Sum(12,23)
print(S_Sum)
'''输出结果:
35
'''

2、让实参变成可选的

有时候,需要实参变成可选的,这样使用函数的人就只需要在必要时提供额外的信息,可使用默认值来让实参变成可选的。

"计算两个或者三个数的和"
def Num_Sum(num1,num2,num3=0):
	if num3:
		return num1+num2+num3
	else:
		return num1+num2
S_Sum=Num_Sum(12,23)
S_Sum1=Num_Sum(12,23,12)
print(S_Sum)
print(S_Sum1)
'''输出结果:
35
47
'''

3、返回字典

函数乐意返回任何类型的值,包括字典和列表等较复杂的数据结构。

def Num_Sum(name,age=0):
	Stu={'name':name}
	if age:
		Stu['age']=age
	return Stu
stu=Num_Sum('Tom',23)
print(stu)
'''输出结果:
{'name': 'Tom', 'age': 23}
'''

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

def list_Num(num):
	i=0
	while i<num:
		print(i)
		i+=1
list_Num(4)
'''输出结果:
0
1
2
3
'''

四、传递列表

1、在函数中修改列表

将列表传递给函数后,函数就可以对其修改,在函数中对这个列表所做的修改是永久性的。

2、禁止函数修改列表

使用切片表示法[:]来创建列表副本。

五、传递任意数量的实参

1、结合使用位置参数和任意数量实参

def my_classes(*myclass):
	print('I like :')
	for myc in myclass:
		print(myc)
my_classes('math')
print('----------------------------')
my_classes('computer','Chinese','Python')
'''输出结果:
I like :
math
----------------------------
I like :
computer
Chinese
Python
'''

形参名*myclass中的星号让Python创建一个名为myclass的空元组,并将收到的所有值都装到这个元组中。

2、使用任意数量的关键字实参

def Stu(name,age,**stu_info):
	Student={}
	Student['name']=name
	Student['age']=age
	for key,value in stu_info.items():
		Student[key]=value
	return Student
stu=Stu('Tom',23,email='160@163.com',Phone='010-6233')
print(stu)
'''输出结果:
{'name': 'Tom', 'age': 23, 'email': '160@163.com', 'Phone': '010-6233'}
'''

六、将函数存储在模块中

1、导入模块

首先得创建模块,模块是拓展名为.py的文件,包含要导入到程序中的代码.

import 模块名
使用:模块名.函数名

2、导入特定的函数

from 模块名 import 函数名

3、使用as给函数指定别名

from 模块名 import 函数名 as 函数别名

4、使用as给模块指定别名

import 模块名 as 模块别名

5、导入模块中的所有函数

使用星号(*)运算符可以让Python导入模块中的所有函数。

文章如有错误,请指正!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bjfu_yang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值