下面代码的输出结果是
def exchange(a,b):
a,b= b,a
return (a,b)
x=10
y= 20
x,y = exchange(x,y)
print(x,y)
A.20 10
B.20 20
C.20,10
D.10 10
正确答案A,我的答案: C得0分
def a(x,y) :
if x==y:
return x ,y
print a(3,3)
3,3
为什么第一个输出没有逗号,第二个有逗号?
函数exchange在函数内交换了a,b的数值,返回时将a,b放在元组内返回,此时如果在exchange前面用一个变量接受则打印出来是一个原组形式,这里用了两个变量接受,则将原组内的数拆分给了a,b print(a,b)打印a,b的值,中间的逗号用作传入变量分隔符,不会被打印,
函数a和exchange一样做交换值返回的时候return x ,y 这里会自动将x,y打包成元组返回,前面没有被变量接受,直接传入print打印,所以print直接打印元组形式,所以有逗号,但是你输出的也不对,元组形式打印出来的是
(3,3)
有帮助请采纳
第二个是打印的元组,元组内容用逗号分开,而且内容是(3, 3)
print(x,y)这里面是2个参数啊
x,y = exchange(x,y),这里已经自动进行了拆箱操作,虽然函数返回的是元组,但是元组内的值已经分别赋值给了x和y
print a(3,3)这里面是一个参数啊,你函数a的返回值是个元组,你打印元组,当然带逗号了
-=-=-=
说了半天,其实就是
print(3,3)
和
print((3,3))
的区别
-=-=-
再另:python3已经全面废弃使用print不加括号而直接加变量的方法,因为确实很容易把参数和元组搞混
因为你直接return回来的是一个元组
你直接print自然就是元组,而原题相当于将元组拆成了两个元素打印出来