如何用Python打印字母表的第n个字母?

如何用Python打印字母表的第n个字母?,python,Python,ASCII数学在Python中似乎不起作用: a+5 不起作用 我怎样才能在没有字母数组的情况下快速打印出字母表中的第n个字母 我天真的解决方案是: letters = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'] print letters[5] 字母=['A',B',C',D',

ASCII数学在Python中似乎不起作用:

a+5 不起作用

我怎样才能在没有字母数组的情况下快速打印出字母表中的第n个字母

我天真的解决方案是:

letters = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'] print letters[5] 字母=['A',B',C',D',E',F',G',H',I',J',K',L',M',N',O',P',Q',R',S',T',U',V',W',X',Y',Z'] 印刷信件[5]
​​​​​​​​​​​​​​​​​​​

chr
ord
分别将字符从和转换为整数。因此:

chr(ord('a') + 5)

字母
'f'
是否需要使用
ord
函数,如

print(ord('a')-5)

编辑:啊,我太慢了:)

抛开ASCII数学不谈,你不必手动在表格中键入字母。
字符串模块中的提供了您要查找的内容

>>> import string
>>> string.ascii_uppercase[5]
'F'
>>> 
例如:

>>> n = 5
>>> is_upper = False
>>> string.letters[n+is_upper*26]
'f'
>>> is_upper = True
>>> string.letters[n+is_upper*26]
'F'

如果你想走得更远(可能不是很好),你可以创建一个新的类CharMath:

class CharMath:
    def __init__(self,char):
        if len(char) > 1: raise IndexError("Not a single character provided")
        else: self.char = char
    def __add__(self,num):
        if type(num) == int or type(num) == float: return chr(ord(self.char) + num)
        raise TypeError("Number not provided")
可以使用上述方法:

>>> CharMath("a") + 5
'f'

如果您喜欢短,请尝试lambda符号:

>>> A = lambda c: chr(ord('a')+c)
>>> A(5)
'f'

您可以使用
letters=“ABCDEF…XYZ”
缩短您的原始解决方案,或者如果它绝对必须是一个列表,
letters=list(“ABCDEF…等”)
letters=list(string.uppercase)
(注意string.uppercase在Py3中更改了它的名称)。显然,它是
'a'
中的第五个字母。是的,我是零索引。有什么自尊的程序员不会呢?;)
>>> CharMath("a") + 5
'f'
>>> A = lambda c: chr(ord('a')+c)
>>> A(5)
'f'