繁体   English   中英

在 python 中返回一个字符串并且只得到一个空数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM