• 函数名,函数体,返回值,参数


    1. 函数
     def 函数名(): #函数名与变量相同
      函数体

    (1) 函数返回值: return
     1. 遇到return,结束函数 

     def list_a():
      print(123)
      print(456)
      return
      print(798)
      print(abc) 
     list_a()
     #输出结果
     123
     456
     
    (2) 给函数的调用者返回值:
     s1 = '123325436456'

     def my_len(): #函数定义()放的是形式参数
      count = 1
      for i in s1:
       count += 1
      return count
     ss = my_len() #<---第一步先执行 #函数的执行()实际参数,实参
     print(ss) #返回值给print 打印count
     
     
     13  <----这就是返回值
     
     无return 返回None
     return 不写 或者None 返回None
     return 单个数据,后面写什么 返回什么(int)
     return 多个数据,返回元祖(tuple)
     
     还可以分别赋值
     def my_len():
      count = 1
      for i in s1:
       count += 1
      return 666,222,count
     off1,off2,off3 = my_len()
     print(off1)
     print(off2)
     print(off3)
     
     s1 = '123325436456'
     a = [1,2,3,4,5,'老男孩']
     b = 'adsfasfsadfgd'

     def my_len(ff):
      count = 1
      for i in ff:
       count += 1
      return count
     ret = my_len(a)
     oo = my_len(b)
     kk = my_len(s1)
     print(ret)
     print(oo)
     print(kk)
     #输出结果
     7
     14
     13
     传参方向:
     从实参角度
     (1)位置参数 #必须一一对应,按顺序
     def funcl(x,y):
        print(x,7)
     funcl(1,2)
     输出结果
     1 2
     (2)关键字参数 #必须一一对应,不分顺序
     def funcl(x,y,z):
      print(x,y,z)
     funcl(y=2,x=3,z=5)
     输出结果
     3 2 5
     小练习:传参2个数,比较大小,打印大的数
     def l_n(x,y):
        if x > y:
            print(x)
     l_n(6,5)
     或者
     def l_n(a,b):
     return a if a > b else b
     print(l_n(3,2))
     
     (3)混合参数(有位置还有关键字参数)----关键字参数必须在位置参数的后面
     def fa2(a1,a2,a3):
        print(a1)
        print(a2)
        print(a3)
     a2(1,2,a3=4)
     
     从形参角度
     (1)位置参数 #必须一一对应,按顺序
     def funcl(x,y):
        print(x,7)
     funcl(1,2)
     
     (2)默认参数#
     def register(name,sex='男'): #sex 默认是男
      with open('register',encoding='utf-8',mode='a') as f:
       f.write('{} {} '.format(name,sex))
     while True:  
      username = input('请输入姓名: /q 退出')
      if username.upper() == 'Q':break
      sex = input('请输入性别: ')   #全是男的 就可以默认参数
      register(username,sex)
     
     (3)动态参数 *args , **kwargs 万能参数 # 函数的定义 * 聚合。
     def func2(*args,**kwargs):
      print(args) #元祖(所有位置参数)
      print(kwargs) #字典
     func2(1,2,3,4,5,6,7,11,'alex','老男孩',a='ww',b='qq',c='222')
     
     def func3(a,b,sex='男',*args)
      print(a)
      print(b)
      print(sex)
      print(args)
     func3(1,2,'老男孩','alex','wusir') #顺序,位置参数,*args,默认参数 **kwargs
     

     def funcl(*args,**kwargs):
      print(args)
      print(kwargs)
     ll = [1,2,3,4]
     lll = (1,2,3,4)
     12 = ['alex','wusir',4]
     funcl(*ll,*12,*lll) # 函数的执行: *打散功能

     (1, 2, 3, 4, 'alex', 'wusir', 4, 1, 2, 3, 4)
     {}

     def funcl(*args, **kwargs): #函数的聚合
      print(args)
      print(kwargs)

     dic1 = {'name1':'liyun'}
     dic2 = {'name2':'laowang'}
     funcl(**dic1,**dic2) #函数的打散

  • 相关阅读:
    List数组细解
    iOS之缓存
    Java_String的操作
    weak的理解
    Swift_单利
    Java 抽象类和接口
    Java 继承中的问题
    java 成员变量与局部变量
    纪中第十九天
    cin快读
  • 原文地址:https://www.cnblogs.com/liwei-python-21/p/8895010.html
Copyright © 2020-2023  润新知