zoukankan      html  css  js  c++  java
  • Python Day 9 函数(函数的初识,函数的参数)

    Python Day 9  函数(函数的初识,函数的参数)

    enumerate:枚举,对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值。

    可以自定义起始值

    li = ['alex','银角','女神','egon','太白']
    for i in enumerate(li):
        print(i)
    for index,name in enumerate(li,1):
        print(index,name)
    for index, name in enumerate(li, 100):  # 起始位置默认是0,可更改
        print(index, name)
    
    
    (0, 'alex')
    (1, '银角')
    (2, '女神')
    (3, 'egon')
    (4, '太白')
    1 alex
    2 银角
    3 女神
    4 egon
    5 太白
    100 alex
    101 银角
    102 女神
    103 egon
    104 太白

    函数的初识

    函数构成

      def 关键字 空格 函数名(与变量设置相同): 英文的冒号
        函数体

      执行函数 :函数名+()

    例:

    def my_len(x):
        count = 0
        for i in x:
           count += 1
        return count
    
    l1 = [1, 2, 3, ['a','b'], {'name':'zhansan'},]
    print(my_len(l1))

    函数的返回值

    return:

      1,函数中遇到return 结束函数,下面代码不执行。
      2,将函数里面的值返回给函数的执行者(调用者)。

        第一种情况:
          只有return,返回None
        第二种情况:
          return None
        第三种情况:
          return 单个值(返回的值与单个值的类型相同)
        第四种情况:
          return 多个值 以元组的形式返回给函数的调用者。

    什么是None?
    所有的空集合,空列表,空字典.... --->None

    三元运算

    def my_max(x,y):
        if x > y:
            return x
        else:
            return y
    
    ===================
    #三元运算
    
    c = x if x > y else y    # c   x  y
    print(c)
    
    #
    def my_max(x,y):
        return x if x > y else y

    函数的参数

      实参角度

        位置参数
          一一对应,实参形参数量相等

    def my_max(x,y):      #x ,y 形参,形式参数
        return x if x > y else y
    print(my_max(10,11))  #10,11 实参,实际参数

        关键字参数
          一一对应,实参形参数量相等,实参顺序可变

    def my_max(x,y):      #x ,y 形参,形式参数
        return x if x > y else y
    print(my_max(x=10,y=11))  #关键字传参,一一对应

        混合参数 (位置参数,关键字参数)
          关键字参数必须在位置参数后面

    def my_max(x,y):      #x ,y 形参,形式参数
        return x if x > y else y
    print(my_max(10,y=11))  #混合传参,关键字参数必须在位置参数后面

      形参角度

        位置参数

          一一对应,实参形参数量相等

    def my_max(x,y):      #x ,y 形参,形式参数
        return x if x > y else y
    print(my_max(10,11))     #实参

        默认参数
          默认参数必须放在形参的位置参数后面
          默认参数不传值则为默认值,传值则覆盖默认值。

    def my_max(x,y=100):      #x ,y 形参,形式参数
        return x if x > y else y
    print(my_max(10,11))     #实参

    print(my_max(10)) #实参
     

        动态参数

    用户传入到函数中的实参数量不定时,或者是为了以后拓展,
    此时要用到动态参数*args,**kwargs(万能参数。)
    *args接收的是所有的位置参数。
    **kwargs接收的是所有的关键字参数。

    1 def func1(*args, **kwargs):
    2     print(args)
    3     print(kwargs)
    4 
    5 func1(1, 2, 3, 4)
    6 func1(x=4, y=5, z=6)
    7 func1(1, 2, 3, x=4, y=5, z=6)
    位置参数,*args,默认参数, **kwargs
    def func2(a, b, *args, sex='',age=20, **kwargs):
        print(a)
        print(b)
        print(args)
        print(sex)
        print(age)
        print(kwargs)
    func2(1, 2, 5, 6, 7, 8, 9, x=6, y=5, name='alex')
    def func3(*args,**kwargs):  # 函数的定义 *用意是聚合。
        print(args)  # (1,2,3,11,21,32)
        print(kwargs)
    
    tu2 = (11, 22, 33)
    func3(*l1, *tu1, *tu2)  #在函数的执行时,*的用意是打散。
    
    dic ={'name': 'alex'}
    dic1 ={'age': 1000}
    func3(*l1, **dic, **dic1)  #在函数的执行时,**的用意是打散。
  • 相关阅读:
    PAIP: Paradigms of Artificial Intelligence Programming
    Common Lisp第三方库介绍 | (R "think-of-lisper" 'Albertlee)
    悲惨世界
    Lisp: Common Lisp, Racket, Clojure, Emacs Lisp
    Github上四种Lisp方言的流行度 | 肉山博客 (Wenshan's Blog)
    Nginx系列~负载均衡服务器与WWW服务器的实现
    Nginx系列~Nginx服务启动不了
    知方可补不足~数据库名称和数据库别名不同了怎么办
    WebApi系列~通过HttpClient来调用Web Api接口~续~实体参数的传递
    WebApi系列~通过HttpClient来调用Web Api接口
  • 原文地址:https://www.cnblogs.com/eailoo/p/9014315.html
Copyright © 2011-2022 走看看