作者ocean5566 (Zzzz)
看板Python
标题Re: [问题] 如何能做到字母进位呢?
时间Thu Dec 11 23:22:12 2014
很惊讶大家都用函式的观念来处理
我是觉得写一个简单的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://webptt.com/cn.aspx?n=bbs/Python/M.1418311335.A.CE4.html
※ 编辑: ocean5566 (124.218.6.200), 12/11/2014 23:30:35
1F:→ uranusjr: 五六家族恩情满点 12/11 23:31
2F:→ yauhh: 我觉得用class没什麽,closure或说state是很普通的观念 12/12 08:23