Python——函数与函数调用 :分清主次

函数与函数调用 :分清主次

  • 我们一般将字符串、列表等变量作为参数进行函数调用。但函数本身也是一个对象,所以我们也可以将函数作为参数传入另外一个函数中并进行调用。
    主要是让学习者了解并掌握函数作为参数传入另外一个函数中并进行调用的相关知识。

相关知识

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

第一种情况

  • 程序代码如下:
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()函数,只是执行了returny。而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。最终该程序先后输出了2和1。

第五种情况

  • 程序代码如下:
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。最终该程序先后输出了1和2。

小结

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

编程要求

具体要求如下:

1.定义一个函数,要求实现圆的面积的计算;
2.根据输入的不同整数值的半径,调用函数计算,并输出圆的面积,结果保留两位小数。

  • 测试说明

测试输入:

4

预期输出:

50.27

测试输入:

5

预期输出:

78.54

测试输入:

6

预期输出:

113.10

测试输入:

111

预期输出:

38707.56

上代码:
在这里插入图片描述

如果注释理解有误,请大佬们多多评论指教!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值