zoukankan      html  css  js  c++  java
  • python-函数

    函数:

    函数是组织好的,可重复使用的,用来实现单一的,或相关功能的代码段。

    函数能提高应用的模块性和代码的重复利用率。也可以自己定义函数,叫自定义函数。

    1、定义一个函数:

    在python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。

     2、语法:python定义函数使用def关键字,一般格式如下:

    def 函数名(参数列表):
        函数体

          默认情况下,参数值和参数名称是按函数声明中定义的顺序匹配起来的。

    3、函数的调用:

        函数名([实参])

    # 定义函数
    import random
    def yan_zheng(length):
        code = ''
        a = '1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'
        for i in range(length):
            ran = random.choice(a)
            code+=ran
        print('验证码为:',code)
    
    #调用函数
    yan_zheng(4)
    yan_zheng(5)
    # 验证码为: IQls
    # 验证码为: a4kpw

    4、函数的参数:

      1》普通参数:

      参数的个数:要求定义函数时的个数与调用函数时个数要一致。

    from collections import Iterable
    
    def func(name,friends):
        # 打印信息
        print('{}的朋友们如下'.format(name))
        if isinstance(friends,Iterable):
            for friend in friends:
                print(friend)
        else:
            print(friends)
    
    # 添加朋友们friends
    def add_friend(f):
        name = input('输入朋友们的名字:')
        if isinstance(f,list):
            f.append(name)
    
    name = '钢铁侠'
    friends = ['雷神','黑寡妇','绿巨人']
    # 调用函数查看friends
    func(name,friends)
    # 添加朋友
    add_friend(friends)  # 输入朋友们的名字:gang
    print(friends)  # ['雷神', '黑寡妇', '绿巨人', 'gang']

      2》参数的类型:

         不可变:str  int  float  bool  tuple

         可变: list  set  dict  ------可变类型函数传递的是地址

        不可变的参数给的是值  

        可变的参数给的是地址

    5、函数的参数:

      1》默认值参数:在定义函数的时候,对某个参数设置一个固定的值。

         def func(a,b=10):

         其中b = 10 就是默认值

         调用时:

         func(8)   ----- a=8,b=10  此时使用了默认b=10的值

         func(1,5) ----- a = 1,b=5  此时5替换了原来的默认值

       注意:在定义默认值的时候必须要放在参数的后面,否则报错

    def func(a,b=10):
        r = a + b
        print(r)
    
    func(8)   # 18
    func(4,5) # 9

      2》关键字参数:在调用的时候通过关键字的方式明确指明是给哪一个参数的

        func(b=6)   ----- b=7就是关键字的方式

        func(b=1,a=2)    ----  顺序乱也是没有关系,关键是能够明确给那个参数赋值

    def func(b=8,a=10):
        r = a + b
        print(r)
    
    func(a=4,b=5) # 9

      补充:拆包、装包

    list1 = [4,7,8]
    n1,n2,n3 = list1  # 先做拆包动作再给前面变量赋值
    print(n1,n2,n3)  # 4 7 8
    
    list2 = [1,2,3,6,7,8]
    x,y,*z = list2
    print(x,y,z)  # 1 2 [3, 6, 7, 8]
    x,*y,z = list2
    print(x,y,z)  # 1 [2, 3, 6, 7] 8

      3》可变类型参数:*args    **args

      def   函数名(*args,**args):

        pass

      args   --->()     元组 底层会将所有的位置参数存放到args

      kwargs   ---->{}   字典  会将所有的关键字参数放到字典中

      调用:

      函数名(1,2,3)    ------  1,2,3  位置参数   ---- (1,2,3)

      函数名(a=1,b=2) ----- a = 1,b=2 关键字参数 -------{'a':1,'b':2}

    def func(a,b=0,*args):
        print(a)
        print(b)
        print(args)
    
    func(4,6,7,8,9)  
    # 4
    # 6
    # (7, 8, 9)
    func(6)
    # 6
    # 0
    # ()
    func(1,2)
    # 1
    # 2
    # ()

    注:只要函数定义中出现可变参数,则在使用关键字参数的时候要慎重。

    ----------------

    def func1(a,*args):
        print(a)
        print(args)
    
    func1(10)
    func1(1,2,3)
    # 只要调用函数,参数是至少必须填一个的

    **args 关键字参数

    def func2(*args,**kwargs):
        print(args)   # ()
        print(kwargs)  # {}
    
    调用func2
    func2()
    func2(1,2,3,4)
    func2(1,3,5,a=6,b=10)
    一路独行,遇见最好的自己!!!
  • 相关阅读:
    Bootstrap入门
    CSS3动画详解(图文教程)
    CSS3属性详解(图文教程)
    CSS3选择器详解
    HTML5详解
    jQuery动画详解
    jQuery的介绍和选择器详解
    html 出现粒子线条,鼠标移动会以鼠标为中心吸附的特效之canvas-nest.js插件
    div 内容宽度自适应、超出后换行
    layui layui.open弹窗后按enter键不停弹窗问题的解决
  • 原文地址:https://www.cnblogs.com/rungang/p/11278192.html
Copyright © 2011-2022 走看看