Python计算2的幂取最后若干位时如何保留前导零
代码修复方案
修复后完整代码
exponent = int(input('Type in exponent ')) lastDigits = int(input('Type in how many digits you want to see')) number = 2 ** exponent # 取末尾指定位数并自动补前导零 result = f"{number % (10 ** lastDigits):0{lastDigits}d}" print(result)
核心修改点说明
- 替换
eval()为int()处理用户输入:避免用户输入恶意代码触发执行风险,输入处理逻辑更安全。 - 替换原除法取尾数逻辑为模运算
% 10**lastDigits:直接获取数值的最后N位整数结果,不会出现浮点数精度偏差问题。 - 输出时使用动态长度格式化规则
:0{lastDigits}d:指定输出整数的固定长度为用户输入的末尾位数,不足的位置自动用前导零补齐,可直接输出符合要求的带前导零的结果。
效果验证
示例输入:
指数输入:10
末尾位数输入:3
输出结果:024,完全匹配预期需求。
内容的提问来源于stack exchange,提问作者Kate
相关产品推荐
相关产品推荐

