ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python基础函数

2019-03-15 08:49:21  阅读:155  来源: 互联网

标签:函数 Python args 基础 命名 参数 print def


一、函数的定义

def是python中定义函数的关键字

# 写完函数,程序是不执行的,使用函数名()来调用函数
def f():
    print("aaa")
    print("xxx")
    print("yyy")
f()

# 当执行函数的时候,函数默认是有返回值,默认为None
# return不写默认为None,当执行到return到时候后面不在执行,类似break
def f():
    print("aaa")
    print("xxx")
    print("yyy")
    return "It's OK"
f()
print(f())

# 当retur后面有一个值的时候,返回这个值.当有多个值的时候返回一个元组

二、函数的参数

函数的参数就是在函数名后面括号里面的一个参数

def f(a):
    print("xxx")
    print(a)
    print("OK")
f("Its Ok")

 2.1、参数的分类

形参:写在函数声明的位置为形参,形式上表示完整的

实参:在函数调用的时候给函传递的值为实参

传参:在调用函数的时候给实参给形参传递参数的过程为传参

# 位置参数,按照位置来赋值
def f(x, y):
    z = x + y
    return z

print(f(3, 7))


# 编写函数传递函数,比较两个参数大小
def f(x, y):
    if x > y:
        return x
    else:
        return y

print(f(3, 9))

# 此上面写法有点麻烦,使用三元运算符
def f(x, y):
    z = x if x > y else y
    return z

print(f(4, 7))
# 当定义的参数非常多的时候,关python提供一种键字参数
# 关键字参数不需要记住每个参数位置,只需要知道参数就可以
def f(a, b, c):
    print(a)
    print(b)
    print(c)

print(f(a="11111", b="22222", c="3333"))
# 混合参数就是位置参数和关键子参数混合使用
# 当在调用当时候可以给出位置参数, 或者指定关键字参数
# 在传参的时候位置参数必须和形参里面的位置参数想对应
def f(a, b, c):
    print(a)
    print(b)
    print(c)

print(f("111", b="222", c=200))

 三、动态参数

当传入很多参数,或者不指定传入来那些参数时,需考虑使用动态传参

# 在参数位置使用*号表示接受任意参数
# 其中结果为 返回一下元组
def f(*args):
    print(*args)

print(f("x", "y", "z"))

# 当存在位置参数和动态参数时,位置参数必须在动态参数前面
# 否则动态参数会把所有位置参数都给接收
def f(x, y, *args, z="666"):
    print(x, y, *args, z)

print(f(1, 2, "aaaaa"))

# 当在形参存在默认参数时候,在动态参数后面,不给出关键字传参.默认也是会生效当的
# 形参的顺序: 位置参数,动态参数,默认参数

在python中动态可以接收位置参数只能通用*来表示,无法接收关键字参数,那python又提供一个**用来接收关键字参数

# 接收关键字参数用**表示
# **kwargs默认是输出是字典格式
def f(**kwargs):
    print(*kwargs)  #默认输出是字典格式,如此添加*号为字典都key值

print(f(x=1,y=2,z=3))

# 动态接收参数顺序:动态位置参数,默认值参数,动态关键字参数

# 当想接收所有参数时,可以使用动态位置参数和动态关键字参数搭配使用
def f(*args,**kwargs):
    print(args,kwargs)

print(f(1,2,3,4,x="aaaa",y="bbbbb"))

四、函数的注释

def logo(*args,**kwargs):
    """
    函数此为登录系统       #描述此函数
    :param args:        #描述参数的意思
    :param kwargs:      #描述参数的意思
    :return:            #执行完后返回调用值
    """
    print(args,kwargs)

五、名称空间

名称空间分为三种:内置命名空间,全局命名空间,局部命名空间。

内置命名空间:存放在python解释器提供的名字,例list、dict、str、int等都是内置命名空间

全局命名空间:在python文件中,函数以外的都属于全局命名空间

局部命名空间:在函数中声明得变量都属于局部命名空间

5.1、内置命名空间加载的顺序

加载顺序:

  内置命名空间

  全局命名空间

  局部命名空间

取之顺讯:

  局部命名空间

  全局命名空间

  内置命名空间

x = 10

def f():
    x = 20
    print(x)

print(f())

5.2、作用域

为作用的范围,按照生效的范围来划分:全局作用域,局部作用域

全局作用域:包括内置命名空间和全局命名空间,在整个文件中的任何位置都可以使用

局部作用域:在函数内部使用

六、gloabal、nonlocal

# globa表示不在使用局部作用域中都内容,而该用使用全局作用域变量
a = 10

def f():
    global a
    a = 28
    print(a)

print(f())
# nonlocal表示值修改那个一层的,如果上一层没有变量就会往上一层找,只会找到函数最外层不会到全局进行修改
a = 10

def f():
    a = 20
    def l():
        nonlocal a
        a = 30
        print(a)
    l()
    print(a)
    
print(f())

 

标签:函数,Python,args,基础,命名,参数,print,def
来源: https://www.cnblogs.com/Matt-Pei/p/10532083.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有