Python学习笔记03-函数

函数的定义形式

def (arg1, arg2,..., argN):
      

函数的名字以字母开头,可以包括下划线,但不能使用python的关键字。函数体的每个语句都需要缩进。

1. 无返回值的函数

def hello():
    print('hello python')

def hello1(name):
    print('hello %s' %name)

2. 有返回值的函数

def sum(x, y):
    return (x + y)

3.默认参数的函数

def func(x, y=100):
    print(x, y)

func(10)
func(100, 200)
func(y = 500, x = 200)

输出

10 100
100 200
200 500

4.可变参数的函数

  • 可变参数:参数前加星号,表示将其余位置参数收集到一个元组
  • 不能收集关键字参数
def func(name, *nums):
    print(name)
    print(nums)

func('Tony',1,2,3,4,5)

输出

Tony
(1, 2, 3, 4, 5)

5.关键字参数的函数

  • 关键字参数:调用函数传入参数时提供参数名
  • 参数前加两个星号,可以把关键字参数收集到字典
def function(name, **kvs):
    print(name)
    print(kvs)

function('Jobs', city='shenzhen', addr='futian')

输出

Jobs
{'city': 'shenzhen', 'addr': 'futian'}

6.命名关键字参数的函数

def func(*, city, addr): # *用于和普通参数作分割,*args是一个效果
    print(city, addr)

func(city='beijing', addr='tiananmen')# 必须传入参数名

输出

beijing tiananmen

7.复杂参数

def func(a, b, c=0, *args, **kvs):
    print(a,b,c,args,kvs)

func(1,2)
func(1,2,3)
func(1,2,3,4,'a','b')
func(1,2,3,4,'a','b',city='Beijing',addr='Tiananmen')
func(1,2,3,*(4,'a','b'),**{'city':'Beijing','addr':'Tiananmen'})

输出结果

1 2 0 () {}
1 2 3 () {}
1 2 3 (4, 'a', 'b') {}
1 2 3 (4, 'a', 'b') {'city': 'Beijing', 'addr': 'Tiananmen'}
1 2 3 (4, 'a', 'b') {'city': 'Beijing', 'addr': 'Tiananmen'}

lambda函数

定义lambda函数的形式:

lambda 参数 : 表达式

举个例子

g = lambda x,y: x*y
print(g(3,4))

# 带有默认参数
add = lambda x,y=0,z=0: x+y+z
print(add(1))
print(add(3,4,5))

End

你可能感兴趣的:(Python学习笔记03-函数)