Re: [問題] 如何能做到字母進位呢?
很驚訝大家都用函式的觀念來處理
我是覺得寫一個簡單的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
12/12 08:23, 2F
討論串 (同標題文章)