【发布时间】:2017-08-08 02:15:20
【问题描述】:
for i in range(999*999):
if ispalindrome(999*999-i)==True and isprime(999*999-i) == False:
factors = listfactors(999*999-i)
for j in range(len(factors)):
if len(str(factors[j])) == 3 and len(str(int((999*999-i)/factors[j])))==3:
print(999*999-i)
quit()
这是我的代码。我想检查这些条件是否为真,然后在找到第一个条件后停止,但它会在控制台中打印所有符合条件的数字。我的想法是当它得到第一个数字时它应该停止
编辑:我尝试使用 quit() 而不是 break,但这仍然不起作用,我不明白。我确实尝试了两个中断语句,但这没有用。我想知道我是否弄错了缩进。
【问题讨论】:
-
所以...
break在哪里? -
我假设您使用的是
quit(),因为break不起作用。你有 2 个级别的for循环break只会突破一个级别。可能更容易将其放入函数和return -
哎呀,那是我尝试使用 quit() 代替的代码的更高版本。我不确定是否需要两次休息,因为我有两个循环。 quit() 应该做同样的事情,但只给我一个数字,对吧?
-
@Emily 不,使用两个中断并不能解决问题,除非使用除了一个告诉你是否匹配的变量。
标签: python-3.x for-loop break