While循环在python中不显示任何输出

时间:2018-11-13 10:17:45

标签: python algorithm while-loop

我决定开始解决项目euler上的问题,而我在第一个问题上就陷入了困境。 当我在powershell或使用Visual Studio代码运行while循环时,它什么也没显示。 Powershell只会显示闪烁的光标,并且视觉效果会返回文件路径。

问题是: 如果我们列出所有低于10的自然数,它们是3或5的倍数,则得到3、5、6和9。这些倍数的总和为23。

找到1000以下的3或5的所有倍数之和。

total = 0
x = 1
a = 3*x
b = 5*x

while (a or b<1000):
    total = total + a + b
    x =+ 1

print total

我也尝试过更改代码,但是没用

total = 0
x = 1
a = 3*x
b = 5*x

while (a<1000):
    total = total + a 
    x =+ 1

while(b<1000):
    total =+ b
    x=+1

print total

3 个答案:

答案 0 :(得分:1)

让您自己解决问题。首先,找到您的变量和常量。 您的变量是从1到1000的数字和总和。

尝试:

open(foundBlockPath)
edit(foundBlockPath)
blockHandles(iHandle).openEditor

答案 1 :(得分:0)

假设缩进错误是由于复制粘贴错误引起的,那么您将陷入无限循环。 while a < 1000,但您从不更改a

因为您知道迭代的范围,所以使用for循环更有意义:

print(sum(n for n in range(1, 10) if n % 3 == 0 or n % 5 == 0))
# 23
print(sum(n for n in range(1, 100) if n % 3 == 0 or n % 5 == 0))
# 2318

答案 2 :(得分:0)

您的问题是无限循环,所以这是我的解决方案:

def findAndSum(x):
    total = 0
    for i in range(x):
        if(i%3 == 0 or i%5 == 0):
            total +=i

    print total


findAndSum(10)
findAndSum(100)
findAndSum(1000)

我认为这种解决方案更容易理解。首先,使用所需范围调用该方法。然后,您检查每个数字是否可以被3或5整除而不加休息,并将其加到总数中。