Python:为什么return实际上不返回我能看到的任何东西
我有以下代码:Python:为什么return实际上不返回我能看到的任何东西,python,python-2.7,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' def为素数(n):
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'
def为素数(n):
限值=(n**0.5)+1
q=2
p=1
而p!=0和q<极限:
p=n%q
q=q+1
如果p==0且n!=2:
返回“false”
其他:
返回“true”
但是当我发送一个整数时,没有返回任何内容。控制台只是转到一个新的命令行。这里怎么了
编辑1:
以下是不同场景的屏幕截图。我希望使用一个特定的数字调用函数,函数将根据发送到函数中的数字的素性返回'true'或'false'。我想我对返回函数不是很了解
另外,请注意,当我发送到测试9时,它返回true,尽管9绝对是一个复合数……if/else位是否应该在while循环之外
下图的关键点:
1:这是上面的代码,以及我在Spyder控制台中如何调用它
2:在函数外部添加打印语句
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'
def为素数(n):
限值=(n**0.5)+1
q=2
p=1
而p=0和q如果要在控制台上打印内容,必须使用打印语句。return关键字意味着您可以在调用此函数的代码段中使用此值。所以要打印一些东西:
print (x)
有关print语句的更多信息,请参见:没有问题,但您必须打印出函数的返回值。
像这样:
def Test():
if True:
return "Hi"
print(Test())
在本例中,python将在控制台中显示“Hi”。对于初学者,请修复缩进。然后,一步一步地运行,并查看每行中每个变量的值。因为您可能需要打印返回值,假设您甚至调用了该函数。我使用附加的print语句测试了您的代码,除了n=1
,一切正常。如果不进入循环,您的函数将不返回任何值。究竟是什么问题还不清楚。向我们展示您如何运行代码。只要数字是2或更多,在解释器中交互运行时它对我有效。