-1
現在我要建立一個迴文檢查器。爲什麼我的循環不斷向字符串中添加字母,並且之後不會擦除它們?
我的想法是設置一個空白列表,然後詢問用戶一個字符串,將所有字母添加到字符串中,將其顛倒,然後通過「sum」與字母顛倒創建一個新字。之後,檢查兩個單詞是否相同。如果它們一樣,那就是賓果!
但不知何故,在第一次嘗試之後,「迴文」值不會被重置,而是會一直存儲舊字,並將新字添加到頂部(或之後),因此導致程序無法正確檢查。
這裏是我的代碼:
USER_WORD_LETTERS = []
finished = False
while finished == False:
USER_WORD = input("Write a word: ")
palindrome = ''
if USER_WORD == 'q':
finished = True
else:
for i in USER_WORD:
USER_WORD_LETTERS.append(i)
USER_WORD_LETTERS.reverse()
for i in USER_WORD_LETTERS:
palindrome += i
if palindrome == USER_WORD:
print("Your word is a palindrome!")
else:
print("Your word is not a palindrome!")
那麼,如何避免這種情況?是否有一個命令或函數來「擦除」一個字符串?
你需要在你的while循環裏面定義'USER_WORD_LETTERS'。否則,它會保留所有條目。 – tmwilson26
檢查一個單詞是否是迴文:'word =「hobbit」; word == word [:: - 1]' –
是的!那樣做了。此外,Simeon Aleksov方法也適用,我現在知道刪除列表中的內容的有用功能。多謝你們! –