gpt4 book ai didi

python - while 语句在它应该停止的时候不停止

转载 作者:太空宇宙 更新时间:2023-11-04 07:44:52 25 4
gpt4 key购买 nike

这是我在这里的第一篇文章。我是 Python 和一般编程的新手,所以我不确定哪里出错了。这是我在 Project Euler 上针对问题 #52 提出的解决方案(我知道这可能也不是最好的方法)。我对这段代码的问题是 while 语句在得到正确答案时不会中断。只有当我以正确的答案开始 num 时,它才会捕捉并给我答案:142857,但是当我用其他任何东西初始化它时,它会继续计数超过 142857。奇怪的是我使用相同的方法来回答另一个欧拉问题,那个工作得很好。谁能告诉我为什么会发生这种情况?谢谢!

def digits(number):
return [int(x) for x in str(number)]

def same_digits():
num = 1
x2 = sorted(digits(num*2))
x3 = sorted(digits(num*3))
x4 = sorted(digits(num*4))
x5 = sorted(digits(num*5))
x6 = sorted(digits(num*6))

while x2 != x3 != x4 != x5 != x6:
num += 1
print num

最佳答案

x2 等变量在循环内不会改变,因此它们将始终保持初始值。如果您希望在 num 更改时重新计算它们的值,则需要将该代码移到循环中。

此外,您在这里使用了比较运算符链接。表达式

x2 != x3 != x4 != x5 != x6

相当于

x2 != x3 and x3 != x4 and x4 != x5 and x5 != x6

这可能不是您想要的。

关于python - while 语句在它应该停止的时候不停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10109565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com