Re: [問題] 如何能做到字母進位呢?

看板Python作者 (Zzzz)時間10年前發表 (2014/12/11 15:22), 10年前編輯推噓0(002)
留言2則, 2人參與, 最新討論串5/14 (看更多)
很驚訝大家都用函式的觀念來處理 我是覺得寫一個簡單的class比較好玩一點 class String: MIN=ord('a') MAX=ord('z') def __init__(self,char): self.ascii=[ord(i) for i in char] def __add__(self,num): for i in range(len(self.ascii)): if self.ascii[i]+num>self.MAX: self.ascii[i]=self.ascii[i]+num-26 else: self.ascii[i]+=num def __repr__(self): s="" for i in self.ascii: s+=chr(i) return s #__str__=__repr__ if __name__=='__main__': a=String('abz') print a a+1 print a a+5 print a 輸出結果 abz bca ghf 你可以直接在IDLE下叫出String() 然後隨便你玩 隨便你互動 比較好玩一點 不過這個class有很多缺點 1.錯誤處理沒有做, 例如a+'a'是什麼意思? 2.沒有實作減法處理 例如 a-1 怎麼辦? 3.字母大小寫的處理 4.a+100? 不過就你要求的方向 這個玩具應該是夠你玩 其它當作練習 ※ 引述《opengood5566 ( )》之銘言: : 比如說進行加一: a變b, at變au, az變ba : 請問有甚麼辦法可以做到這樣嗎? : 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 124.218.6.200 ※ 文章網址: http://www.ptt.cc/bbs/Python/M.1418311335.A.CE4.html ※ 編輯: ocean5566 (124.218.6.200), 12/11/2014 23:30:35

12/11 23:31, , 1F
五六家族恩情滿點
12/11 23:31, 1F

12/12 08:23, , 2F
我覺得用class沒什麼,closure或說state是很普通的觀念
12/12 08:23, 2F
文章代碼(AID): #1KYRQdpa (Python)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 5 之 14 篇):
文章代碼(AID): #1KYRQdpa (Python)