程序挂起了!(也许是印刷版?)

2024-10-01 09:38:44 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我对Python很在行。我决定制作一个制作素数的程序。我知道可能有一个内置函数可以做到这一点,但我决定自己去做。你知道吗

number = 1
numlist = list()
for x in range (0, 1000):
    numlist.append("")
    print "Created list entry " + str(x)
while True:
    number = number + 1
    if number % 2 != 0:
        numscrollerA = 1
        numscrollerB = 1
        while numscrollerA <= number:
            if float(number) / float(numscrollerA) == float(int(number)):
                numlist[numscrollerA] = "true"
            if float(number) / float(numscrollerA) != float(int(number)):
                numlist[numscrollerA] = "false"
            numscrollerA = numscrollerA + 1
        while numscrollerB <= number:
            if numscrollerB != 1 and numscroller != number and numlist[numscrollerB] == "true":
                primestatus = "false"
            else:
                primestatus = "true"
        if primestatus == "true":
            print number

我得到了1000次“Created list entryx”。然后程序就挂起了。你知道吗


Tags: 程序falsetruenumberiffloatlistint
2条回答
   while numscrollerB <= number:
        if numscrollerB != 1 and numscroller != number and numlist[numscrollerB] == "true":
            primestatus = "false"
        else:
            primestatus = "true"

在这个循环中不增加numscrollerB,所以它无限运行。无论如何,你应该用“for loop”:

for numscrollerB in range(1, number+1):
    pass  # do something

你的代码很不和谐。典型的新手经历了不同的编码风格。 你的单子不需要。 在python中,您可以创建如下列表

def check_even(val):
    #this contains your logic
    return val % 2 == 0

evenslist = [check_even(i) for i in xrange(1, 1001)]

print numlist

相关问题 更多 >