Re: [問題] 如何能做到字母進位呢?

看板Python作者 (阿哩不達)時間10年前 (2014/12/12 01:34), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串9/14 (看更多)
alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' base = len(alphabet) # from int to str, number must >= 1 def base26encode(number): result = [] while number-1 >= base: number, i = divmod(number-1, base) result.append(alphabet[i]) result.append(alphabet[number-1]) return ''.join(reversed(result)) # from str to int, 'A', 'B', ...'Z', 'AA', ...'AZ', ... def base26decode(s): s = s.upper() number = 0 for n in s: number *= base number += alphabet.index(n) + 1 return number #### base26decode 'a' -> 1 'b' -> 2 'aa' -> 27 'ab' -> 28 'z' -> 26 'az' -> 52 'ba' -> 53 'bz' -> 78 'zz' -> 702 'bzz' -> 2054 base26encode 2 -> 'B' 3 -> 'C' 27 -> 'AA' 28 -> 'AB' 53 -> 'BA' 79 -> 'CA' 703 -> 'AAA' 2055 -> 'CAA' -- -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.225.124.246 ※ 文章網址: http://www.ptt.cc/bbs/Python/M.1418348076.A.5FA.html
文章代碼(AID): #1KYaOiNw (Python)
討論串 (同標題文章)
文章代碼(AID): #1KYaOiNw (Python)