`
JackyCheng2007
  • 浏览: 253847 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

学习Python 3000 - 1 函数定义

阅读更多
定义函数 - def func():

def fib(n):    # write Fibonacci series up to n
    """Print a Fibonacci series up to n."""
    a, b = 0, 1
    while b < n:
        print(b, end=' ')
        a, b = b, a+b
        print()


def 是函数定义关键字。后面跟函数名称和参数列表,以冒号结尾,另起一行,并缩进一个TAB开始函数正文。
#是单行注释,"""  """ 是大块注释。
符号表(symbol table)a, b = 0, 1 这一句,将a b引入函数(fib)的局部符号表。注意,Python的变量寻找顺序:函数内部符号表,引用的其他函数的符号表,全局符号表,最后到系统内置(built-in)表里面找。函数的参数 (n),也放在这个函数(fib)的局部符号表里面。
当函数调用别的函数时,就会为被调函数创建一个新的符号表。调用函数只是将值传递给了被调函数,也就是说Python的函数调用参数是值传递。
函数的名称会被引入到当前的符号表中。
None,这个函数的返回值就是None,这里省略了return None。
下面是一个有返回值的函数版本。
def fib2(n):    # write Fibonacci series up to n
    """Print a Fibonacci series up to n."""
    a, b = 0, 1
    result = []
    while b < n:
        result.append(b)        
        a, b = b, a+b
    return result


定义不定个数的参数列表


为参数设定默认值 (Default Argument Values)
def ask_ok(prompt, retries=4, complaint='Yes or no, please!'):
    while True:
        ok = input(prompt)
        if ok in ('y', 'ye', 'yes'): return True
        if ok in ('n', 'no', 'nop', 'nope'): return False
        retries = retries - 1
        if retries < 0:
            raise IOError('refusenik user')
        print(complaint)


注意,默认值,是在定义的时候就计算出来的,如下:
i = 5

def f(arg=i):
    print(arg)

i = 6
f()


会打印出5,而不是6.
注意,默认值,只初始化一次。如下
def f(a, L=[]):
    L.append(a)
    return L

print(f(1))
print(f(2))
print(f(3))

打印结果是
[1]
[1, 2]
[1, 2, 3]

要想避免这种情况:
def f(a, L=None):
    if L is None:
        L = []
    L.append(a)
    return L

关键字参数(Keyword Arguments) keyword = value
def parrot(voltage, state='a stiff', action='voom', type='Norwegian Blue'):
    print("-- This parrot wouldn't", action, end=' ')
    print("if you put", voltage, "volts through it.")
    print("-- Lovely plumage, the", type)
    print("-- It's", state, "!")

可以这么调用:
def parrot(voltage, state='a stiff', action='voom', type='Norwegian Blue'):
    print("-- This parrot wouldn't", action, end=' ')
    print("if you put", voltage, "volts through it.")
    print("-- Lovely plumage, the", type)
    print("-- It's", state, "!")

但不能这样:
parrot()                     # required argument missing
parrot(voltage=5.0, 'dead')  # non-keyword argument following keyword
parrot(110, voltage=220)     # duplicate value for argument
parrot(actor='John Cleese')  # unknown keyword

1
0
分享到:
评论

相关推荐

    Python-Python函数-教学设计.docx

    教学内容聚焦于Python函数的定义和调用,这是程序设计中的重要组成部分,有助于提高代码的清晰度和可重用性。教学重点是理解函数的概念和自定义函数的语法,教学难点在于如何准确地定义函数。为了帮助学生突破难点,...

    第15周-第16章节-Python3.5-javascript函数的定义.avi

    第15周-第16章节-Python3.5-javascript函数的定义.avi

    python实验报告-函数定义和调用.doc

    首先,实验的目的是让学生熟悉Python中的函数定义语法、调用方法以及函数编程方法。在Python中,我们使用`def`关键字来定义一个函数,后跟函数名和圆括号,圆括号内可以包含函数参数。例如,`drawDigit(d)`函数接受...

    母亲节快乐python-12-函数的定义和函数的调用.ev4.rar

    1. **函数的定义**: 在Python中,我们可以使用`def`关键字来定义一个函数。例如,如果我们想创建一个名为`greet_mom`的函数,它会打印出“母亲节快乐”: ```python def greet_mom(): print("母亲节快乐") ``` 2....

    python-4.1-2024-函数的定义和作用域.ipynb

    python-4.1-2024-函数的定义和作用域.ipynb

    Python学习笔记--皮大庆.pdf.zip

    【Python学习笔记--皮大庆.pdf.zip】是一个针对初学者的Python编程教程,源自英文书籍《How to think like a computer scientist》。这本书以易懂的方式介绍了Python语言的基础知识,旨在帮助没有编程背景的人快速...

    03-python-一般函数-向量化函数-二元运算-ufunc对象

    在学习过程中,`03.13-python-一般函数.ipynb`、`03.14-python-向量化函数.ipynb`、`03.15-python-二元运算.ipynb`和`03.16-python-ufunc对象.ipynb`这些笔记将提供详细的示例和解释,帮助你深入掌握这些知识点。

    Python科学计算与数据处理-Python函数.ppt

    Python 函数 ...函数的注释说明是指在函数定义时,使用 `"""` 或 `'''` 包围的字符串,用于解释函数的功能和用法。例如 `def add1(x): """加 1""" x = x + 1 return x`,其中 `"""加 1"""` 是函数的注释说明。

    深度学习入门-Python语言学习-10函数(二)-入门学习

    1. **函数定义与调用**: - 函数通过`def`关键字定义,例如`def testA():`,它内部的代码块会在调用时执行。如`testA()`会打印出100。 - 在函数内部定义的变量(如`a = 100`)只在该函数作用域内有效,外部无法...

    python中factor函数-Python基础教程.pdf

    - Python允许在函数定义时使用星号(*)和双星号(**)来收集不定数量的位置参数和关键字参数。 - 当调用函数时,使用`*`运算符可以将元组或列表的元素作为单独的参数传递,而`**`运算符可以将字典的键值对作为关键字...

    [Python入门及进阶笔记]Python-基础-函数小结

    【Python函数小结】 Python是一种易学且前景广阔的编程语言,尤其适合初学者。函数是Python编程中的核心概念,能够实现代码的复用和流程分解,从而提高代码的可读性和效率。 ### 定义与作用 函数是一段可重复使用...

    python字典-14-函数嵌套调用应用之函数计算02.ev4.rar

    1. **定义计算函数**:创建一个函数,该函数接收一个字典作为参数。这个函数可能是用来执行特定计算,如求和、平均值或统计分析等。 2. **处理字典**:在函数内部,遍历字典的键值对,根据键来决定如何处理对应的值...

    深度学习入门-Python语言学习-09函数(一)-入门学习

    本教程将带你入门Python,特别是关于函数的学习,这是编程中一个基础且关键的概念。 1. 函数的定义与使用 函数是一段可重复使用的代码块,可以接受输入(参数)并返回结果(返回值)。在Python中,我们使用`def`...

    python字典-13-函数嵌套调用应用之函数计算01.ev4.rar

    1. **私有化内部逻辑**:内层函数可以访问外层函数的局部变量,包括字典。这使得我们可以隐藏复杂的计算过程,只对外暴露简单的接口。 2. **闭包**:如果内层函数引用了外层函数的局部变量,即使外层函数已经执行...

    python-条件定义函数.docx

    在Python中,这种功能通过`if`、`elif`(else if)和`else`语句实现,它们通常结合使用在函数定义中,以创建多分支逻辑。这种编程技术在处理复杂逻辑和决策流程时特别有用。 首先,让我们回顾一下条件定义函数的...

    Python语言程序设计教程 北理工Python课程第6章-函数与递归-1-函数定义 共22页.pdf

    调用函数时,传递的实际参数(即实参)与函数定义时的形式参数(即形参)进行匹配。实参可以是常量、变量或表达式,它们的值在函数调用时被传递给形参。 函数可以有返回值,这通常通过`return`语句实现。如果函数...

    python函数声明和调用定义及原理详解

    Python中的函数声明和调用具有其独特的语法和原理,本文将详细介绍Python函数的声明与调用规则、参数传递方式以及其背后的执行原理。 首先,要定义一个函数,我们使用关键字def后跟函数名和括号,其中括号内可以...

    Python应用开发-Python函数.pptx

    for d in range(c, 0, -1): if a % d == 0 and b % d == 0: return d def minMultiplier(a, b): c = a if b &gt; a: c = b m = a * b for d in range(c, m + 1, 1): if d % a == 0 and d % b == 0: return d...

Global site tag (gtag.js) - Google Analytics