05.Python基础--函数

定义函数:

一个无功能的函数:

def function():

  pass     # 这个函数是干什么的?

function()  # 调用这个函数

一个简单的函数:

def function(a,b):

  sum = a+b

  return sum    #函数的返回值,return不必须,没有return则返回一个None值

data = function(1,2)     #将函数赋给data 最终意味着该函数return的sum值也赋给了data

tips:当程序执行到return的时候,程序将停止执行函数内余下的语句 

函数中参数传递:

  位置传递--数值

def function(a,b):

  pass

function(1,2)     #位置1对应a  位置2对应b 进行传递

  位置传递--列表

list = ['1','2','3']

def function(a):

  pass

function(list)     #将list传递给了a

  关键字传递(关键字并不用遵守位置的对应关系,但位置参数要出现在关键字参数之前)

def function(a,b,c):

  pass

function(1,c=2,b=1)     #构成的传递关系为a=1 b=1 c=2

  参数默认值

def function(a,b,c=1):  # 这里c=1就是默认值default,如果在参数传递没有涉及c则使用默认值1,如果涉及则使用涉及的新值

  pass

function(1,b=1)        #构成的传递关系为a=1 b=1 c=1

function(1,4,c=5)     #构成的传递关系为a=1 b=1 c=5

 

  包裹传递  (我们不清楚要传递多少个参数时,我们就将所有的参数包裹起来,整体传递)

def function(*data):  #  一个*为了提醒python,这是一个元祖包裹传递   两个*则为字典包裹传递

  pass

function(1,2,3,4,5,6,7,8,9)        #构成的传递关系为将9个参数包裹至data里,并且根据位置合并成一个tuple

def function(**data):  #  **为了提醒python,这是一个字典包裹传递

  pass

function(a=1,b=2,c=3)        #构成的传递关系为将3个参数包裹至data里,并且根据a,b,c为key 1 2 3为value合并成一个dict

  解包裹  (传入* 或者 ** 的tuple和dict,在函数内容中解开)

data = (1,2,3)

def function(a,b,c):  

  pass

function(*data)        #构成的传递关系为将3个参数解开分配给a,b,c

tips:字典的解包裹原理一致

  函数作为参数传递

def test(x,y):

  sum = x+y

  retutn sum

def function(t,b,c):

  t(b,c)

function(test,1,2)  #构成的参数传递将test函数传入function函数中,在function函数中就具有了test函数的功能

原文地址:https://www.cnblogs.com/zhouA/p/14480879.html