Python将数字的形式扩展为十的幂

2024-09-27 21:33:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我对编码非常陌生,我正在尝试编写一个python脚本,其中用户输入一个整数,它以扩展形式显示该整数,并将其提高到10的幂次方

示例:用户输入643541,脚本输出643541 = (6x10^5 )+(4x10^4)+(3x10^3)+(5x10^2)+(4x10^1)+(1x10^0)

这是我的密码

A = [7000, 400, 70,1]
cond = True
y = 0
i = 0
sizeArray = len(A)
for i in range(0, sizeArray-1):
    while cond == True:
        if A[i]%10 == 0:
            A[i] = A[i]/10
            y += 1

        else:
            cond = False
    print(y)

我试着用一个样本数组来测试零的数目,但是我不知道如何才能输出上面的结果。你知道吗

我怎样才能做到这一点?你知道吗


Tags: 用户in脚本true密码示例编码for
2条回答

您可以将输入整数643541转换为数字数组[6,4,3,5,4,1]。然后为指数保留一个变量。对于数组中的每个数字,它都将递减

def function(num):
 digits = str(num) # convert number to string
 output = []
 for i, digit in enumerate(digits):
   output.append("(" + digit + "x10^" + str(len(digits)-i-1) + ")")
 return " + ".join(output)

这里len(digits)-i-1扮演维持指数值的变量的角色

每一个这样的问题都应该用一个列表来解决:

>>> n = 123456
>>> '+'.join([ '({1}x10^{0})'.format(*t) for t in enumerate(str(n)[::-1]) ][::-1])
'(1x10^5)+(2x10^4)+(3x10^3)+(4x10^2)+(5x10^1)+(6x10^0)'

说明:

  • str(n)[::-1]将数字转换为字符串,然后反转字符串,以字符串的形式给出数字的位数,从最低有效到最高有效。你知道吗
  • enumerate返回成对的t = (i, d),其中i是索引,d是数字。因为序列是从最低有效到最高有效的,所以指数等于相应的指数10。你知道吗
  • *t在格式字符串中为{0}{1}解压(i, d),因此结果类似于({d}x10^{i})。你知道吗
  • 应用于列表理解的[::-1]将结果反转回正确的顺序。你知道吗
  • '+'.join将这些结果连接到一个字符串中,各部分之间带有+符号。你知道吗

相关问题 更多 >

    热门问题