Bootstrap
函数是带名字的代码块,用于完成具体的工作。要执行函数定义的特定任务,可调用该函数。需要在程序中多次执行同一项任务时,你无需反复编写完成该任务的代码,而只需调用执行该任务的函数,让Python运行 其中的代码。你将发现,通过使用函数,程序的编写、阅读、测试和修复都将更容易。

1、定义函数

下面是一个简单的函数,打印出Hello World!。

def  sayHello():
    print("Hello World!")
#调用函数
sayHello()

2、向函数传递参数

def  sayHello(name):
    print("Hello, " + name.title() + "!")
#调用函数
sayHello("jack")

1)name是叫做形参,实际传递的参数"jack"叫做实参
2)多个参数时参数顺序很重要,传错顺序结果就不一样了。
3)参数默认值

编写函数时,可以给每个形参指定默认值,在调用函数中给形参数提供了实参时,将使用指定的实参值;否则,将使用形参的默认值。有些情况就可以,不指定实参,使用形参的默认值。

使用默认值时,在形参列表中必须先列出没有默认值的形参,再列出有默认值的实参。这让Python依然能够正确地解读位置实参。

def describeuser(user_name,user_age="18"):
print("\nMy name is " + user_name + ".")
print("My age is " + user_age + ".")
describeuser(user_name="jack")
describeuser("jack")
describeuser(user_name="jack",user_age="30")
describeuser(user_age="30",user_name="jack")
describeuser("jack","30")

上面4种调用方式都是正确的。传递参数时指定的形参的名字,这时就可以改变参数传入的顺序了。

3、函数返回值

在函数中,可使用return 语句将值返回到调用函数的代码行。python中不用显示指定返回值的类型。可以返回任意数据类型(列表,元组,字典等,都是可以的),下面示例返回整形。

def getSum(a,b):
return a + b

4、传递列表

列表做为函数的参数,正常是可以进行修改的,如果禁止函数修改列表。可以像下面这样做:

function_name(list_name[:])

切片表示法[:] 创建列表的副本,这样就不修改原始的列表了。

5、传递任意数量的实参

def fun(*params):
print(params)

>>> fun("hi","hello","go")
('hi', 'hello', 'go')

上面方法中只有一个*params参数,但可以传多个参数。执行方法可以看到打印出来的是一个元组。形参*params中的星号是让Python创建一个名为params的空元组。所有指定的参数都会存到里面。

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

def fun1(first,last,**user_Info):
print(user_Info)

>>> fun1(1,2,abc='1',jack='18')
{'abc': '1', 'jack': '18'}

上面方法中**user_info参数,可以传递多个关键字实参,执行方法可以看出输出的类型是一个字典。形参**user_info中的两个星号是让Python默认创建一个空字典,关键字实参都会存到字典中。