精华内容
下载资源
问答
  • Educoder题目:Python入门之函数调用答案解析.md
  • Python入门之函数调用(二)

    千次阅读 2020-09-27 23:51:34
    但是在 Python 中我们要注意一个关键点,就是Python不允许前向引用,即在函数定义之前,不允许调用函数。例如: print plus(1,2) def plus(a,b): return a+b 运行结果为: NameError: name 'plus' is not ...

    时间煮雨
    @R星校长

    第2关:函数正确调用 - 得到想要的结果

    定义函数与调用函数的顺序

    在定义了函数之后,就可以调用该函数了。但是在 Python 中我们要注意一个关键点,就是Python不允许前向引用,即在函数定义之前,不允许调用该函数。例如:

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

    运行结果为:

    NameError: name 'plus' is not defined
    

    从报错结果可以看出,名字为plus的函数还没进行定义(虽然我们是在后面进行了定义)。所以当我们在调用函数时,一定要确定在调用之前进行了函数定义。

    正确使用参数

    我们要在调用函数时,需要正确调用函数的名称和参数,例如我们定义了一个加法函数:

    def plus(a,b):
        return a+b
    

    我们在调用plus()函数时,如果传入的参数类型不对,会报TypeError错误。而且有时我们传入的参数类型不是规定类型的话,就算调用函数运行结果没有报错,也会产生逻辑错误。例如:

    # 定义plus函数,作用是求两个正整数之和
    def plus(a,b):
        return a+b
    # 调用plus函数,参数类型为'1','2'
    print(plus('1','2'))
    

    输出结果:

    12
    

    虽然上述例子的程序运行结果没有报错,但是结果却与我们的预期不符,因为我们的本意是调用plus()函数实现两个整数的加法。但是如果我们传入的是字符串类型的数值时,结果就是两个字符串的拼接。所以这个例子告诉我们一定要注意传入参数的类型。

    当我们传入正常类型的参数时,传入的参数个数不一致时,也会报TypeError错误。例如:

    # 定义plus函数,作用是求两个正整数之和
    def plus(a,b):
        return a+b
    # 调用plus函数,参数为1,2,3
    print(plus(1,2,3))
    

    报错:

    TypeError: plus() takes 2 positional arguments but 3 were given
    

    报错原因显示,因为plus()函数允许有且仅有2个参数,但是却在调用时传入了3个参数,所以程序报错。

    # coding=utf-8
    
    # 输入数字字符串,并转换为数值列表
    a = input()
    num1 = eval(a)
    numbers = list(num1)
    
    # 请在此添加代码,对数值列表numbers实现从小到大排序
    ########## Begin ##########
    
    new_list=[]  #定义一个空列表
    def get_min(numbers):
        #获取列表最小值
        a = min(numbers)
        #原列表删除最小值
        numbers.remove(a)
        #将最小值加入新列表
        new_list.append(a)
        #保证列报中有值,递归调用获取最小值,直到所有制获取完,并加入新列表返回新列表
        if len(numbers)>0:
            get_min(numbers)
        return new_list
    new_list = get_min(numbers)
    print(new_list)
    
    ########## End ##########
    
    
    测试输入:
    
    103,47,21,34,11,2,5,88,13
    预期输出:
    
    [2, 5, 11, 13, 21, 34, 47, 88, 103]
    测试输入:
    
    12,31,0,23,25,109,77,3
    预期输出:
    
    [0, 3, 12, 23, 25, 31, 77, 109]
    测试输入:
    
    6,4,11,34,12,1,4
    预期输出:
    
    [1, 4, 4, 6, 11, 12, 34]
    测试输入:
    
    5,4,3,2,1
    预期输出:
    
    [1, 2, 3, 4, 5]
    

    保持对事业的努力,事业比幻想中的金钱要现实得多。这是必须牢记的原则。

    在这里插入图片描述

    在这里插入图片描述

    展开全文
  • Python入门之函数调用-----第1关:内置函数 - 让你偷懒的工具 **任务描述 相关知识 数学运算 类型转换 序列操作 对象操作 交互操作 文件操作 编程要求 测试说明 任务描述 我们在编程过程中会用到很多函数,但我们不...

    **

    Python入门之函数调用-----第1关:内置函数 - 让你偷懒的工具

    **任务描述
    相关知识
    数学运算
    类型转换
    序列操作
    对象操作
    交互操作
    文件操作
    编程要求
    测试说明
    任务描述
    我们在编程过程中会用到很多函数,但我们不需要每个函数都自己去编写,因为 Python 内置了很多十分有用的函数,我们在编程过程中可以直接调用。本关目标是让学习者了解并掌握一些常用的 Python 内置函数的用法。

    相关知识
    数学运算
    abs():返回数值的绝对值,例如:

    >>> abs(-4)
    4
    

    divmod():返回两个数值的商和余数,例如:

    >>> divmod(7,2)
    (3,1)
    

    max():返回元素中的最大值,例如:

    >>> max(2,6,1,7)
    7
    

    min():返回元素中的最小值,例如:

    >>> min(2,6,1,7)
    1
    

    sum():返回传入元素之和,例如:

    >>> sum((1,2,3,4))
    10
    >>> sum([1,2,3,4])
    10
    >>> sum((1,2,3,4),-10)
    0
    

    类型转换
    bool():根据传入的参数的逻辑值创建一个新的布尔值,例如:

    >>> bool()
    False
    >>> bool(1)
    True
    >>> bool(0)
    False
    >>> bool('str')
    True
    

    int():根据传入的参数创建一个新的整数,例如:

    >>> int('3')
    3
    >>> int('3.6')
    3
    

    float():根据传入的参数创建一个新的浮点数,例如:

    >>> float()     # 不提供参数的时候,返回0.0
    0.0
    >>> float(3)
    3.0
    >>> float('3')
    3.0
    

    complex():根据传入的参数创建一个新的复数,例如:

    >>> complex()     # 当两个参数都不提供时,返回复数0j
    0j
    >>> complex('2+4j')
    (2+4j)
    >>> complex(1,2)
    (1+2j)
    

    序列操作
    all():判断可迭代对象的每个元素是否都为True值,例如:

    >>> all([1,2,3])     # 列表中每个元素逻辑值均为True,返回True
    True
    >>> all([0,1,2])     # 列表中0的逻辑值为False,返回False
    False
    >>> all(())     # 空元组
    True
    

    any():判断可迭代对象的元素是否有为True值的元素,例如:

    >>> any([0,1,2])     # 列表元素有一个为True,则返回True
    True
    >>> any([0,0])     # 列表元素全部为False,则返回False
    False
    >>> any([])     # 空列表
    False
    

    sorted():对可迭代对象进行排序,返回一个新的列表。例如:

    >>> a = ['a','b','d','c','B','A']
    >>> a
    ['a', 'b', 'd', 'c', 'B', 'A']
    >>> sorted(a)     # 默认按字符ascii码排序
    ['A', 'B', 'a', 'b', 'c', 'd']
    

    对象操作
    help():返回对象的帮助信息;

    dir():返回对象或者当前作用域内的属性列表。

    交互操作
    print():向标准输出对象打印输出;

    input():读取用户输入值。

    文件操作
    open():使用指定的模式和编码打开文件,返回文件读写对象。例如:

    # t为文本读写,b为二进制读写
    >>> a = open('test.txt','rt')
    >>> a.read()
    some text
    >>> a.close()
    

    编程要求
    本关的编程任务是补全src/Step2/prime.py文件的代码,实现相应的功能。具体要求如下:

    定义一个函数,功能是判断一个数是否为素数;
    调用函数,对输入的整数进行判断。如果是素数则输出为True,否则输出为False。
    本关涉及的代码文件src/Step2/prime.py的代码框架如下:

    # coding=utf-8
    # 输入一个整数n
    n =  int(input())
    # 请在此添加代码,对输入的整数进行判断,如果是素数则输出为True,否则输出为False
    ########## Begin ##########
    ########## End ##########
    print(prime(n))
    

    测试说明
    本关的测试文件是src/Step2/prime.py,测试过程如下:

    平台自动编译生成prime.exe;
    平台运行prime.exe,并以标准输入方式提供测试输入;
    平台获取prime.exe输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。
    以下是平台对src/Step2/prime.py的样例测试集:

    测试输入:

    1
    

    预期输出:

    False
    

    测试输入:

    3
    

    预期输出:

    True
    

    测试输入:

    9
    

    预期输出:

    False
    

    测试输入:

    4
    

    预期输出:

    False
    

    测试输入:

    17
    

    预期输出:

    True
    

    开始你的任务吧,祝你成功!

    保持对事业的努力,事业比幻想中的金钱要现实得多,这是必须牢记的原则。

    如果你觉得这一关的内容对你有帮助,请你在下面点赞。

    # coding=utf-8
    
    # 输入一个整数n
    n =  int(input())
    
    # 请在此添加代码,对输入的整数进行判断,如果是素数则输出为True,不是素数则输出为False
    ########## Begin ##########
    
    ########## End ##########
    print(prime(n))
    

    参考答案

    
    # coding=utf-8
    
    # 输入一个整数n
    n =  int(input())
    
    # 请在此添加代码,对输入的整数进行判断,如果是素数则输出为True,不是素数则输出为False
    ########## Begin ##########
    def prime(n):
        if n == 1:
            return False
        else:
            for i in range(2, n):
                if n % i == 0:
                    return False            
            return True
    ########## End ##########
    print(prime(n))
    
    展开全文
  • 第3关:函数与函数调用 - 分清主次 我们要学习函数与函数之间的调用,就应该对函数调用的顺序与参数有清晰的认识,我们将会从五种情况让读者了解并掌握函数与函数之间的调用的基本关系和联系。 第一种情况 程序代码...

    时间煮雨
    @R星校长

    3关:函数与函数调用 - 分清主次

    我们要学习函数与函数之间的调用,就应该对函数调用的顺序与参数有清晰的认识,我们将会从五种情况让读者了解并掌握函数与函数之间的调用的基本关系和联系。

    第一种情况

    程序代码如下:

    def x(f):
        def y():
            print(1)
        return y
    def f():
        print(2)
    x(f)
    

    运行结果:

    无结果
    

    分析:因为第9行中的x(f)中的f没有带括号,f只是一个普通的参数,所以程序只调用执行了x(f)函数,没有调用执行f()函数。x(f)函数中虽然也定义了y()函数,但是x(f)函数中没有调用执行y()函数,只是执行了return y。而y变量也没有值,所以整个程序的返回值就为无结果。

    第二种情况

    程序代码如下:

    def x(f):
        def y():
            print(1)
        return y
    def f():
        print(2)
    x(f())
    

    运行结果:

    2
    

    分析:因为第9行中的x(f())中的f()带括号,所以程序先调用执行f()函数,先输出2。然后2作为参数传入到x(f)函数中,程序开始调用执行x(f)函数。x(f)函数中虽然也定义了y()函数,但是x(f)函数中没有调用执行y()函数,只是执行了return y。而y变量也没有值,所以调用执行x(f)函数没有产生任何结果。因此该程序最终只输出了2

    第三种情况

    程序代码如下:

    def x(f):
        def y():
            print(1)
        return y()
    def f():
        print(2)
    x(f)
    

    运行结果:

    1
    

    分析:因为第9行中的x(f)中的f没有带括号,f只是一个普通的参数,所以程序只调用执行了x(f)函数,没有调用执行f()函数。x(f)函数中也定义了y()函数,并且返回是y()函数。因此程序调用执行了y()函数,输出结果是1

    第四种情况

    程序代码如下:

    def x(f):
        def y():
            print(1)
        return y()
    def f():
        print(2)
    x(f())
    

    运行结果:

    2
    1
    

    分析:因为第9行中的x(f())中的f()带括号,所以程序调用执行了f()函数,先输出2。然后2作为参数传入到x(f)函数中,程序开始调用执行x(f)函数。x(f)函数中也定义了y()函数,并且返回是y()函数。因此程序也调用执行了y()函数,也输出了1。最终该程序先后输出了21

    第五种情况

    程序代码如下:

    def x(f):
        def y():
            print(1)
            print(f())
        return y()
    def f():
        #print(2)
        return 2
    x(f)
    

    运行结果:

    1
    2
    

    分析:因为第9行中的x(f)中的f没有带括号,f只是一个普通的参数,所以程序只是先调用执行了x(f)函数。在x(f)函数中也定义了y()函数,而且返回值是y()函数,所以程序会调用执行y()函数。在y()函数中先是执行print(1)语句,输出1,接着执行print(f())语句,所以程序在这时也会调用执行f()函数,输出2。最终该程序先后输出了12

    小结

    以上是对函数与函数之间调用的五种情况的探讨与分析。函数作为参数传入另外一个函数中并进行调用的情况有很多,我们需要时刻注意函数调用的相关要求与细节,才能正确使用函数。

    #coding=utf-8
    from math import pi as PI
    n = int(input())
    """请在此添加代码,实现圆的面积计算,并输出面积结果
    定义一个函数,要求实现圆的面积的计算;
    根据输入的不同整数值的半径,调用函数计算,并输出圆的面积,结果保留两位小数。"""
    #********** Begin *********#
    def area(n):
        return (pow(n,2)*PI)
        
    #********** End **********#
    print ('%.2f' % area(n))
    
    测试输入:
    
    4
    预期输出:
    
    50.27
    测试输入:
    
    5
    预期输出:
    
    78.54
    测试输入:
    
    6
    预期输出:
    
    113.10
    测试输入:
    
    111
    预期输出:
    
    38707.56
    

    你可以忘掉失败,但不能忘掉教训;你可以忘掉昨天,但不能忘记历史;
    你可以忘掉苦难,但不能忘却艰辛;你可以忘掉伤疤,但不能忘却耻辱。

    贱婢

    小妾

    展开全文
  • 我们一般将字符串、列表等变量作为参数进行函数调用。但函数本身也是一个对象,所以我们也可以将函数作为参数传入另外一个函数中并进行调用。 本关的目标是让读者了解并掌握函数作为参数传入另外一个函数中并进行...

    任务描述

    我们一般将字符串、列表等变量作为参数进行函数调用。但函数本身也是一个对象,所以我们也可以将函数作为参数传入另外一个函数中并进行调用。

    本关的目标是让读者了解并掌握函数作为参数传入另外一个函数中并进行调用的相关知识。

    相关知识

    我们要学习函数与函数之间的调用,就应该对函数调用的顺序与参数有清晰的认识,我们将会从五种情况让读者了解并掌握函数与函数之间的调用的基本关系和联系。

    第一种情况

    程序代码如下:

    def x(f):
        def y():
            print(1)
        return y
    
    def f():
        print(2)
    
    x(f)

    运行结果:打印出无结果

    分析:因为第9行中的x(f)中的f没有带括号,所以f只是一个普通的参数,所以程序只调用执行了x(f)函数,没有调用执行f()函数。x(f)函数中虽然也定义了y()函数,但是x(f)函数中没有调用执行y()函数,只是执行了return y。而y变量也没有值,所以整个程序的返回值就为无结果。

    第二种情况

    程序代码如下:

    def x(f):
        def y():
            print(1)
        return y
    
    def f():
        print(2)
    
    x(f())

    运行结果:2

    分析:因为第9行中的x(f())中的f()带括号,所以程序先调用执行f()函数,先输出2。然后2作为参数传入到x(f)函数中,程序开始调用执行x(f)函数。x(f)函数中虽然也定义了y()函数,但是x(f)函数中没有调用执行y()函数,只是执行了return y。而y变量也没有值,所以调用执行x(f)函数没有产生任何结果。

    所以该程序最终只输出了2

    第三种情况

    程序代码如下:

    def x(f):
        def y():
            print(1)
        return y()
    
    def f():
        print(2)
    
    x(f)

    运行结果:1

    分析:因为第9行中的x(f)中的f没有带括号,所以f只是一个普通的参数,所以程序只调用执行了x(f)函数,没有调用执行f()函数。x(f)函数中也定义了y()函数,并且返回是y()函数。所以程序调用执行了y()函数,输出结果是1

    第四种情况

    程序代码如下:

    def x(f):
        def y():
            print(1)
        return y()
    
    def f():
        print(2)
    
    x(f())

    运行结果:
    2
    1

    分析:因为第9行中的x(f())中的f()带括号,所以程序先调用执行f()函数,先输出2。然后2作为参数传入到x(f)函数中,程序开始调用执行x(f)函数。x(f)函数中也定义了y()函数,并且返回是y()函数。所以程序也调用执行了y()函数,也输出了1

    所以该程序先后输出了21

    第五种情况

    程序代码如下:

    def x(f):
        def y():
            print(1)
            print(f())
        return y()
    
    def f():
        #print(2)
        return 2
    
    x(f)

    运行结果:

    1
    2

    分析:因为第9行中的x(f)中的f没有带括号,所以f只是一个普通的参数,所以程序先只是调用执行了x(f)函数。在x(f)函数中也定义了y()函数,而且返回值是y()函数,所以程序会调用执行y()函数。在y()函数中先是执行print(1)语句,输出1。接着执行print(f())语句,所以程序在这时也会调用执行f()函数,输出2

    所以该程序先后输出了12

    以上是对函数与函数之间调用的五种情况的探讨与分析,函数作为参数传入另外一个函数中并进行调用的情况有很多,我们需要时刻注意函数调用的相关要求与细节,才能正确使用函数。

    编程要求

    本关的编程任务是补全src/step3/func_ref.py文件的代码,实现相应的功能。具体要求如下:

    • 定义一个函数,要求实现圆的面积计算;
    • 根据输入的不同整数值的半径,调用函数计算,输出圆的面积。

    测试说明

    本关的测试文件是src/step3/func_ref.py,测试过程如下:

    1. 平台自动编译生成func_ref.exe;
    2. 平台运行func_ref.exe,并以标准输入方式提供测试输入;
    3. 平台获取func_ref.exe输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。

    以下是平台对src/step3/func_ref.py的样例测试集:

    测试输入:
    4
    预期输出:
    50.27

    测试输入:
    5
    预期输出:
    78.54

    测试输入:
    6
    预期输出:
    113.1

    测试输入:
    111
    预期输出:
    38707.56

    开始你的任务吧,祝你成功!

    你可以忘掉失败,但不能忘掉教训;你可以忘掉昨天,但不能忘记历史;你可以忘掉苦难,但不能忘却艰辛;你可以忘掉伤疤,但不能忘却耻辱。

    如果你觉得这一关的内容对你有帮助,请你在下面点赞。

     

    参考答案

    #coding=utf-8
    
    from math import pi as PI
    
    n = int(input())
    
    # 请在此添加代码,实现圆的面积计算,并输出面积结果
    #********** Begin *********#
    def area(n):
        area = PI * pow(n, 2)
        return round(area, 2)
    
    print(area(n))
    
    #********** End **********#
    
    

     

    展开全文
  • 我们在编程过程中会用到很多函数,但我们不需要每个函数都自己去编写,因为 Python 内置了很多十分有用的函数,我们在编程过程中可以直接调用。本关目标是让学习者了解并掌握一些常用的 Python 内置函数的用法。 ...
  • 本关的目标是让读者了解并掌握函数调用的相关知识。 相关知识 定义函数与调用函数的顺序 在定义了函数之后,就可以调用该函数了,但是在Python中我们要注意一个关键点,就是Python不允许前向引用,即在函数定义...
  • 我们在编程过程中会用到很多函数,但我们不需要每个函数都需要自己去编写,因为Python内置了很多十分有用的函数,我们在编程过程中可以直接调用。 本关目标是让读者了解并掌握一些常用的Python内置函数的用法。 ...
  • 一、函数的定义和使用1、基本结构:1 def函数名(参数):2 """3 文档字符串4 """5 函数体6 返回值72、函数名:和变量名命名规则一致,最好不要与内置函数名相同3、参数:和C/C++不同,参数无需指定类型,直接交由解释...
  • 该案例是想通过python来简化sqlmap的使用,故会使用到查找sqlmap路径,以及在当前路径下找到sqlmap.py文件,这里肯定会有人要问了,为什么不使用list加下标的方式提取sqlmap.py文件呢?首先我们需要考虑的是,以下标...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 59,505
精华内容 23,802
关键字:

python入门之函数调用

python 订阅