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