码迷,mamicode.com
首页 > 编程语言 > 详细

python 函数初识

时间:2019-11-26 13:50:15      阅读:54      评论:0      收藏:0      [点我收藏+]

标签:技术   python解释器   基本   报错   显示   作用   oca   参数   文件   

函数初识

函数的基本格式:

关键字(def) 函数名(形参)冒号                     形参:用来接收实参传的数据
        输出的内容print()                      注意: 形参的顺序: 位置参数 , 动态参数 , 默认参数
        return 返回值                 return:可以写也可以不写,写return, 不写返回值返回的是None
函数的调用(实参) #也接收返回值                   实参:用来给形参传送数据的
                        实参:位置参数 > args(动态位置参数) > 默认值参数 > *kwargs(动态默认参数)
                            传参:实参给形参传递的过程就叫做传参              
                            
例子:

def func(a,b): 形参
    c = a if a > b else b   #三元一次方程式
a = func(10,20)实参   #形参和实参传入的内容必须一一对应
print(a)             #a是接收返回值的接收者,   打印最终结果


函数的动态参数:

分为两种(*args,**kwargs) 
#*args是接收动态位置参数已元组的方式接收。
#**kwargs是接收动态关键字参数已字典的方式接收。

例子(*args):

def func(*args):
        print("我想吃",args)  #打印时不能加*, 加*等于打散,以位置参数形式显示
func("麻婆豆腐","水煮肉","蒜蓉西兰花") 位置参数
结果:
我想吃 ('麻婆豆腐', '水煮肉', '蒜蓉西兰花') 以元组的方式显示

例子(**kwargs)

def func(**kwargs):
    print(kwargs)  #打印时不能加*, 加*等于打散,以字典键的形式显示
func(a ="扎金花",b = "斗地主",c ="跑得快",d ="德州扑克") 关键字参数
结果:
{'a': '扎金花', 'b': '斗地主', 'c': '跑得快', 'd': '德州扑克'} 以字典的方式显示

例子(*args,**kwargs):

def func(*args,**kwargs)
        print(args)
        print(kwargs)
func(1,2,3,4,5,a="你瞅啥",b="瞅你咋的",c="在瞅一个试试",d="试试就试试")
结果:
(1, 2, 3, 4, 5) *args接收
{'a': '你瞅啥', 'b': '瞅你咋的', 'c': '在瞅一个试试', 'd': '试试就试试'} **kwargs接收

函数的命名空间

函数在被执行后没有返回值的时候,里面的内容也会一起删除,节省内存空间。

例子:

def func():
    a = 10
    print(a)
func()     没有return返回值 里面的内容自动销毁。
print(a) 此时是打印不了a的,因为已经销毁了,执行后会报错,找不到a。

? 命名空间分类: 
? 1. 全局命名空间--> 我们直接在py文件中, 函数外声明的变量都属于全局命名空间 
? 2. 局部命名空间--> 在函数中声明的变量会放在局部命名空间 
? 3. 内置命名空间--> 存放python解释器为我们提供的名字, list, tuple, str, int这些都是内置命名空间 

加载顺序:内置空间??全局空间??局部空间
取值顺序: 局部空间??全局空间??内置空间

作用域: 作用域就是作用范围, 按照生效范围来看分为 全局作用域 和 局部作用域 
   全局作用域: 包含内置命名空间和全局命名空间. 在整个文件的任何位置都可以使用(遵循 从上到下逐?执行).
   局部作用域: 在函数内部可以使用.
   
作?域命名空间: 
全局作用域: 全局命名空间 + 内置命名空间 
局部作用域: 局部命名空间 


函数的嵌套:
nonlocal: 只修改上一层变量,如果上一层中没有变量就往上找一层,只会找到函数的最外层,不会找到全局进行修改
global: 在函数内部修改全局的变量,如果全局中不存在就创建一个变量

嵌套示例:

a = 1
def fun_1():   
    a = 2   
    def fun_2():       
        nonlocal a       
        a = 3       
        def fun_3():           
            a = 4           
            print(a)       
        print(a)       
        fun_3()       
        print(a)   
    print(a)   
    fun_2()   
    print(a)
print(a)
fun_1()
print(a)
结果:
1
2
3
4
3
3
1

技术图片

python 函数初识

标签:技术   python解释器   基本   报错   显示   作用   oca   参数   文件   

原文地址:https://www.cnblogs.com/biyunfeng/p/11934605.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!