如何在Python3中实现PHP base_convert()函数的等效功能
PHP base_convert 等效的 Python 实现
PHP 的 base_convert() 函数可实现不同进制数字的转换,但 Python 没有完全对应的内置函数,不过可以通过组合内置方法和自定义逻辑实现等效功能。
等效 Python 函数实现
我们需要先实现一个十进制数转指定进制字符串的辅助函数,再结合 int() 完成完整的进制转换逻辑:
import string def to_base(num, base): if num == 0: return '0' # 定义36进制字符集:0-9 + a-z chars = string.digits + string.ascii_lowercase result = [] while num > 0: result.append(chars[num % base]) num = num // base return ''.join(reversed(result)) def my_encoder(in_val): # 将输入转为字符串,和PHP处理整数输入的行为对齐 in_str = str(in_val) # 把十六进制格式的字符串转为十进制整数 decimal_num = int(in_str, 16) # 把十进制整数转为36进制字符串 return to_base(decimal_num, 36) # 验证测试 print(my_encoder(1234)) # 输出: 3lg
逻辑说明
- 输入处理:将输入整数转为字符串,和 PHP 中传入整数时自动转为字符串的逻辑保持一致;
- 十六进制转十进制:利用
int(in_str, 16)把十六进制格式的字符串转换为十进制整数; - 十进制转36进制:通过自定义的
to_base()函数,借助字符集映射将十进制数转换为小写的36进制字符串,输出格式和 PHP 完全匹配。
内容的提问来源于stack exchange,提问作者Martin
相关产品推荐
相关产品推荐

