python-函数-函数定义与调用
1. 函数定义与调用
-
函数
是指一段可以直接被另一段程序或代码引用的程序或代码。 在编写代码时,常将一些常用的功能模块编写成函数,放在函数库中供公共使用,可 减少重复编写程序段和简化代码结构。
-
函数语法
def 函数名称(参数1, 参数2, ...): <代码块> return <表达式>
-
示例:
def hello(): print("Hello World!") hello() # 调用函数
-
函数参数
-
函数基本使用
def hello(): return "hello world" print(hello())
-
函数传参
def hello(n): return f"hello {n}" s = hello(1) print(s)
-
示例:求和函数
def f(a, b): return a + b print(f(1,2)) # 按参数位置赋值 print(f(b=2,a=1)) # 按对应关系赋值
-
示例:生成序列列表
def seq(n): result = [] x=0 while x < n: result.append(x) x += 1 return result print(seq(9))
-
参数默认值
参数默认值: 预先给参数定义默认值,如果调用函数时没指定该值,则用默认值
def f(a,b=2): # b参数不传参,默认值是2 return a + b print(f(1)) # 这里没有传b的参数,b默认传参2, 得到的结果是3 print(f(1,3)) # 给b传参为3,1+3 得到的结果为4
-
接收任意数量参数
前面学习的是固定参数数量,当不知道有多少个参数时可以在参数前面加*与**,表示可接收任意多个参数。
-
*args 接收任意多个参数,并放到一个元组中,
-
**kwargs 接收一个键值,并存储为字典
-
示例:
-
示例1:传入多个参数,计算总和
def func(*args): x = 0 for i in args: x += i return x print(func(1,2,3))
-
示例2:传入多个键值,进行处理
def func1(**kwargs): for k, v in kwargs.items(): print("名称:%s\t价格:%s" % (k, v)) func1(主机=5000, 显示器=1000, 鼠标=60, 键盘=150)
-
-
-
-
匿名函数
-
匿名函数: 没有名字的函数,使用lambda关键字定义,一般仅用于单个表达式。
-
示例:求和函数
#!/usr/bin/env python # _*_ coding: utf-8 _*_ # Author:shichao # File: .py # 普通变量实现 s = lambda a,b: a+b print(s(1,2)) # 匿名函数 def func(a,b): return a + b
-
2. 案例
-
案例1.函数的基本使用
#!/usr/bin/env python # _*_ coding: utf-8 _*_ # Author:shichao # File: .py # 基本使用 def hello(): return "hello world" print(hello()) # 函数传参 def hello(n): return f"hello {n}" s = hello(1) print(s)
-
案例2. 求和函数
#!/usr/bin/env python # _*_ coding: utf-8 _*_ # Author:shichao # File: .py # 函数求和 def number(a,b): return a+b n = number(3,6) print(n)
-
案例3. 生成序列列表
#!/usr/bin/env python # _*_ coding: utf-8 _*_ # Author:shichao # File: .py # 生成序列列表 def seq(n): result = [] x = 0 while x < n: result.append(x) x += 1 return result print(seq(9))
-
案例4. 参数默认值
#!/usr/bin/env python # _*_ coding: utf-8 _*_ # Author:shichao # File: .py def f(a,b=2): # b参数不传参,默认值是2 return a + b print(f(1)) # 这里没有传b的参数,b默认传参2, 得到的结果是3 print(f(1,3)) # 给b传参为3,1+3 得到的结果为4
-
案例5. 函数参数:接收任意数量参数
-
案例1、传入多个参数,计算总和
#!/usr/bin/env python # _*_ coding: utf-8 _*_ # Author:shichao # File: .py # 使用*args def func(*args): x = 0 for i in args: x += i return x print(func(1, 2, 3))
-
案例2、传入多个键值,进行处理
#!/usr/bin/env python # _*_ coding: utf-8 _*_ # Author:shichao # File: .py # 使用**kwargs def func1(**kwargs): for k, v in kwargs.items(): print("名称:%s\t价格:%s" % (k, v)) func1(主机=5000, 显示器=1000, 鼠标=60, 键盘=150)
-
-
案例6:匿名函数
#!/usr/bin/env python # _*_ coding: utf-8 _*_ # Author:shichao # File: .py # 普通变量实现 s = lambda a,b: a+b print(s(1,2)) # 匿名函数 def func(a,b): return a + b