[Python] python3 短网址和数字的相互转换 →→→→→进入此内容的聊天室

来自 , 2019-09-14, 写在 Python, 查看 101 次.
URL http://www.code666.cn/view/0cc6ee01
  1. import math
  2. import decimal
  3.  
  4. def convert_to_code(num):
  5.     """
  6.    将数字转换为代码
  7.    """
  8.     def get_num(num, out=''):
  9.         num = decimal.Decimal(num)
  10.         codes = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHJKMNPQRSTUVWXYZ"
  11.         if num > 53:
  12.             key = num % 54
  13.             num = math.floor(num / 54) - 1
  14.             return get_num(num, codes[int(key)] + out)
  15.         else:
  16.             return codes[int(num)] + out
  17.     return get_num(num)
  18.  
  19.  
  20. def convert_to_num(code):
  21.     """
  22.    将代码转为数字
  23.    """
  24.     import math
  25.     codes = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHJKMNPQRSTUVWXYZ"
  26.     num = 0
  27.     num = decimal.Decimal(num)
  28.     i = len(code)
  29.     for char in code:
  30.         i -= 1
  31.         pos = codes.find(char)
  32.         num += (54 ** i) * (pos + 1)
  33.     num -= 1
  34.     # 任意数的 0 次方等于1,所以需要减去
  35.     return int(num)
  36. #//python/8208

回复 "python3 短网址和数字的相互转换"

这儿你可以回复上面这条便签

captcha