1
我不明白为什么我的代码不起作用。了解For循环语句中的错误Python 3
的代码是:
def trans(old):
length = len(old)
new = []
new = old
for i in range(0,length):
print(old[length-i-1])
for i in range(0,length):
new[i] = old[length-i-1]
print("new:",new[i]," [i]:",i," old:",old[length-i-1]," length-
i-1:",length-i-1)
ihavenoideawhatimdoing = " ".join(new)
return new
指令:
1. DEF反式(旧):输入句子(old)
2.长度(LEN):取在句子元素的数目
和new = old
是为相同尺寸的容器制作新词
4.第一个for
loop =我想看原文句子中的词倒退
5.我的问题是在第二个for
循环中。看到输出
6.随之而来的便是与我解决,但问题不是解决问题我有
输入一句:“请帮我解决这个”
我没有任何标签为下一批单词,但它应该是:
旧(长度0-1) - >旧(5-0-1) - >旧(4):此
旧(3):解答
old(2):me
old(1):help
老(0):请现在
,有什么玄乎的是,在未来for
声明的长度-I-1 = 1,其中的而不是“帮助”,这是“解决”。
这两个代码都很熟悉,所以我被困在还有什么可能是错误的。
'新= old'使得名字'new'指向同一个对象'old'。所以如果你改变一个的内容,另一个也会改变。 – RemcoGerlich
它不只是将'old'的内容分配给'new'?所以*任何*变成'新'适用于'旧'? 编辑:刚刚看到重复的问题。感谢您的帮助〜 – Monxstar
@Monxstar:'='永远不会复制任何东西,它只是让左边的名称指向右边的值。因为它们都指向相同的东西,所以两者都可以看到更改(但它仍然只有一个对象正在更改)。 'new = list(old)',因为AChampion表示会用'old'的内容创建一个新列表。 – RemcoGerlich