Q20.以下程序的执行顺序是什么



Q20。以下程序的执行顺序是什么?

def f1(x): #1
temp = x + 1 #2
return temp #3
def f2(y): #4
t = y -1 #5
v = f1(t) #6
return v #7
#8
print(f2(5)) #9

答案(选择一个):
a)1-2-3-4-5-6-7-9
b)1-4-9-4-5-6-1-2-3-6-7-9
c)1-2-3-4-5-6-7-9-4-5-6-6-7-
d)1-4-9-4-5-6-1-2-3-6
e)以上都不是
这里他们说答案是e(以上都不是),但我不确定python执行这些行的正确顺序是什么。我怎么知道每个不同的函数?

在您的代码中,有2 functions,这些2 functions在它将调用的时候运行,所以首先执行调用f2函数的第9行,它将运行到#6行,然后执行调用另一个函数f1f2函数,现在f1函数将开始执行到最后,直到f2初始化v,然后执行返回的7th行最后它将打印声明。。!

您可以通过定义一个故意引入错误的函数来解决这里的关键点。例如,

def f(x):
return squirt

假设squirt没有在全局范围内定义(在函数定义之外),调用此函数将导致错误

NameError: name 'squirt' is not defined

但是,请注意,使用def f(x)定义函数是完全可以接受的。这意味着,当定义函数(def f(x))的行被执行时,函数的行不会以任何方式被执行。

只有当函数被调用时,函数的行才会被执行(而不重新执行定义)。

另一点,当该行包含对另一个函数的调用时(例如,第6行),询问该行何时执行似乎有些模糊。但是,在计算赋值表达式右侧的值之前,第6行中包含的赋值实际上无法进行。所以你可以说第6行-一个赋值-是在执行第2行和第3行之后执行的。同样地,在对f2的调用被解析之前,线路#9不能被执行。

把这些要点放在一起,再加上Python代码是从上到下读取的,答案就是

1-4-5-2-3-6-7-9

最新更新