Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.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 为什么我的功能被忽略了?_Python_String_Input_Int - Fatal编程技术网

Python 为什么我的功能被忽略了?

Python 为什么我的功能被忽略了?,python,string,input,int,Python,String,Input,Int,在控制台中,我的程序打印第一个问题,输入后,打印第二个问题并终止。它似乎跳过了该函数。很明显我做错了什么事,任何帮助都将不胜感激。那个while循环仍然感觉不对劲 def Prime(n): i = n - 1 while i > 0: if n % i == 0: return False print("This number is not prime.") else:

在控制台中,我的程序打印第一个问题,输入后,打印第二个问题并终止。它似乎跳过了该函数。很明显我做错了什么事,任何帮助都将不胜感激。那个while循环仍然感觉不对劲

def Prime(n):
    i = n - 1
    while i > 0:
        if n % i == 0:
            return False
            print("This number is not prime.")
        else:
            i = i - 1
    return True
    print("This number is prime.")

def Main():
    n = int(input("What is the number you'd like to check?"))
    Prime(n)
    answer2 = input("Thank you for using the prime program.")

Main()

您的函数在打印输出之前返回,因此任何东西都不会到达控制台。在返回前考虑打印:

def Prime(n):
    i = n - 1
    while i > 0:
        if n % i == 0:
            print("This number is not prime.") # Here
            return False
        else:
            i = i - 1
    print("This number is prime.") # And here
    return True

这并没有被忽视。但如果你输入一个素数,它会在打印任何东西之前返回。我做了所有这些,但现在它返回的所有东西都不是素数。就像哈利说的,我显然把逻辑搞错了。