简单的说,函数就是一种代码组织方式,让你可以实现单一、或关联功能的封装,以便高复用。
下面我们看一看在Python中函数定义的基本形式:
def 函数名(参数列表):
# 代码块
return 返回值
下面我们看一个简单的实例,计算两个数的和:
# -*- coding:utf-8 -*-
__author__ = u'苦叶子'
def sum(a, b):
c = a + b
return c
if __name__ == "__main__":
print(u"函数定义,计算和")
# 调用函数
c = sum(1 ,2)
print(c)
在调用时,参数会根据顺序与函数定义时的参数顺序匹配起来,在本例中a=1, b=2
下面我们用函数封装实现九九乘法表,请看代码实例:
# -*- coding:utf-8 -*-
__author__ = u'苦叶子'
# 九九乘法表
def multi():
data = []
for i in range(1, 10):
line = []
for j in range(i, 10):
line.append(u"%d * %d = %2d " % (i, j, i*j))
data.append(line)
return data
if __name__ == "__main__":
print(u"九九乘法表实例:")
data = multi() for d in data:
print(d)
执行的结果如下:
大家可以根据实例进行各种改造尝试,以便进一步深入了解函数的特性。
在Python中参数的传递要注意传入的是可更改的还是不可更改的对象。
在python中对象从修改来讲可以分为:
在Python函数参数的传递,可以传入不可变或可变类的参数。
不可变类型:类似C/C++中的传值参数。
可变类型:类似C/C++的引用参数(即传地址方式)
因为在Python中一切皆为对象,所以在Python中严格来讲我们不能跟在C/C++中一样说是值传递或引用传递,应该讲传不可变对象或可变对象。
下面我们讲解下如何将元组作为参数传递。例如有一个元组,我们将其传递给一个函数进行和计算:
# -*- coding:utf-8 -*-
__author__ = u'苦叶子'
# 求和
def sum_tuple(seq):
sum = 0
for s in seq:
sum = sum + s
return sum
if __name__ == "__main__":
print(u"元组传参,求和实例:")
tuple_1 = (1, 9, 10, 2, 2, 39, 0, 11, 20)
print(tuple_1)
sum = sum_tuple(tuple_1)
print(u"和为: %d" % sum)
运行结果如下:
元组传参,求和实例:
(1, 9, 10, 2, 2, 39, 0, 11, 20)
和为: 94
下面我们将多个字符串传递给函数进行字符串连接操作:
# -*- coding:utf-8 -*-
__author__ = u'苦叶子'
# 字符串连接函数
def str_join(str1, str2, str3):
return str1 + str2 + str3
if __name__ == "__main__":
print(u"字符串连接实例: ")
str1 = u"大家好,"
str2 = u"我的公众号是:"
str3 = u"开源优测"
str_j = str_join(str1, str2, str3)
print(str_j)
运行结果如下:
字符串连接实例:
大家好,我的公众号是:开源优测