本文實(shí)例講述了python3實(shí)現(xiàn)短網(wǎng)址和數(shù)字相互轉(zhuǎn)換的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
import mathimport decimaldef convert_to_code(num): """ 將數(shù)字轉(zhuǎn)換為代碼 """ def get_num(num, out=''): num = decimal.Decimal(num) codes = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHJKMNPQRSTUVWXYZ" if num > 53: key = num % 54 num = math.floor(num / 54) - 1 return get_num(num, codes[int(key)] + out) else: return codes[int(num)] + out return get_num(num)def convert_to_num(code): """ 將代碼轉(zhuǎn)為數(shù)字 """ import math codes = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHJKMNPQRSTUVWXYZ" num = 0 num = decimal.Decimal(num) i = len(code) for char in code: i -= 1 pos = codes.find(char) num += (54 ** i) * (pos + 1) num -= 1 # 任意數(shù)的 0 次方等于1,所以需要減去 return int(num)
希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選