python - 如何将1000变成1e3?
问题描述
我想用 0 将给定的数字转换为 'e' ex 的格式: 1000000 >> 1e6 到目前为止我使用这个
def test(number: int):
number, zeros = str(number), 0
for i in number:
if i == '0': zeros += 1
return number[0] + 'e' + str(zeros)
解决方案
您只是在复制第一个非零数字。可以有更多。
此外,您不应计算不属于尾随零系列的零,因此请从末尾开始循环并跳出循环。
改变:
for i in number:
if i == '0': zeros += 1
return number[0] + 'e' + str(zeros)
到:
for i in reversed(number):
if i == '0':
zeros += 1
else:
break
if zeros:
return number[:-zeros] + 'e' + str(zeros)
return number
如果您可以使用正则表达式,那么您可以像这样替换循环:
import re
def test(number: int):
number = str(number)
zeros = len(number) - re.search(r"0*$", number).start()
if zeros:
return number[:-zeros] + 'e' + str(zeros)
return number
推荐阅读
- android - 单击任何按钮后,所有其他按钮都在 RecyclerView 中被禁用
- php - Symfony 课程申请设置问题
- maven - 检查提供的 tomee 范围内的特定依赖项
- ios - 编辑 UITextView 时如何删除 iPad 的底部复制/粘贴栏?
- push-notification - 推送通知操作类别在终止状态 iOS 中不起作用
- javascript - ReactJS - 加载资源失败:服务器响应状态为 404(未找到)
- python - 如何将带有外键的 .csv 表导入 django 数据库
- php - aes-256-cbc encryption decryption with initial vector in nodejs
- android - 使用键盘的自动更正部分获取软键盘高度
- javascript - 即使在从 ts 编译到 js 之后如何保持类型安全