zoukankan      html  css  js  c++  java
  • 函数

    # 函数: 对代码块的封装和定义
    # 1.函数的定义
    # 2.函数名称和函数体
    # 3.函数的调用
    # 4.参数和返回值

    # 斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144...
    # 数列从第3项开始,每一项都等于前两项之和。
    def fib(n):
    """Print a Fibonacci series up to n."""
    a, b = 0, 1
    while a < n:
    print(a, end=' ')
    a, b = b, a + b
    print()
    fib(2000) # 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

    def fib2(n: int) -> list:
    """Return a list containing the Fibonacci series up to n."""
    result = []
    a, b = 0, 1
    while a < n:
    result.append(a) # see below
    a, b = b, a + b
    return result
    # 1.return 语句可以从函数中携带着返回值返回。return 语句不携带任何表达式参数时返回 None。如果一直执行到整个函数结束还没有碰到 return 语句,也返回 None。
    # 2.语句 result.append(a) 调用了列表result的一个方法。方法是“属于”一个对象且名字叫做obj.methodname的函数,其中obj是某个对象(可能是个表达式),methodname是由该对象类型定义的方法的名称。不同类型定义了不同的方法。不同的类型的方法可以具有相同的名称而不引起歧义。(可以使用classes定义你自己的对象类型和方法,参见Classes)示例中显示的append() 方法是给列表对象定义的;它添加一个新的元素到列表的末尾。在这个示例中,它等同于result = result + [a],但是它更高效。
    # 3.如果return可以返回多个结果, 则调⽤者可以接收⼀个tuple, 调⽤者可以直接解构成多个变量

    # 默认值在函数定义的时刻,在定义的作用域中计算,因此:
    i = 5
    def f(arg=i):
    print(arg)
    print(dir(f))
    i = 6
    f() # 5


    # 获取函数默认值参数的方法
    # 1.使用函数的__defaults__魔术方法
    def f(a, L=[]):
    L.append(a)
    return L
    for i in range(3):
    print("函数默认值:", f.__defaults__) # 返回一个列表
    print(f(i))
    # 2.使用inspect.getargspec获取
    import inspect
    def f(a: str, b: list, c: str = 1, d: list = []) -> str:
    pass
    print(inspect.signature(f))
    print(inspect.getfullargspec(f))
  • 相关阅读:
    读写锁操作(ReaderWriterLockSlim)
    VirtualBox的小秘密:命令行
    云的始祖概念,认识Linux瘦客户机
    Flash ActionScript 3.0 通过asp.net 访问 数据库
    js刷新iframe框架的几种情况分析
    Mozilla两款火狐插件包含恶意代码被紧急喊停
    asp.net中DataBinder.Eval的用法总结
    实现firebird的Embedded模式(.net 3.5)
    Flash Player 9 支持H.264视频和aac音频(附官方代码)
    右下角浮动广告代码DEMO
  • 原文地址:https://www.cnblogs.com/xiaogaokui/p/10735208.html
Copyright © 2011-2022 走看看