我正在尝试将数字转换为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)
Run Code Online (Sandbox Code Playgroud)
期望的输出:
Y Z AA
AY AZ BA
BY BZ CA
Run Code Online (Sandbox Code Playgroud)
实际产量:
Y A@ AA
AY B@ BA
BY C@ CA
Run Code Online (Sandbox Code Playgroud)
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)
Run Code Online (Sandbox Code Playgroud)
输出:
Y Z AA
AY AZ BA
BY BZ CA
Run Code Online (Sandbox Code Playgroud)