我正在尝试将数字转换为excel列字母。

代码:

def num2col(num):
    letters = ''
    while num:
        mod = num % 26
        num = num // 26
        letters += chr(mod + 64)
    return ''.join(reversed(letters))

print num2col(25), num2col(26), num2col(27)
print num2col(51), num2col(52), num2col(53)
print num2col(77), num2col(78), num2col(79)

所需的输出:
Y Z AA
AY AZ BA
BY BZ CA

实际输出:
Y A@ AA
AY B@ BA
BY C@ CA

最佳答案

def num2col(num):
    letters = ''
    while num:
        num, mod = divmod(num-1, 26)
        letters += chr(mod + 65)      # 65 == ord('A')
    return ''.join(reversed(letters))

print num2col(25), num2col(26), num2col(27)
print num2col(51), num2col(52), num2col(53)
print num2col(77), num2col(78), num2col(79)

输出:
Y Z AA
AY AZ BA
BY BZ CA

关于Python字符函数, "Z"在哪里?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25111761/

10-09 00:26