看板 Python 關於我們 聯絡資訊
很驚訝大家都用函式的觀念來處理 我是覺得寫一個簡單的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
uranusjr: 五六家族恩情滿點 12/11 23:31
yauhh: 我覺得用class沒什麼,closure或說state是很普通的觀念 12/12 08:23