我有以下代码:
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:这是教授提供的简单因子功能
编辑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)在控制台中调用该函数
感谢您提供有用的建议
答案 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;在你的控制台中。