Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果方法为true或false,如何打印消息_Python_Python 3.x - Fatal编程技术网

Python 如果方法为true或false,如何打印消息

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

我正在尝试根据用户输入制作一个简单的素数检测器。下面的代码行我有输入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
        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")