Python基础-函数
2017-10-11 16:46
225 查看
1、函数:指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用函数名即可 2、函数的作用: 减少重复代码 方便修改,更易扩展 保持代码的一致性 3、函数的命名规则 函数名必须以下划线或字母开头,可以包含任意字母、数字或下划线的组合,不能使用任何的特殊字符或标点符号 函数名区分大小写 函数名不能使用保留字 4、函数的创建 def 函数名(参数列表): 函数体 5、函数的参数 形式参数:不是实际存在,是虚拟变量,在定义函数和函数体的时候使用形参,目的是在函数调用时接收实参(实参个数,类型与实参一一对应) 实际参数:调用函数时传给函数的参数,可以使用常量,变量,表达式,函数,传给形参 区别:形参是虚拟的,不占用内存空间,形参变量只有在被调用时才分配内存单元 实参是一个变量,占用内存空间,数据传送单向,实参传给形参,不能形参传给实参
def fansik_add(x, y): # x和y是形式参数 print(x + y) fansik_add(1, 2) # 1和2是实际参数
执行结果:
3 6、函数中参数的种类 位置参数 关键字参数 默认参数 不定长参数
def info(name, age, sex): print('Name: %s' % name) print('Age: %d' % age) print('Sex: %s' % sex) info('fansik', 45, 'male') # 位置参数,按照形参位置对应 info(age=27, name='fansik', sex='male') # 关键字参数,加载实参中 def info(name, age, sex='male'): # sex='male'为默认参数,默认参数需要放在其他参数的后边 print('Name: %s' % name) print('Age: %d' % age) print('Sex: %s' % sex) info('fansik', 45, 'male') def add(*args): print(args) sum = 0 for i in args: sum += i print(sum) add(1, 2, 2, 3, 3, 4) # 还可以继续添加 def info(*args, **kwargs): print(args) for i in kwargs: print("%s : %s" % (i, kwargs[i])) info(1, 2, 3, 3, Name='fansik', Age=24)
将一个列表作为参数传递
def fansik(*args): print(args) fanjinbao = [1, 2, 3, 4, 5] fansik(*fanjinbao)
将一个字典作为参数传
def fansik(**kwargs): print(kwargs) fanjinbao = {'name': 'zhangsan', 'age': 17} fansik(**fanjinbao)
7、函数的返回值
def fansik(): print('ok') return 'fanjinbao' fansik() print(fansik())
执行结果:
ok ok fanjinbao 说明: 函数里如果没有return,那么函数的默认返回值为None return多个对象,python会将着多个对象封装成一个元组返回 8、作用域 L:local,局部作用域,即函数中定义的变量 E:enclosing,嵌套的父级函数的局部作用域,即包含次函数的上级函数的局部作用域,但不是全局的 G:global,全局变量,就是模块级别定义的变量 B:built-in,系统固定模块里面的变量,比如int,bytearray等 搜索变量的优先级顺序依次是:局部变量>父级变量>全局变量>python内置模块变量,也就是LEGB
x = int(2.9) # int built-in g_count = 0 # global def outer(): o_count = 1 # enclosing def inner(): i_count = 2 #local print(i_count) print(o_count) inner() outer()
使用global修改全局变量
count = 0 def fansik(): global count print(count) count = 10 print(count) fansik()
以上的例子这个count修改的就是全局的count 如果注释掉global count,那print(count)中的count查找顺序就是先从本函数中查找是否存在count变量如果不存在就会直接打印全局的count, 如果存在就会打印本函数中的count,但是这个count必须要在print(count)之前,函数中的count并不是全局count 使用nonlocal修改嵌套函数的变量
def fansik(): count = 10 def nimei(): nonlocal count count = 100 print(count) nimei() print(count) fansik()
执行结果: 100 100 如果注释掉nonlocal count,那么执行结果就是: 100 10
相关文章推荐
- 【Python自学】10.函数基础(下)
- 0基础学Python(4)——验证码函数
- python 【第三篇】函数基础
- 关于python的基础知识2--函数
- Python基础三——推导式,函数,修饰器
- python基础3之函数高级特性
- python入门学习-函数基础
- python基础——sorted()函数
- python基础3 集合 三元运算 深浅拷贝 函数
- Python基础6——函数
- Python基础类型的基础函数总结
- Python函数基础
- Python新手学习基础之函数-概念与定义
- Python基础-range()函数
- 4.python函数基础
- python函数基础
- Python基础 - 内建函数
- python函数基础(2)-----内置函数、作用域、闭包、递归
- python基础之函数,递归,内置函数
- python基础系列(四)之特殊函数形式