Python で回文テスターをプログラムしました。二重引用符を含む特定の回文を手動で入力すると、プログラムはそれを回文として正しく認識します。ただし、同じ行のテキストをコピーして貼り付けると、プログラムは文字列を逆方向の対応する文字列と比較する前に二重括弧を削除できません。
コードは次のとおりです。
### Palindrome Test ###
import string # class which includes all punctuation characters
word = raw_input("Please enter a word or phrase:\n")
if (len(word) <= 1): # if 0 or 1 character input
print 'Sorry, ' + '"' + word + '"' + ' is too short to be a palindrome.'
else:
tword = word.lower() # make input lowercase so capital letters don't cause problems, assn to new var
tword2 = tword.replace(' ','') # replace spaces with empty strings to remove space asymmetry
tword3 = list(tword2) # break lowercase, spaceless input into list of characters, assn to new variable
# ditch punctuation in list
tword3 = [''.join(c for c in s if c not in string.punctuation) for s in tword3]
fword = ''.join(tword3) # gives us a lowercase, spaceless, punctuationless forward string
tword3.reverse() # reverse list of characters
bword = ''.join(tword3) # rejoin backwards list, assn to new variable
if bword == fword: # check equivalence of backwards and forwards lowercase, spaceless, punctuationless input
# if equivalent, print 'yes' message with original input
print 'YES, ' + '"' + word + '"' + ' is a palindrome.'
else: # else, 'no' message with original input
print 'NO, ' + '"' + word + '"' + ' is not a palindrome.'
たとえば、「デザート、お姉ちゃん?」(感覚が強調されます)。入力として入力すると、正しく「はい」メッセージが返されます。貼り付けると、「いいえ」というメッセージが表示されます。
どうしたの?
編集: このサイトまたはワード文書から貼り付けても問題がないことがわかりました。ただし、このページ (http://www.palindromelist.net/Desserts-sis-Sensuousness-is-stressed/) から貼り付けると、間違った出力が生成されます。