Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将数字中的每个整数按与数字相同的顺序平方_Python_Python 3.x - Fatal编程技术网

Python 将数字中的每个整数按与数字相同的顺序平方

Python 将数字中的每个整数按与数字相同的顺序平方,python,python-3.x,Python,Python 3.x,基本上,我想把每个数字都平方成一个整数。例如,984应为816416或405应为16025 有趣的是,如果我在第八行写result=result+digital*(10**power),并使power=0,那么我就得到了正确的结果。然而,我觉得这听起来不合逻辑,因为我认为我们应该首先决定是不是数字>9。我的意思是,在if语句之前写result=result+digit*(10**power)对我来说很奇怪。那么,我可以通过编辑表单中的某些部分来共享代码吗?如果没有,您能解释一下为什么我要把它写在

基本上,我想把每个数字都平方成一个整数。例如,984应为816416或405应为16025


有趣的是,如果我在第八行写
result=result+digital*(10**power)
,并使
power=0
,那么我就得到了正确的结果。然而,我觉得这听起来不合逻辑,因为我认为我们应该首先决定是不是
数字>9
。我的意思是,在if语句之前写
result=result+digit*(10**power)
对我来说很奇怪。那么,我可以通过编辑表单中的某些部分来共享代码吗?如果没有,您能解释一下为什么我要把它写在第八行吗?谢谢。

这里的问题是,您在If条件之前平方了
数字
变量,如果您的数字小于10,则该条件将失败。例如,对于数字4,您的
数字
变量的值将为16,因此幂将为1,然后您的
结果
将为160

你需要把它放在if语句前的八行,因为if语句决定你的幂变量,你的值不会移位,而是加到
结果
变量中。例如,对于45,您希望输出为1625,但如果在if条件之前调用该语句,则幂为0,因此您将得到185(25+160)而不是1625的结果

x = int(input('num: '))
result = 0
power = -1

while x != 0:
    digit = x % 10
    digit = digit**2

    if digit > 9:
        power += 2
    else:
        power += 1
    result = result + digit * (10**power)
    x //= 10

print(result)

这应该是可行的。

或者,您可以直接操纵输入数字实际上是字符串的性质,您可以开始处理:


>>>平方=[int(x)*int(x)表示输入中的x('输入一个数字:')]
输入一个号码:984
>>>方格
[81, 64, 16]
>>>结果=int(“”.join(map(str,squares)))
>>>结果
816416

我认为将数字转换为字符串以循环数字可能更容易
x = int(input('num: '))
result = 0
power = 0

while x != 0:
    digit = x % 10

    digit2 = digit**2
    result = result + digit2 * (10**power)

    if digit2 > 9:
        power += 2
    else:
        power += 1


    x //= 10

print(result)