我正在編寫一個程序,檢查用戶輸入的單詞或句子是否是迴文。這是目前爲止的程序:刪除另一個列表中的列表中的成員
def reverse(text):
a = text[::-1]
if a == text:
print "Yes, it's a palindrome."
else:
print "No, it's not a palindrome."
string = str(raw_input("Enter word here:")).lower()
reverse(string)
但是,此代碼不適用於句子。所以,我試圖做這樣的:
import string
def reverse(text):
a = text[::-1]
if a == text:
print "Yes, it's a palindrome."
else:
print "No, it's not a palindrome."
notstring = str(raw_input("Enter word here:")).lower()
liststring = list(notstring)
forbiddencharacters = string.punctuation + string.whitespace
listcharacters = list(forbiddencharacters)
newlist = liststring - listcharacters
finalstring = "".join(newlist)
reverse(finalstring)
我的目標是把標點符號和空格到一個列表,然後減去這些字符添加到用戶的輸入,使得程序可以知道它是一個迴文甚至如果字符串有標點符號和/或空格。但是,我不知道如何將列表中的元素減去另一個列表中的元素。我通過創建另一個等於用戶輸入減去字符的列表不起作用(我在Xubuntu終端仿真器中試過)。除此之外,當我運行程序出現此錯誤:
Traceback (most recent call last):
File "reverse.py", line 12, in <module>
forbiddencharacters = string.punctuation + string.whitespace
AttributeError: 'str' object has no attribute 'punctuation'
好了,所以我已經改變了變量的名字,我沒有得到上面的錯誤。現在我仍然不知道如何減去列表中的元素。
由於我是初學者程序員,這可能對你來說很愚蠢。如果是這樣的話,我很抱歉。如果有人能解決我遇到的兩個問題中的一個或兩個,我會非常感激。在此先感謝您的幫助。對不起,英文不好,文章太長:)
不要使用字符串作爲變量名,然後嘗試使用string模塊 – 2014-10-19 20:08:02
你說得對,我不知道 – chilliefiber 2014-10-19 20:10:25
不叫'STR()'從返回的值'raw_input()'它已經有'str'類型。 – jfs 2014-10-19 20:12:51