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

    python使用函数

    def 函数名(参数):

      代码

      return

    def add(x,y):

      return (x+y)

    >>> add(5,3)
    8

    >>> add("aba"+"ada","qweqew")
    'abaadaqweqew'

    默认参数

    def add(x=5,y=3):

      return (x+y)

    >>> add()

    8

    >>> add(10,5)
    15

    >>> add(y=2,x=3)
    5

    >>> add(x=3,2)
    SyntaxError: positional argument follows keyword argument

    //*args 接受列表

    def func1(*args):
      print(args[0])
      print(type(args))
      print(args)

    >>> func1('username',"password")
    username
    <class 'tuple'>
    ('username', 'password')

    接受任意参数

    def func1(*args,**kwargs):
      print(args[0])
      print(type(args))
      print(args)
      print(type(kwargs))
      print(kwargs)

    >>> func1(1,name="username",password="password")
    1
    <class 'tuple'>
    (1,)
    <class 'dict'>
    {'name': 'username', 'password': 'password'}

    获取想要的字段

    def func2(*args,**kwargs):
    print(kwargs)
    print(kwargs["username"])
    print(kwargs["password"])

    >>> func2(username="username",password="password")
    {'username': 'username', 'password': 'password'}
    username
    password

    函数内部无法修改值

    x= 6

    def func3(x):
      x = 7
      func3(x)
      print(x)

    #变成全局变量

    def func4():

      global x
      x = 7
    func4()
    print(x)

    函数即变量

    >>> fun = add
    >>> fun
    <function add at 0x000001365D5C2E18>
    >>> fun()
    8

    函数递归            递归就是函数调用自身的过程                  但是必须要有结束条件       否则会一直调用自身

    1.要有明确的结束条件

    2.进行一次递归 规模会减小

    3.效率不高 容易栈溢出 而且python有递归层数限制 大概小于1000 

    def test(x):
      if(x>=1):
        x = x - 1
        return x+test(x)
      else:
        return 0

    例如 传入 10         结果就是45       就是9+8+7+6+5+4+3+2+1+0

    匿名函数 lambda

    lambda 参数1,参数2,参数3:函数

    >>> y = lambda x:x*x
    >>> y
    <function <lambda> at 0x0000026E3E9EAA60>
    >>> y(5)
    25

    >>> z = lambda x,y:x*2+y*3
    >>> z(3,2)
    12

    >>> mystr = lambda username,password,age:username+password+age

    >>> mystr("asd","asd","18")
    'asdasd18'

    >>> f = lambda x,y,z:(x+1,y+1,z+1)

    >>> f(1,2,3)
    (2, 3, 4)

  • 相关阅读:
    git commit --amend
    webpack代码分割
    selection And range js
    自动化测试
    python学习路线图
    Java--解决JDK14没有jre问题
    Java-win下环境变量设置
    Jenkins忘记admin密码拯救方法
    Windows或linux下 pip设置默认豆瓣镜像源
    ChromeDriver与Chrome版本对应参照表及ChromeDriver下载链接
  • 原文地址:https://www.cnblogs.com/hywhyme/p/11580580.html
Copyright © 2011-2022 走看看