美文网首页
第二天:Python函数

第二天:Python函数

作者: VolleyZ | 来源:发表于2020-01-03 15:46 被阅读0次

函数

isinstance(x, int):检查参数类型
callable(object):检查一个对象是否是可调用的。函数、方法、lambda 函式、 类以及实现了 call 方法的类实例, 它都返回 True

>>> callable(0)
false
def func():
  pass
>>> callable(func)
true
1.可变参数:numbers
`在参数前加个*号表示把numbers的所有元素作为可变参数传进函数内部。
在函数内部,参数numbers接收到的是一个`tuple``
def function(*numbers):
   pass

2.关键字参数:kw
`关键字参数允许你传入0个或任意个含参数名的参数,
关键字参数在函数内部自动组装为一个`dict``
def person(name, age, **kw):
    print('name:', name, 'age:', age, 'other:', kw)
>> person('Bob', 35, city='Beijing')
name: Bob age: 35 other: {'city': 'Beijing'}

>>> extra = {'city': 'Beijing', 'job': 'Engineer'}
>>> person('Jack', 24, **extra)
name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}

3.命名关键字参数:
`命名关键字参数需要一个特殊分隔符*,`*`后面的参数被视为命名关键字参数.
命名关键字参数必须传入参数名,可以理解为是参数前加了个描述`
def person(name, age, *, city, job):
    print(name, age, city, job)
>>> person('Jack', 24, city='Beijing', job='Engineer')
Jack 24 Beijing Engineer

参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数

递归:如果一个函数在内部调用自身本身,这个函数就是递归函数。
举例:fact(n) = n! = 1 x 2 x 3 x ... x (n-1) x n = (n-1)! x n = fact(n-1) x n
fact(n)用递归的方式写出来就是:

`这里需要注意的是`:递归函数需要注意防止栈溢出。在计算机中,函数调用是通过栈(stack)这种数据结构实现的,
每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。
由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。fact(1000):就会栈溢出。所以这种方法不太好。
def fact(n):
    if n==1:
        return 1
    return n * fact(n - 1)

`解决递归调用栈溢出的方法是通过尾递归优化`:尾递归是指,在函数返回的时候,调用自身本身,并且,return语句不能包含表达式。
这样,编译器或者解释器就可以把尾递归做优化,使递归本身无论调用多少次,都只占用一个栈帧,不会出现栈溢出的情况。
def fact(n):
    return fact_iter(n, 1)

def fact_iter(num, product):
    if num == 1:
        return product
    return fact_iter(num - 1, num * product)

相关文章

  • Python - 2017/01/28-函数

    调用python内置函数 函数名(参数) 即可调用python内置函数 help(函数名) 返回python对于函...

  • Python函数式介绍一 - 高阶函数

    Python函数式介绍一 - 高阶函数Python函数式介绍二 - 链式调用 最近为了给朋友推广Python函数式...

  • Python高阶函数学习笔记

    python中的高阶函数是指能够接收函数作为参数的函数 python中map()函数map()是 Python 内...

  • Python学习笔记1

    Python注释 Python变量 Python运算符 Python输入输出 输入函数 输出函数(3.x) ...

  • Python:内置函数

    python的内置函数,匿名函数 内置函数 内置函数就是python给你提供的,拿来直接用的函数,比如print,...

  • 二级Python----Python的内置函数及标准库(DAY

    Python的内置函数 嵌入到主调函数中的函数称为内置函数,又称内嵌函数。 python的内置函数(68个) Py...

  • python3 range() 函数和 xrange() 函数

    python3 range 函数 python3 取消了 xrange() 函数,并且和 range() 函数合并...

  • 7、函数

    1、Python之什么是函数 2、Python之调用函数 Python内置了很多有用的函数,我们可以直接调用。 要...

  • Python入门

    Python3教程 安装Python 第一个Python程序 Python基础 函数 高级特性 函数式编程 模块 ...

  • Python函数详解

    函数是Python里组织代码的最小单元,Python函数包含以下几个部分: 定义函数 调用函数 参数 函数的返回值...

网友评论

      本文标题:第二天:Python函数

      本文链接:https://www.haomeiwen.com/subject/abscoctx.html