精华内容
下载资源
问答
  • python函数定义和调用顺序

    万次阅读 2018-02-09 22:20:40
    函数调用其他函数,不需要定义在前,调用在后 def fun1(a,b): c=fun2(a,b) print(c) def fun2(a,b): c=a+b return c 而实际的函数调用执行操作,就一定要先定义调用 def fun3(a,b): c=a+b print...

    在函数中调用其他函数,不需要定义在前,调用在后

    def fun1(a,b):
        c=fun2(a,b)
        print(c)
    def fun2(a,b):
        c=a+b
        return c

    而实际的函数调用执行操作,就一定要先定义后调用

    def fun3(a,b):
        c=a+b
        print(c)
    fun3(1,2)

    Life is short, You need Python~

    展开全文
  • 除了可以直接使用的内置函数外,Python 还支持自定义函数,即将一段有规律的、可重复使用的代码定义函数,从而达到一次编写、多次调用的目的。举个例子,前面学习了 len() 函数,通过它我们可以直接获...

    Python 中函数的应用非常广泛,前面章节中我们已经接触过多个函数,比如 input() 、print()、range()、len() 函数等等,这些都是 Python 的内置函数,可以直接使用。

    除了可以直接使用的内置函数外,Python 还支持自定义函数,即将一段有规律的、可重复使用的代码定义成函数,从而达到一次编写、多次调用的目的。

    举个例子,前面学习了 len() 函数,通过它我们可以直接获得一个字符串的长度。我们不妨设想一下,如果没有 len() 函数,要想获取一个字符串的长度,该如何实现呢?请看下面的代码:

    n=0

    for c in "http://c.biancheng.net/python/":

    n = n + 1

    print(n)

    程序执行结果为:

    30

    要知道,获取一个字符串长度是常用的功能,一个程序中就可能用到很多次,如果每次都写这样一段重复的代码,不但费时费力、容易出错,而且交给别人时也很麻烦。

    所以 Python 提供了一个功能,即允许我们将常用的代码以固定的格式封装(包装)成一个独立的模块,只要知道这个模块的名字就可以重复使用它,这个模块就叫做函数(Function)。

    比如,在程序中定义了一段代码,这段代码用于实现一个特定的功能。问题来了,如果下次需要实现同样的功能,难道要把前面定义的代码复制一次?如果这样做实在太傻了,这意味着每次当程序需要实现该功能时,都要将前面定义的代码复制一次。正确的做法是,将实现特定功能的代码定义成一个函数,每次当程序需要实现该功能时,只要执行(调用)该函数即可。

    其实,函数的本质就是一段有特定功能、可以重复使用的代码,这段代码已经被提前编写好了,并且为其起一个“好听”的名字。在后续编写程序过程中,如果需要同样的功能,直接通过起好的名字就可以调用这段代码。

    下面演示了如何将我们自己实现的 len() 函数封装成一个函数:

    #自定义 len() 函数

    def my_len(str):

    length = 0

    for c in str:

    length = length + 1

    return length

    #调用自定义的 my_len() 函数

    length = my_len("http://c.biancheng.net/python/")

    print(length)

    #再次调用 my_len() 函数

    length = my_len("http://c.biancheng.net/shell/")

    print(length)

    程序执行结果为:

    30

    29

    如果读者接触过其他编程语言中的函数,以上对于函数的描述,肯定不会陌生。但需要注意的一点是,和其他编程语言中函数相同的是,Python 函数支持接收多个( ≥0 )参数,不同之处在于,Python 函数还支持返回多个( ≥0 )值。

    比如,上面程序中,我们自己封装的 my_len(str) 函数,在定义此函数时,我们为其设置了 1 个 str 参数,同时该函数经过内部处理,会返回给我们 1 个 length 值。

    通过分析 my_len() 函数这个实例不难看出,函数的使用大致分为 2 步,分别是定义函数和调用函数。接下来一一为读者进行详细的讲解。

    Python函数的定义

    定义函数,也就是创建一个函数,可以理解为创建一个具有某些用途的工具。定义函数需要用 def 关键字实现,具体的语法格式如下:

    def 函数名(参数列表):

    //实现特定功能的多行代码

    [return [返回值]]

    其中,用 [] 括起来的为可选择部分,即可以使用,也可以省略。

    此格式中,各部分参数的含义如下:

    函数名:其实就是一个符合 Python 语法的标识符,但不建议读者使用 a、b、c 这类简单的标识符作为函数名,函数名最好能够体现出该函数的功能(如上面的 my_len,即表示我们自定义的 len() 函数)。

    形参列表:设置该函数可以接收多少个参数,多个参数之间用逗号( , )分隔。

    [return [返回值] ]:整体作为函数的可选参参数,用于设置该函数的返回值。也就是说,一个函数,可以用返回值,也可以没有返回值,是否需要根据实际情况而定。

    注意,在创建函数时,即使函数不需要参数,也必须保留一对空的“()”,否则 Python 解释器将提示“invaild syntax”错误。另外,如果想定义一个没有任何功能的空函数,可以使用 pass 语句作为占位符。

    例如,下面定义了 2 个函数:

    #定义个空函数,没有实际意义

    def pass_dis():

    pass

    #定义一个比较字符串大小的函数

    def str_max(str1,str2):

    str = str1 if str1 > str2 else str2

    return str

    虽然 Python 语言允许定义个空函数,但空函数本身并没有实际意义。

    另外值得一提的是,函数中的 return 语句可以直接返回一个表达式的值,例如修改上面的 str_max() 函数:

    def str_max(str1,str2):

    return str1 if str1 > str2 else str2

    该函数的功能,和上面的 str_max() 函数是完全一样的,只是省略了创建 str 变量,因此函数代码更加简洁。

    Python函数的调用

    调用函数也就是执行函数。如果把创建的函数理解为一个具有某种用途的工具,那么调用函数就相当于使用该工具。

    函数调用的基本语法格式如下所示:

    [返回值] = 函数名([形参值])

    其中,函数名即指的是要调用的函数的名称;形参值指的是当初创建函数时要求传入的各个形参的值。如果该函数有返回值,我们可以通过一个变量来接收该值,当然也可以不接受。

    需要注意的是,创建函数有多少个形参,那么调用时就需要传入多少个值,且顺序必须和创建函数时一致。即便该函数没有参数,函数名后的小括号也不能省略。

    例如,我们可以调用上面创建的 pass_dis() 和 str_max() 函数:

    pass_dis()

    strmax = str_max("http://c.biancheng.net/python","http://c.biancheng.net/shell");

    print(strmax)

    首先,对于调用空函数来说,由于函数本身并不包含任何有价值的执行代码,也没有返回值,应该调用空函数不会有任何效果。

    其次,对于上面程序中调用 str_max() 函数,由于当初定义该函数为其设置了 2 个参数,因此这里在调用该参数,就必须传入 2 个参数。同时,由于该函数内部还使用了 return 语句,因此我们可以使用 strmax 变量来接收该函数的返回值。

    因此,程序执行结果为:

    http://c.biancheng.net/shell

    为函数提供说明文档

    前面章节讲过,通过调用 Python 的 help() 内置函数或者 __doc__ 属性,我们可以查看某个函数的使用说明文档。事实上,无论是 Python 提供给我们的函数,还是自定义的函数,其说明文档都需要设计该函数的程序员自己编写。

    其实,函数的说明文档,本质就是一段字符串,只不过作为说明文档,字符串的放置位置是有讲究的,函数的说明文档通常位于函数内部、所有代码的最前面。

    以上面程序中的 str_max() 函数为例,下面演示了如何为其设置说明文档:

    #定义一个比较字符串大小的函数

    def str_max(str1,str2):

    """

    比较 2 个字符串的大小

    """

    str = str1 if str1 > str2 else str2

    return str

    help(str_max)

    #print(str_max.__doc__)

    程序执行结果为:

    Help on function str_max in module __main__:

    str_max(str1, str2)

    比较 2 个字符串的大小

    上面程序中,还可以使用 __doc__ 属性来获取 str_max() 函数的说明文档,即使用最后一行的输出语句,其输出结果为:

    比较 2 个字符串的大小

    展开全文
  • 参考文章:python函数定义和调用的先后顺序问题
    展开全文
  • 标准的先函数定义,后函数调用 def add1(a,b): return a+b print add1(1,2) 函数2可以调用后面定义的函数3 事实上,我们在调用函数2的时候,一样是遵循先定义后调用的准则 def add2(a,b): return add3(a,b) ...

    标准的先函数定义,后函数调用

    def add1(a,b):
        return a+b
    
    print add1(1,2)
    

    函数2可以调用后面定义的函数3

    事实上,我们在调用函数2的时候,一样是遵循先定义后调用的准则

    def add2(a,b):
    
        return add3(a,b)
    
    def add3(a,b):
    
        return a+b 
    
    print add2(1,2)
    

    不能调用未定义的函数 #下面这个程序是error的

    print add4(3,4)
    def add4(a,b):
    
        return a+b
    

    从上面的例子,我们可以发现,一般情况下,函数的定义必须在函数的调用之前,但是当函数3是被函数2调用时,函数3可以在函数2之后定义。换句话说,函数A内部调用另一个函数B,则函数B的定义可以在函数A之后。

    展开全文
  • python函数定义和调用的先后顺序问题

    万次阅读 多人点赞 2019-04-04 11:49:38
    版权声明:转载请注明作者(独孤尚良dugushangliang)出处: ...python是不需要先编译的,所以这决定了你调用函数之前得知道有这个函数,所以执行代码前需要有要用到的函数的定...
  • python def 定义函数,调用...定义和调用函数,1:个数相同 ;2:顺序 一 一对应 这样才能正确实现 补充知识:python中list作为全局变量无需global声明的原因 发现一个问题。 python中list变量作为全局变量时,在函
  • @参数定义 四种参数类型:定长位置...(不推荐使用这种顺序,因为参数类型的边界比较模糊,不便于调用和维护) @传参调用 定长位置参数:不能少、不能乱; 不定长位置参数:选传,个数任意; 定长关键字参数...
  • 一个函数可以定义任意个参数,每个参数间用逗号分割,用这种方式定义函数调用的的时候也必须在函数名后的小括号里提供个数相等的值(实际参数),而且顺序必须相同,也就是说在这种调用方式中,形参实参的个数...
  • 位置参数: 这是熟悉的标准化参数,位置参数必须在调用函数定义的准确顺序来传递,在没有默认参数的情况下,传入参数 的精确数目必须声明的数目一致。 def foo(who, name):  print('{0} is {1}'.format(who, ...
  • python函数定义

    2016-05-15 11:00:17
    一个函数可以定义任意个参数,每个参数间用逗号分割,用这种方式定义函数调用的的时候也必须在函数名后的小括号里提供个数相等的值(实际参数),而且顺序必须相同,也就是说在这种调用方式中,形参实参的个数...
  • python 函数参数定义有四类: 1、必选参数:调用函数时候必须赋值的参数。 a,须以正确的顺序传入函数 b,调用时的数量必须声明时的一样 def exa(x): return x #b作为参数进入函数体内 b=1 print exa(b) #1 print...
  • 的值(实际参数),而且顺序必须相同,也就是说在这种调用方式中,形参实参的个数必须一致,而且必须一一对应,也就是说第一个形参对应这第一个实参。例如: 复制代码 代码如下: def a(x,y):print x,y 调用函数...
  • 在实现异步调用之前我们先进行什么...定义了一个装饰器 async A 、B 两个function 函数 A 里面sleep 10s , 然后打印 a function 字符串 B 里面直接打印 b function 字符串 我们顺序调用两个功能: A() B
  • Python: 定义函数规则

    千次阅读 2018-07-13 10:16:38
    位置实参:Python 将按顺序将函数调用中的实参关联到函数定义中相应的形参 def describe_pet(animal_type, pet_name): """ 显示宠物的信息 """ print("\nI have a...
  • Python 函数

    2020-02-29 16:44:11
    6.1 函数定义调用 6.1.1 为什么调用函数 提高代码复用性 分而治之——大问题模块化 利于代码维护管理 顺序式 # 阶乘 n = 5 res = 1 for i in range(1,n+1): res *= i print(res) 120 抽象为函数 def ...
  • Python函数

    2019-04-23 16:23:46
    文章目录函数函数定义和调用函数定义函数调用函数文档说明函数参数函数返回值函数参数种类1.位置参数2.默认值参数因此,默认参数必须要放到位置参数的后边;3.关键字参数4.不定参数`*args` 的用法编写一个函数,返回...
  • python 函数

    2019-12-06 03:27:31
    函数的创建和调用 创建函数 def functionname() "comments"##注释 [functionbody] 函数参数传递 1.形参和实参 def calc(x,y)##形参 sum=x**y return yes c=calc(a,b)##实参 实际输入的值 print(c) ...
  • 1 函数的构建和调用 函数的介绍:函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 函数的作用:函数能提高应用的模块性,和代码的重复利用率。 函数的分类:内建函数、用户自定义函数 自定义...
  • 因此今天想学习一下Python中关于定义函数、循环语句条件语句的写法。 1.定义函数 区分全局变量局部变量: x=2 全局变量 def 函数名(形参1,形参2,……) 函数体 局部变量 global x...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 399
精华内容 159
关键字:

python函数定义和调用顺序

python 订阅