Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.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 3导致编译错误,但没有';我想没有错_Python_Python 3.x - Fatal编程技术网

我的Python 3导致编译错误,但没有';我想没有错

我的Python 3导致编译错误,但没有';我想没有错,python,python-3.x,Python,Python 3.x,我想解决6174问题 所以我编写了如下代码 但当我输入1112时,它会导致错误 我不明白为什么会出错。我认为这是正确的代码 这仅仅是Python3的bug吗 p、 因为我不能发布图片,所以我留下了图片的链接。如果我不得不猜测,那是因为在减法过程中获得的一些数字少于4个字符。例如,1001-1001=0。0的字符串表示形式就是“0”,因此调用a[1]、a[2]、或a[3]都是越界的 编辑:具体来说,2111-1112=999。作为一个字符串,这是“999”,它只有三个字符。因此,调用[3]会导

我想解决6174问题

所以我编写了如下代码

但当我输入1112时,它会导致错误

我不明白为什么会出错。我认为这是正确的代码

这仅仅是Python3的bug吗


p、 因为我不能发布图片,所以我留下了图片的链接。

如果我不得不猜测,那是因为在减法过程中获得的一些数字少于4个字符。例如,1001-1001=0。
0
的字符串表示形式就是
“0”
,因此调用
a[1]
a[2]
、或
a[3]
都是越界的

编辑:具体来说,2111-1112=999。作为一个字符串,这是“999”,它只有三个字符。因此,调用[3]会导致越界错误。如果要修复此问题,可以执行以下操作

a = input()

for i in range(0,1000):
    digits = len(a)           ##You need to mind how many digits a has
    n = [0, 0, 0, 0]          ##Initialize all the digits of n to 0
    for j in range(0, digits):
        n[j+4-digits] = a[j]  ##Fill up n with an offset if a has fewer than 4 digit
    a = n[0]*1000 + n[1]*100 +n[2]*10 + n[3]
    b = n[3]*1000 + n[2]*100 +n[1]*10 + n[0]
    if b - a == 6174:
        break
    a = str(b-a)

print (i+1)
检查你自己,这是有效的。如果
a=“999”
n
将是
[0,9,9,9]
,这是应该的。当前编写的代码将设置
n=[9,9,9]
,这将导致调用
n[3]
时出现索引错误

在相应地更改代码后,程序将生成正确的输出(我猜)。对于
a=“1112”
,迭代过程中
a
值的顺序是
999
8991
8082
8532
,打印的最终值是
5


希望有帮助

你不应该粘贴代码的图像;将代码作为文本发布。不,这不是Python中的错误。:)它成为Python bug的可能性很低,不值得担心。一旦你将代码和回溯直接放在问题中,我很乐意提供帮助:P。请还包括你试图完成的任务的描述。很抱歉,我不知道如何将代码作为文本发布。我链接图像的原因是当我键入代码时,它被破坏了。所以它很难阅读。