函数和函数式编程(一)
一、什么是函数
函数是对程序逻辑进行结构化或过程话的一种编程方法。
能将整块代码巧妙地隔离成易于管理的小块,把重复代码放到函数中而不是进行大量的拷呗。
这样既能节省空间,也有助于保持一致性,因为你只需要改变单个的拷贝而无须去寻找再修改大量复制代码的拷贝。
1.函数VS过程
我们经常那两者进行,两者都是可以被调用的实体。
我们经常看到一些带有固定功能的‘块’,能够得到一些值,比如说判断字符串是否全为数字的isdigit()。
而过程,可以说是简单的、特殊、没有返回值的函数。
2.返回值与函数类型
函数会向调用者返回一个值,而实际中大部分函数更接近过程,不显示的返回任何东西。
没有返回值的函数,在python中,对应的返回对象是none。
看看下面的例子也许对函数会有更多的理解。
def foo(): return ['xyz',100000,-98.6] def bar(): return ('abc','wo',1234) kebi = foo() x,y,z = bar() print(kebi) print(x,y) print(x)
返回值是:
['xyz', 100000, -98.6] abc wo abc #可以返回单个或者多个
元祖既可以被分解成为单独的变量,也可以直接用单一变量对其进行引用。
二、调用函数
函数的参数一般分为关键字参数和默认值
1.默认值
根据参数的默认顺序负值
def hello_2(age,name): print('{} is {} this year'.format(age,name)) hello_2('maoxian',24) hello_2(24,'小鸟') #参数的顺序要记清楚
2.关键字参数
如果你对参数顺序记得不是很清楚,你可以使用关键字参数。
def hello_2(age,name): print('{} is {} this year'.format(name,age)) hello_2(age=24,name='小鸟')
def hello_1(name,greet): #使用的是位置参数 return '%s,%s'%(name,greet) print(hello_1('kebi','Hello')) #有几个位置参数就要有几个世纪参数 print(hello_1('Hello',name= 'kebi')) #不管你是怎么传,位置参数必须在前 print(hello_1(name = 'kebi',greet='Hello')) def hello_2(name='kebi',greet = "hello"): return '%s,%s' % (name,greet) print(hello_2()) #关键字可以使用默认值 print(hello_2('kebi','Hello')) print(hello_2(greet='Hello')) def hello_3(name,greet="Hello"): #混搭要注意,位置参数要在前 return '%s,%s' % (name,greet) print('Kebi') print('Hello',name = 'kebi') print(hello_3())