[英]Returning a string in python and only getting an empty array
我正在尝试返回一个数字的除数数组。 如果数字是素数,我想返回字符串,“(整数)是素数”。 我的 function 没有返回这个字符串,而是返回一个空数组。
代码:
def divisors(num):
i = 2
array = []
while i < num:
if num % i == 0:
array.append(i)
i += 1
print(array)
if len(array) > 0:
return array
else:
prime = '%i is prime' %num
return prime
divisors(3)
感谢您的帮助!
您看到的是在 function 执行时打印的空数组。 您的 function 正确地返回了字符串,因为 3 是素数,但您只是没有将 function 的返回值分配给任何变量。 这应该完成你想要的。
def divisors(num):
i = 2
array = []
while i < num:
if num % i == 0:
array.append(i)
i += 1
# print(array)
if len(array) > 0:
return array
else:
prime = '%i is prime' %num
return prime
value = divisors(3)
print(value)
Output:
'3 is prime'
您的 function 确实返回了字符串,您看到的空数组是代码中间的print(array)
语句的结果,我假设您添加了该语句以进行调试。 考虑删除它。
使用print(divisors(3))
实际显示结果字符串(否则它不会显示,就像现在一样)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.