Python程序不执行任何功能

时间:2016-07-08 17:23:56

标签: python function primes

我正在学习python以获得乐趣。我习惯用C ++编码,到目前为止它很容易拾取。我自己写了第一个程序,但由于某种原因,它没有做任何事情,我写的函数也不会执行。如果我在函数外部编写print语句,则语句会执行,但它永远不会进入函数内部。这是我的代码。任何提示都将非常感激。

PasteSpecial()

3 个答案:

答案 0 :(得分:4)

StackAdder是一个函数;它既不是True也不是False,因此ConsecutivePrime 调用,它只是没有做任何事情。

答案 1 :(得分:1)

ConsecutivePrime()函数的开头添加这些行,并观察输出:

print(StackAdder == True)
print(StackAdder == False)

你可以看到False两次打印,对吗?惊讶吗?阅读Scott Hunter对答案的评论。可能会有所帮助。

因此,whileif的条件都是假的。

如果你想要的是检查返回的值StackAdder(),你需要这样做:

def ConsecutivePrime():
    primeNum = 0
    stack = []
    while(StackAdder(myStack) == False): # define myStack to your needs
        primeNum = isPrime(primeNum)
        stack.append(primeNum)
        StackAdder(stack)
    if(StackAdder(myStack) == True):
        print ("Largets Prime: ", sum)

答案 2 :(得分:0)

构建代码的方式存在重大问题,我将尝试指出函数中最明显的错误:

1)关于函数isPrime(primeNum),这是写它的正确方法:

def isPrime(primeNum):
    isPrime = False
    while not isPrime:
        primeNum += 1 
        if(primeNum % 2 == 1): #First Checks If Odd 
            if(primeNum % 3 == 0):
                isPrime == False
            elif(primeNum % 5 == 0):
                isPrime == False
            elif(primeNum % 7 == 0):
                isPrime == False
            elif(primeNum % 9 == 0):
                isPrime == False
            else:
                isPrime == True
    return primeNum

我将while(isPrime == False)重写为while not isPrime。此外,您不需要if(isPrime == True)语句,因为在isPrime == True时将退出while循环。

2)在函数StackAdder(stack)中,您将介绍之前未定义的count。也许你想要sum而不是?或者您可能正在尝试使用count()方法(返回列表中obj出现次数的计数?)

3)在函数ConsecutivePrime()中,Stackadder是一个函数,因此您的代码应为:while(StackAdder(stack) == False)