预测以下 python 程序的输出:
程序一:
代码语言:javascript复制r = lambda q: q * 2
s = lambda q: q * 3
x = 2
x = r(x)
x = s(x)
x = r(x)
print (x)
输出:
代码语言:javascript复制24
解释: 在上述程序中,r 和 s 是 lambda 函数或匿名函数,q 是这两个函数的参数。在第一步中,我们将 x 初始化为 2。在第二步中,我们将 x 作为参数传递给 lambda 函数 r,这将返回存储在 x 中的 x*2
。也就是说,现在 x = 4。同样,在第三步中,我们将 x 传递给 lambda 函数 s,因此x = 4*3
。即,现在 x = 12
。再次在最后一步中,将 x 乘以 2,并将其传递给函数 r。因此,x = 24
。
程序二:
代码语言:javascript复制a = 4.5
b = 2
print (a//b)
输出:
代码语言:javascript复制2.0
解释 : 这种类型的除法称为截断除法,其中余数被截断或删除。
程序三:
代码语言:javascript复制a = True
b = False
c = False
if a or b and c:
print ("HAIYONG")
else:
print ("haiyong")
输出:
代码语言:javascript复制HAIYONG
解释: 在 Python 中,AND 运算符的优先级高于 OR 运算符。因此,首先对其进行评估。即,(b 和 c) 的计算结果为 false。现在 OR 运算符被计算。在这里,(True or False) 的计算结果为 True。所以 if 条件变为 True 并且 HAIYONG 被打印为输出。
程序四:
代码语言:javascript复制a = True
b = False
c = False
if not a or b:
print (1)
elif not a or not b and c:
print (2)
elif not a or b or not b and a:
print (3)
else:
print (4)
输出:
代码语言:javascript复制3
说明: 在 Python 中,优先顺序首先是 NOT,然后是 AND,最后是 OR。因此,if 条件和第二个 elif 条件评估为 False,而第三个 elif 条件评估为 True,结果为 3 作为输出。
程序五:
代码语言:javascript复制count = 1
def doThis():
global count
for i in (1, 2, 3):
count = 1
doThis()
print (count)
输出:
代码语言:javascript复制4
说明: 函数外声明的变量count是全局变量,函数中引用的count变量也是函数外定义的同一个全局变量。因此,对函数中变量所做的更改会反映到原始变量中。因此,程序的输出为 4。