python数字转换英文26字母_使用Python轻松实现字母数字转换

class Alphanumeric(object):

ALPHABET_LENGTH = 26

def __init__(self, nrange=None):

self.current_letter = 'z'

self.current_number = 0

self.nrange = nrange

def forward_letter(self, letter, positions):

if letter.islower():

unicode_point = ord('a')

else:

unicode_point = ord('A')

start = ord(letter) - unicode_point

offset = ((start + positions) % self.ALPHABET_LENGTH) + unicode_point

self.current_letter = chr(offset)

return self.current_letter

def backward_letter(self, letter, positions):

if letter.islower():

unicode_point = ord('a')

else:

unicode_point = ord('A')

start = ord(letter) - unicode_point

offset = ((start - positions) % self.ALPHABET_LENGTH) + unicode_point

self.current_letter = chr(offset)

return self.current_letter

def next_letter(self):

return self.forward_letter(self.current_letter, 1)

def previous_letter(self):

return self.backward_letter(self.current_letter, 1)

def forward_number(self, number, positions):

if not self.nrange:

self.current_number = number + positions

return self.current_number

index = self.nrange.index(number)

start = index + positions

offset = (start % len(self.nrange))

self.current_number = self.nrange[offset]

return self.current_number

def backward_number(self, number, positions):

if not self.nrange:

return number - positions

index = self.nrange.index(number)

start = index - positions

offset = (start % len(self.nrange))

self.current_number = self.nrange[offset]

return self.current_number

def next_number(self):

return self.forward_number(self.current_number, 1)

def previous_number(self):

return self.backward_number(self.current_number, 1)

def forward_alphanumeric(self, alpha, positions, ignore_numbers=False, ignore_letters=False):

result = ""

for char in alpha:

if char.isdigit() and not ignore_numbers:

char = str(self.forward_number(int(char), positions))

if char.isalpha() and not ignore_letters:

char = self.forward_letter(char, positions)

result += char

return result

def backward_alphanumeric(self, alpha, positions, ignore_numbers=False, ignore_letters=False):

result = ""

for char in alpha:

if char.isdigit() and not ignore_numbers:

char = str(self.backward_number(int(char), positions))

if char.isalpha() and not ignore_letters:

char = self.backward_letter(char, positions)

result += char

return result

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值