zoukankan      html  css  js  c++  java
  • python(函数初识)

    1.函数的返回值

      return关键字的作用

      return是一个关键字,在pycharm里,会变成蓝色的关键字。

    1.1没有写返回值  

      如果未定义返回值,会默认返回一个None。

    1 def my_len(str):
    2     length = 0
    3     for i in str:
    4         length += 1
    5     print(length)
    6 ret = my_len('hello,world')
    7 print(ret)
    无返回值

    1.2 返回一个值

    1 def my_len(str):
    2     length = 0
    3     for i in str:
    4         length += 1
    5     return length
    6 ret = my_len('hello,world')
    7 print(ret)
    返回一个值

    1.3返回多个值

     返回的多个值会被组织成元祖, 也可以用多个值来接收

     1 def ret_demo():
     2     """
     3 
     4     :return: 多个值
     5     """
     6     return 1,2,3,4
     7 def ret_demo2():
     8     return  1,['a','b'],3,4
     9 
    10 ret = ret_demo()
    11 print(ret) # (1, 2, 3, 4)
    12 ret2 = ret_demo2()
    13 print(ret2)# (1, ['a', 'b'], 3, 4)
    返回多个值

    原因:序列化解压

     1 # 序列解压一
     2 a,b,c,d = (1,2,3,4)
     3 print(a)
     4 a,_,_,d = (1,2,3,4)
     5 print(d)
     6 a,*_ =(1,2,3,4)
     7 print(*_)
     8 # 同样也适用于字符串、列表、字典、集合
     9 a,b = {'name':'eva','age':18}
    10 print(a,)
    11 print(b)

    2. 函数的参数

    2.1 位置参数

      2.1.1 按照位置传值
    1 # 位置传参
    2 def mymax(x,y):
    3     return x if x>y else y
    4 ma = mymax(10,20)
    5 print(ma)
    按位置传值
      2.1.2 按照关键字传值
    1 # 按照关键字位置去传递参数
    2 def mymax(x,y):
    3     return x if x>y else y
    4  ma = mymax(y=10, x=20)
    5 
    6 print(ma)
    按照关键字传值

      2.1.2位置、关键字混合使用

    1 def mymax(x,y):
    2     return x if x>y else y
    3 ma = mymax(10,y=20)
    4 print(ma)
    位置、关键字混合使用

      正确用法:

      ①、位置参数必须在关键字参数的前面

      ②、对于一个形参只能赋值一次

    2.2 默认参数

      2.2.1.正常使用

      为什么要有默认参数:将变化比较小的值设置为默认参数

      2.默认参数的定义

    1 # 默认参数
    2 def stu_info(name,sex="male"):
    3     print(name,sex)
    4     return 'a'
    5 print(stu_info('alex'))
    6 print(stu_info('eva','female'))
    默认参数
      2.2.2 参数陷阱

      参数陷阱:默认参数是一个可变数据类型

    1 # 参数陷阱:默认参数是一个可变数据类型
    2 def defult_param(a,l=[]):
    3     l.append(a)
    4     print(l)
    5 print(defult_param('egon'))
    6 print(defult_param('alex'))
    参数陷阱

    2.3 动态参数

    动态参数,也叫不定长参数,也就是你需要传递的参数很多,不定个数,这种情况下,需要使用*args,**kwargs,
    *args是元祖形式,接收出去键值对以外的所有参数。
    *kwargs接收的只是键值对的参数,并且只保存在字典中
    1 def trans_para(*args, **kwargs):
    2     print(args, type(args))
    3     print(kwargs, type(kwargs))
    4 # 调用
    5 trans_para("jinxin",12,[1,2,3,4,],[3,4,],(1,4,7),{"a": "123", "c":456}, country="china")
    动态参数

      

  • 相关阅读:
    C#中 @ 的用法
    ASP.NET页面间传值
    ASP.NET中常用的文件上传下载方法
    把图片转换为字符
    把图片转换为字符
    JavaScript 时间延迟
    Using WSDLs in UCM 11g like you did in 10g
    The Definitive Guide to Stellent Content Server Development
    解决RedHat AS5 RPM安装包依赖问题
    在64位Windows 7上安装Oracle UCM 10gR3
  • 原文地址:https://www.cnblogs.com/shine-rainbow/p/9782520.html
Copyright © 2011-2022 走看看