python3 将科学计数法(用E表示的)转化为书写形式的科学计数法的数字

import re


def fun(numstr: str):
    """需要输入为字符串"""
    num = numstr.upper()
    if 'E' not in num:
        return numstr
    lower = {'0': '⁰', '1': '¹', '2': '²', '3': '³', '4': '⁴', '5': '⁵',
             '6': '⁶', '7': '⁷', '8': '⁸', '9': '⁹', '+': '', '-': '⁻'}  # '+': '⁺' 省略加号

    e = num.find('E')

    big = num[:e]
    symbol = '×10'
    if num[e + 1] in ('+', '-'):
        symbol += lower.get(num[e + 1])
        e += 1

    num2 = num[e + 1:]
    # 去除多余的0
    for i in range(len(num2)):
        if num2[i] == '0':
            e += 1
        else:
            break

    little = ''.join([lower.get(i) for i in num[e + 1:]])
    return big + symbol + little


print(fun('12315e021512'))    # 12315×10²¹⁵¹²

猜你喜欢

转载自blog.csdn.net/Anniewer/article/details/84558475