4 回答
 
                    
                    TA贡献1895条经验 获得超3个赞
内置string模块提供包含字母表的字符串。您可以使用一行代码从字母到数字进行字典:
import string
letter_to_number = {l:n+1 for (l,n) in zip(string.ascii_uppercase, range(len(string.ascii_uppercase)))}
# {'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5, 'F': 6, 'G': 7, 'H': 8, 'I': 9, 'J': 10, 'K': 11, 'L': 12, 'M': 13, 'N': 14, 'O': 15, 'P': 16, 'Q': 17, 'R': 18, 'S': 19, 'T': 20, 'U': 21, 'V': 22, 'W': 23, 'X': 24, 'Y': 25, 'Z': 26}
 
                    
                    TA贡献2036条经验 获得超8个赞
您可以使用内置ord函数返回任何字符的 unicode 代码点(作为整数)。
>>> ord('A')
65
如果你愿意,你可以从中减去一个偏移量。
>>> offset = ord('A') - 1
>>> ord('A') - offset
1
>>> ord('B') - offset
2
 
                    
                    TA贡献1871条经验 获得超8个赞
您可以使用 ascii 码。例如:
num = ord(letter1.lower()) - ord('a') + 1
每个字符都由ascii 码中的一个数字表示。您可以使用 将您的字母转换为 ascii 代码ord,并从中减去字母“a”的 ascii 代码。所有字母在 ascii 表中都是连续的。我补充说.lower(),如果你有大写或小写,你应该将它分成两种情况。完整代码看起来像这样(在变量中给定一个字母letter1:
if letter`.islower():
num = ord(letter1) - ord('a') + 1
else:
num = ord(letter1) - ord('A') + 1
(+1 是如果你从 1 而不是 0 开始计数)
添加回答
举报

