一、作用:
1.减少重复代码
2.方便修改,更易扩展
3.保持代码一致性
二、命名规则:同变量,见-> python基础知识
三、函数的参数:
1.必需参数:必须以正确的顺序传入函数,调用时的数量必须和声明时一样
def print_info(name, age): print('Name: %s' % name) print('Age: %d' % age) print_info('Tom', 22)
2.关键字参数:
print_info(name='Tom', age=22)
3.默认参数:一定要跟在其它参数后面(加在形参里)
def print_info(name, age, sex='male'): # 默认参数
4.不定长参数:
(1)
加法器 def add(*args): # 通过(*)号接收所有未命名的参数 print(args) num = 0 for n in args: num += n print(num) add(1, 2, 3)
(2)
def print_info(**kwargs): # 加(**)的变量,接收键值对参数,放到字典中 print(kwargs) for i in kwargs: print('%s : %s' % (i, kwargs[i]))
print_info(name='Tom', age=22, job='IT')
>>> {'name': 'Tom', 'age': 22, 'job': 'IT'}
name : Tom
age : 22
job : IT
注意:关于不定长参数(形参)的位置:未命名(*args)在左,有命名(**kwargs)在右;如果有默认参数,放左边
四、返回值:1.结束函数;2.返回某个值给对象
def f(): print('ok') return 10 # 作用:1.结束函数;2.返回某个值给对象 a = f() print(a)
>>> ok
10
注意:函数如果没有return,会默认返回一个None; 如果return多个对象,python会把多个对象封装成一个元组返回
def f(): return 10, '123', [1, 2] print(f())
>>> (10, '123', [1, 2])
五、函数作用域:定义的变量只在自己的块儿内有效,出了函数的范围相当于没定义
注意:全局作用域变量不能在局部作用域里面修改,只能查看;对于一个变量,内部作用域先声明就会覆盖外部变量,不声明就直接使用外部作用域的变量;
变量查找顺序:python内置->当前模块中的全局->外部作用域->内部作用域局部