zoukankan      html  css  js  c++  java
  • python课堂整理9---函数1

    函数

    一. 函数就是为了完成某一个特定的功能

    形式参数不占运行空间,只有传入实参后才占,用完立刻释放空间。

    函数一遇到 return 就结束掉了

    函数名() :运行函数,有返回值的话用变量承接

    def test(x):   # x称为形式参数
        #注释函数功能
        x += 1   #代码块
        return x   #返回值
    

    例:

    def test(x):
        y = 2 * x + 1
        return y
    a = test(3)
    print(a)
    

    二、使用函数的好处

    1. 代码的重用

    2. 保持一致性,易维护

    3. 可扩展性

    def logger():
    '日志功能'
    pass
    def index():
    logger() #调用函数使用日志功能
    print('index')
    def home():
    logger() #调用函数使用日志功能
    print('home')

    三、 函数和过程

    过程就是没有返回值的函数

    没有返回值(没有写return),返回None

    返回一个值,返回object

    返回多个值(return 0,1,2,3),返回tuple(0,1,2,3)

    四、函数参数:

    函数定义时也可以不传入形参,但要在函数体中给定值

    def test():
        x = 2
        y = x ** 2
        return y
    a = test()
    print(a)
    

    4.1 位置参数 

    要和形参一一对应,缺一不可,多一也不可

    def test(x, y, z):
        print(x)
        print(y)
        print(z)
    test(1, 2, 3)
    

    4.2 关键字参数

    位置无需固定,缺一不行,多一也不行

    def test(x, y, z):
        print(x)
        print(y)
        print(z)
    test(y = 1, x = 3, z = 2)
    

    若混合使用,位置参数必须在关键字参数的左边

    test(1, y = 2, 3)  #报错
    test(1, 3, z = 2, y = 4)   #报错,y只能传一个值
    test(1, 3, z = 2)   #正确
    

    4.3 默认参数

    def test(x, type = 'dabai'):
        print(x)
        print(type)
    test(1)
    test(1, '唉')  # 传入的实参会覆盖默认参数
    

    五、参数组(非固定长度的参数)  *列表  **字典

    *args 把位置参数处理成列表的形式

    def test(x, *args):
    print(x)
    print(args)
    print(args[0])
    test(1, 2, 3, 4, 5)

    开发的时候,预留一个 *args 用来以后扩展时用,可以先不传入参数,不会报错

    传入列表和字典时,把列表和字典当成一个整体作为了元组的第一个元素

    def test(x, *args):
        print(x)
        print(args)
    test(1, {'name': 'dabai'})
    test(1, [2,3,5,6,7])
    

    如果想把列表中的每一个元素都作为参数传给args  则用 *args

    def test(x, *args):
        print(x)
        print(args)
    test(1, *[2,3,5,6,7])
    

    若是处理多个关键字参数,用 **kwargs

    def test(x, **kwargs):
        print(x)
        print(kwargs)
    test(1, y = 2, z = 3)
    

    混合使用

    def test(x, *args, **kwargs):
        print(x)
        print(args, args[1])
        print(kwargs, kwargs.get('z'))
    test(1, 1, 2, 3, 4, 5, y=2, z=3)
    

    def test(x, *args, **kwargs):
        print(x)
        print(args, args[1])
        print(kwargs, kwargs.get('z'))
    test(1, *[1,2,3,4], **{'z': 1, 'y': 3})
    

    一个奋斗中的产品小白
  • 相关阅读:
    linux 短信收发
    sama5d3 环境检测 adc测试
    【Codeforces 723C】Polycarp at the Radio 贪心
    【Codeforces 723B】Text Document Analysis 模拟
    【USACO 2.2】Preface Numbering (找规律)
    【Codeforces 722C】Destroying Array (数据结构、set)
    【USACO 2.1】Hamming Codes
    【USACO 2.1】Healthy Holsteins
    【USACO 2.1】Sorting A Three-Valued Sequence
    【USACO 2.1】Ordered Fractions
  • 原文地址:https://www.cnblogs.com/dabai123/p/11027965.html
Copyright © 2011-2022 走看看