Python程序不要求输入

时间:2014-02-07 03:54:50

标签: python input

我试图通过编写一个简单的程序来测试一个数字是否为素数来自学python。在我看来,代码应该可以工作,但是当我运行它时,即使我正在使用raw_input(),就像它在这里所做的那样Python: user input and commandline arguments,我也没有被要求输入数字。我该怎么做才能解决这个问题?

class PrimeTester:

    def primeTest(number):
        if number == 2:
            print("prime")

        if number % 2 == 0:
            print("not prime")

        highesttestnum = number ** 0.5 + 1
        count = 3
        while count <= highesttestnum:
            if number % count == 0:
                print("not prime")
            count += 2

        print("prime")

    def __init__(self):
        x = int(raw_input('Input a number to test if prime:'))
        print("The number " + x + " " + primeTest(x))

2 个答案:

答案 0 :(得分:1)

您需要在代码后创建此类的对象。

 x = PrimeTester()

您也可以在函数中创建对象,然后调用此函数。

答案 1 :(得分:1)

class PrimeTester:
    def __init__(self):
        x = int(raw_input('Input a number to test if prime:'))
        result = self.primeTest(x)
        print("The number " + str(x) + " is " + result)


    def primeTest(self, number):
        if number == 2:
            result = "prime"

        if number % 2 == 0:
            result = "not prime"

        highesttestnum = number ** 0.5 + 1
        count = 3
        while count <= highesttestnum:
            if number % count == 0:
                result = "not prime"
            count += 2

            result= "prime"

        return result

if __name__ == '__main__':
    obj = PrimeTester()

当你在另一个内部调用一个方法时,使用引用当前对象的'self'。 请阅读python doc。 http://docs.python.org/2/tutorial/classes.html

打印时,您必须将整数值转换为字符串以连接它们 并尝试从方法返回一些东西,而不是打印更pythonic。