Python:为什么返回实际上没有返回我能看到的任何内容

时间:2016-09-26 19:11:56

标签: python python-2.7

我有以下代码:

def is_prime(n):
    limit = (n**0.5) + 1
    q = 2
    p = 1
    while p != 0 and q < limit:
        p = n % q
        q = q + 1
        if p == 0 and n != 2:
            return 'false'
        else:
            return 'true'

但是当我发送一个整数时,没有任何返回。控制台只是移动到新的命令行。这有什么不对?

编辑1: 以下是不同场景的屏幕截图。我想这样做,我用一个特定的数字调用函数,函数将返回'true'或'false',具体取决于发送到函数的数字的素数。我想我并不太了解 return 功能。

另外,请注意,当我发送到测试9时,它返回true,尽管9绝对是一个复合数字... if / else位是否应该在while循环之外?

图片下方的关键:

1:这是上面的代码,以及我如何在Spyder控制台中调用它

2:在函数外添加print语句

3:这是教授提供的简单因子功能

image here

编辑2:

我快速更改了代码的结构。我真的不明白为什么这会使它工作,但将if / else语句放在while循环之外会导致预期的真/假输出

def is_prime(n):
    limit = (n**0.5)+1
    q=2
    p=1
    while p!=0 and q<limit:
        p = n%q
        q = q+1
    if p==0 and n!=2:
        return 'false'
    else:
        return 'true'

另外,我使用is_prime(int_of_choice)在控制台中调用该函数

感谢您提供有用的建议

2 个答案:

答案 0 :(得分:1)

如果要在控制台上打印某些内容,则必须使用print语句。 return关键字意味着您可以在调用此函数的一段代码中使用此值。所以打印一些东西:

print (x)

有关print语句的详细信息,请参阅:https://en.wikibooks.org/wiki/Python_Programming/Variables_and_Strings

答案 1 :(得分:1)

没有错,但你必须打印出函数的返回。 像这样:

def Test():
    if True:
        return "Hi"

print(Test())

在这种情况下,python将显示&#34;嗨&#34;在你的控制台中。