python3学习日记——函数

函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。

# 定义一个函数
def say_hi(name):
	print('Hi~'+name);# print是python的一个内置函数

函数的参数

  1. 必需参数:必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。
  2. 关键字参数:关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。
  3. 默认参数: 调用函数时,如果没有传递参数,则会使用默认参数。
  4. 不定长参数: 你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述 3 种参数不同,声明时不会命名。
# 必需参数
def say_hi(name):
	print('Hi~'+name);# name是必须传的参数
say_hi('Tom') # 结果 Hi~Tom

# 关键字参数
def say_hi(name):
	print('Hi~'+name);
say_hi(name='Tom') # 结果 Hi~Tom

# 默认参数
def say_hi(name='Tom'):
	print('Hi~'+name); # 如果不传参数,则使用默认参数
say_hi() # 结果 Hi~Tom

# 不定长参数
def say_hi(name,*keys):
	print(name)
	print(keys)
say_hi('Tom',1,2,3) 
'''
结果是
Tom
(1, 2, 3) 第二个可变参数会以元组的形式传递进来
'''

匿名函数

python 使用 lambda 来创建匿名函数。
所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。

  • lambda 只是一个表达式,函数体比 def 简单很多。
  • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
  • lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。
  • 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
# lambda关键字的使用
sum = lambda arg1, arg2: arg1 + arg2
sum(1,2) # 结果返回为3

lambda关键字的使用非常的灵活,它也是函数式编程的核心所在。在python的一些内置函数map/filter等都可以传递匿名函数为参数,从而达到预期效果。灵活的使用可以事半功倍~

return语句和序列解包

return [表达式] 语句用于退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None。
序列解包:当return返回多个结果时,会以元组的形式返回,在接受返回值时可以设置多个变量来接收。

# 之前的例子都没有示范如何返回数值,以下实例演示了 return 语句的用法:
def sum( arg1, arg2 ):
   # 返回2个参数的和."
   total = arg1 + arg2
   print ("函数内 : ", total)
   return total
print(sum(1,2)) # 打印返回的结果3

# 序列解包
def apples(name,*keys):
	return name,keys
a,b = apples('苹果','香蕉','橘子') # a的结果是'苹果' b的结果是('香蕉','橘子')

你可能感兴趣的:(Python)