Byte of Python學習筆記(2)——回文練習
阿新 • • 發佈:2017-11-10
span forbidden you 一點 學習筆記 成員 reverse 大小寫 lis
Byte of Python 第111頁有關回文的作業練習,原題為:要想檢查文本是否屬於回文需要忽略其中的標點、空格與大小寫。例如,“Rise to vote, sir.”是一段回文文本,但是我們現有的程序不會這麽認為。你可以改進上面的程序以使它能夠識別這段回文嗎?如果你需要一些提示,那麽這裏有一個想法 :使用一個元組 來保存所有需要禁用的字符,然後使用成員資格測試來確定一個字符是否應該被移除,即 forbidden = ( ! ,? , . , ...)。——原書註
問題的關鍵在於如何找出字符串中的特殊字符,可以采用提示中的辦法,需要註意的一點是刪除了一個元素之後,原來的數組會改變,因此要註意遍歷過程中的序號的問題。
我的代碼如下:
‘‘‘This is the readme of this project! Are you OK?‘‘‘ forbindden_word = (‘ ‘,‘,‘,‘.‘,‘!‘,‘//‘,‘?‘) def ignore_word(text): #去除忽略的特殊字符 strdemo = list(text) count = 0 for i in list(range((len(strdemo)))): if strdemo[i-count] in forbindden_word: del strdemo[i-count] #刪除特殊字符 count += 1 result = ‘‘.join(strdemo) return result def reverse(text): return text[::-1] def is_reverse(text): #判斷是否為回文 return text == reverse(text) something = input(‘Please input some text:‘) if is_reverse(ignore_word(something)): print(ignore_word(something))print(‘Yes!This is a reverse sentense.‘) else : print(ignore_word(something)) print(‘Oh!No!This is not a reverse sentense!‘)
Byte of Python學習筆記(2)——回文練習