【发布时间】:2014-10-09 21:35:43
【问题描述】:
我今天在计算机科学课上,老师在黑板上放了一段 python 编码,说他不知道为什么它不起作用。他在向我们展示功能并说:
def app(x):
x.append(" ")
print(x)
def ext(x,y):
x.extend(y)
print(y)
nums = [1,2,3,4,5,6]
numbers = [7,8,9,10]
app(nums)
ext(nums,numbers)
print("End of program")
这段代码是为了展示你不打字时的表现
return x
在函数中,当您返回主程序时,变量不会改变,但是当他运行程序时,第一个函数添加了空格并在返回时将其保留在那里,导致打印以下文本...
['1','2','3','4','5','6',' ']
['1','2','3','4','5','6',' ','7','8','9','10']
End of program
请帮帮我。
【问题讨论】:
-
问题到底是什么?
-
您正在操作
nums和x引用的对象。您没有在操纵x所指的内容。如果引用是您的手指指向月亮(而不是月亮本身),那么您并没有改变手指指向的内容,而是实际上跟随手指并在月球上插了一面旗帜。 -
你需要一个更好的老师...对象和对该对象的引用(实际上是本示例中传递的内容)之间的区别非常非常基本。
-
两者都没有,它正在做它应该做的事情。实际上,当参数就地更改时,Python 约定 not 为
return。 -
@DragonstoneJosh:代码没有问题。如果你的老师不明白发生了什么,你需要一个更好的老师。