Python 如果方法为true或false,如何打印消息
我正在尝试根据用户输入制作一个简单的素数检测器。下面的代码行我有输入2、5和123。即使它们是素数,但程序似乎会为您输入的任何数字打印“非素数” 我尝试了很多,但我的大部分代码甚至没有打印任何东西Python 如果方法为true或false,如何打印消息,python,python-3.x,Python,Python 3.x,我正在尝试根据用户输入制作一个简单的素数检测器。下面的代码行我有输入2、5和123。即使它们是素数,但程序似乎会为您输入的任何数字打印“非素数” 我尝试了很多,但我的大部分代码甚至没有打印任何东西 def check_Prime(f): if(f<2): return False can=math.sqrt(f) for x in range(2,can): if(f%x==0): return False
def check_Prime(f):
if(f<2):
return False
can=math.sqrt(f)
for x in range(2,can):
if(f%x==0):
return False
else:
return True
if check_Prime is True:
print("prime number")
else:
print("not prime number")
def check_Prime(f):
if(f您没有调用函数。您的行if check\u Prime为True:
正在检查函数本身是否为True。它总是这样
实际上,您需要使用如下值调用函数:
如果check\u Prime(3)为真:
然而,你会发现这可以
TypeError:“float”对象不能解释为整数
当math.sqrt()
返回一个非整数时。您不调用该函数,因为您只检查函数是否可用。更改
if check_Prime is True:
print("prime number")
else:
print("not prime number")
到
如果check_Prime()为真:
打印(“素数”)
其他:
打印(“非素数”)
并修复您的类型错误
,因为范围
只处理整数。请查看或学习如何处理范围
中的浮点
,这里有一个快速函数。它很慢。如果您想要快速函数,请尝试此函数
def check_Prime(数字):
如果您的check\u Prime
找到任何不是x
因子的数字,则返回true。此外,您没有调用它。例如,请参阅,您正在检查函数check\u Prime
是否为true的可能重复项,您可以尝试result=check\u Prime(n)
然后在if条件下而不是检查素数
使用结果
你的函数有缺陷。如果你通过3
,你的范围
将失败,因为sqrt(3)不是整数
if check_Prime(<YourInput>) is True:
print("prime number")
else:
print("not prime number")
def check_Prime(number):
if number <= 1:
return False
if number == 2 or number == 3:
return True
if number % 2 == 0:
return False
limit = int(math.sqrt(number)) + 1
for test in range(3, limit, 2):
if number % test == 0:
return False
return True
if check_Prime(3) is True:
print("prime number")
else:
print("not prime number")
import math
def checkPrime(f):
flag = True
if f >= 2:
limit = int(math.sqrt(f)) + 1
for x in range(2, limit):
if f % x == 0:
flag = False
else:
flag = False
return flag
if checkPrime(100):
print("prime number")
else:
print("not prime number")