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

python-函数

时间:2018-03-22 01:48:27      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:实参   return语句   遇到   扩展   元组   定义函数   png   可扩展   就是   

技术分享图片

函数

1. 函数是什么?

  定义:

1. 一组语句通过一个名字(函数名)封装

2. 通过调用函数名执行

3.函数可以带参数

def test():     # 定义一个函数
    print(test)
    

test()  # 调用一个函数
def abc(a, b):  # 定义一个abc函数,可以带参数

    c = a+b
    return c    # 代表函数的结束并返回计算结果
    print(结果是,c)    #这句不会执行


resu = abc(3, 4)   # 调用函数abc    函数返回的结果赋给参数
print(resu)

特性:

1.减少重复代码

2.程序变得可扩展

3.变得易维护

2. 函数参数

1. 形参

  1.调用时分配内存单元,结算时释放内存单元。            ——》如下:当函数执行完时str的值就不能在函数外面使用了

  2.函数内部有效,函数执行完结束后主函数不能使用这个参数。  ——》str只有在test函数里有效

2. 实参

  1.可以是常量、变量、表达式、函数。  ——》a是变量

  2.调用函数时,要预先赋值。  ——》a要先赋值,才能进行传进函数里进行运算。

def test(str):     # str——》形参
    print(test, str)


a = 哈哈
test(a)  # a——》实参

3. 默认

  在定义函数时指定。

  调用函数时有值传入,使用函数的值。

  调用函数时没有值传入,使用默认参数的值

4. 关键

  位置参数——函数传参时必须按照函数定义的位置填。

  关键参数——使用关键参数,传参时可以不按位置填。

def test(str, age, county=CN):     # county=‘CN‘默认参数,
    print(test, str, age, county)  # county 有传值——》用函数的值 ;没传值——》用定义的值


a = 哈哈
test(a, 22, county=JP)  # a:位置参数
test(a, age=22)  # age=22 关键参数;关键参数必须放在位置参数后

5. 非固定

  不确定用户传入多少个参数。

  1.*args——》返回元组

  2.**kwargs——》返回字典

def func(*args, **kwargs):  # *args和**kwargs这个就是非固定参数
    name = args[0]   # args 返回的是一个元组
    password = kwargs[password]  # kwargs返回的是一个字典
    print(type(args), type(kwargs))
    print(name, password)


func(abc, password=123)  # 非固定参数值传入方式 ‘abc‘=>args ,‘password=123‘=>kwargs

输出:
<class ‘tuple‘> <class ‘dict‘>
abc 123

3. 函数返回

1.类型

  1.函数里可以没有return语句

2. 函数没return——函数返回值为None

3. 函数有return——函数执行结果

2. 值的数量

  1.一个——可以为一个变量

  2.多个——可以为多个变量,每个变量用逗号分隔,以元组方式返回

3. 状态

   1.遇到return语句,函数停止执行,并返回执行结果。

   2.return指定函数的结束

   3.可以返回任意数据类型

def abc(a, b):
    c = a+b
    return a, b, c   # 返回多个变量


num1, num2, resu = abc(3, 2)  # 返回几个要接几个
print(num1, num2, resu)

4. 变量

1. 全局  

  定义在函数外部,变量全局有效

2. 局部

  定义在函数内部,函数执行时分配内存空间,执行完释放。

  函数外面不能调用局部变量

name = "全局变量"  # name 在函数外,哪里都有他份


def in_or_out():
    name = "局部变量"
    print("这是in", name)  # name 在函数内部有效执行完不关他的事


in_or_out()

print("这是out", name)

output:
这是in 局部变量
这是out 全局变量

3. 作用域(后面详说)

5. 其他函数

1. 匿名

2. 高阶

3. 递归

4. 内置

python-函数

标签:实参   return语句   遇到   扩展   元组   定义函数   png   可扩展   就是   

原文地址:https://www.cnblogs.com/AYxing/p/8620854.html

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