Python函数的定义格式:
Python中使用def定义函数,具体的函数格式如下:
def 函数名(参数1,参数2,……,参数n):
函数体
函数名一般由字母、下划线和数字组成。def是英文单词define的简写。参数列表中的变量不需要指定参数类型,因为在Python中变量的类型是不固定的。函数体的书写要注意按照Python的缩进要求,缩进四个字符。
函数的参数和返回:
在定义函数时,参数可以初始化值,也可以不初始化值。经过初始化值得参数,在调用的时候也可以重新赋予值。在调用函数时,可以给函数传递一个长度和参数个数相同的tuple变量(tuple变量前要加一个*号)。函数的执行结果由语句return进行放回。具体实例如下:
def add_function(a,b):
print('result is ' + str(a + b));
def sub_function(a,b = 2):
print('result is ' + str(a - b));
def print_function(a = 1,b = 2):
print('a is ' + str(a) + ',b is ' + str(b));
if __name__ == '__main__':
add_function(1,2);#输出result is 3
sub_function(3,1);#输出result is 2
sub_function(3);#输出result is 1
print_function();#输出a is 1,b is 2
print_function(2);#输出a is 2,b is 2
print_function(3,3);#输出a is 3,b is 3
arg = (4,4)
print_function(*arg);#输出a is 4,b is 4
参数个数不确定:
函数的参数的个数有的是0个,有的是1个,更多的时候是多个。甚至有的时候函数参数的个数是不确定的。这时则可以在参数前加一个“*”号,来表示已tuple类型来收集接收到的若干参数;或者在参数前加两个*号(**),表示以Dict类型来收集接收到的若干参数
def arg_function(x,*arge):
print(x);
print(arge);
def arg2_function(x,**arge):
print(x);
print(arge);
if __name__ == '__main__':
arg_function(1,2,3,4,5);
#输出
#1
#(2,3,4,5)
arg2_function(1,name = "Tom",age = 12,address = "中国");
#输出
#1
#{'name': 'Tom', 'age': 12, 'address': '中国'}
设计函数的原则:
(1)尽量不要使用全局变量
(2)如果参数是可变类型数据,则在函数被不要修改它
(3)每个函数的的功能和目的要单纯,不要一个函数试图解决多个问题。
(4)一个函数的行数要尽可能的少,设计尽可能的简洁。
(5)函数的独立性越强越好,不要试图和外部的功能产生联系。
--参考跟老齐学Python