我试图通过编写一个简单的程序来测试一个数字是否为素数来自学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))
答案 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。