n = 1 def func(a, b): n = b return a*b s = func("knock~", 2) print(s, n) 以上代码输出结果是 A knock~knock~2 B knock~knock~1 C knock~2 D knock~1
时间: 2023-05-25 21:01:32 浏览: 107
答案是 B,输出结果是 knock~knock~1。
这是因为在 func 函数中,n 被赋值为 b,而在函数外部,n 是被赋值为 1 的全局变量。所以当我们调用函数 func("knock~", 2) 时,a 的值为 "knock~",b 的值为 2,而函数返回的值为 a * b,即 "knock~knock~"。但是在函数外部,n 的值依然是 1,所以打印出来的结果是 "knock~knock~1"。
相关问题
以下代码的执行结果是: n = 1 def func(a, b): global n n = b return a*b s = func("knock~", 2) print(s, n)
执行结果是:`knock~knock~ 2`。因为在函数 `func` 内部,使用 `global` 关键字声明了 `n` 是全局变量,并将参数 `b` 赋值给了全局变量 `n`。然后将 `a*b` 的结果返回并赋值给变量 `s`。在主函数中,调用 `func("knock~", 2)`,将返回值赋值给变量 `s`,同时输出全局变量 `n` 的值,因此输出结果为 `knock~knock~ 2`。
def func(a, b): c = a * b return c s = func("knock~", 2) print(c) 以上代码运行结果是 A knock~knock~2 B knock~*2 C 报错 D knock~knock~
C(报错)。因为在函数内部定义的变量 c,它并没有被返回。在 print(c) 这一行,我们尝试打印 c,但是它并没有被定义在全局范围内,所以会抛出 NameError 的错误提示。正确的操作应该是将 return c 改成 return a * b,然后将 print(s) 这一行中的 c 改成 s,这样代码就会输出 knock~knock~。
阅读全文