Can';我不知道如何使我的函数在Python中不返回None

Can';我不知道如何使我的函数在Python中不返回None,python,Python,我有一个程序,我正试图使它要么显示一个数字的所有因素,要么说它是素数。这是一个简单的程序,但我有一个主要问题。一旦它打印出输入号码的所有因子,它总是不返回任何因子。我尝试了多种方法来摆脱它,但如果不把其他事情搞砸,任何事情都无法奏效。代码如下 def mys(x): x = input("Enter a number: ") for i in range(2,x): r = x % i if r == 0: print(i)

我有一个程序,我正试图使它要么显示一个数字的所有因素,要么说它是素数。这是一个简单的程序,但我有一个主要问题。一旦它打印出输入号码的所有因子,它总是不返回任何因子。我尝试了多种方法来摆脱它,但如果不把其他事情搞砸,任何事情都无法奏效。代码如下

def mys(x):
    x = input("Enter a number: ")
    for i in range(2,x):
        r = x % i
        if r == 0:
            print(i)
print(mys(x))
该代码只是用于打印因子,但这就是问题所在。输入数字后得到的结果(在本例中为20)如下所示:

2
4
5
10
None

无论我做什么,我都无法使None不打印。

因此,如果您不希望mys的返回值(None)不打印,请不要打印它:

mys(x)

在python中,没有return语句的函数总是不返回任何语句

我想你要做的是调用mys函数,而不是打印它。 请注意,您应该删除x参数,因为它是在函数内部询问的

def mys():
    x = input("Enter a number: ")
    for i in range(2,x):
        r = x % i
        if r == 0:
            print(i)
mys()
最好不要在函数中包含用户输入和打印。这将使测试和重用更容易:

def mys(x):
    result = []
    for i in range(2,x):
        r = x % i
        if r == 0:
            result.append(i)
    return result

x = input("Enter a number: ")
print(mys(x))

您没有在函数末尾添加return语句,因此它不返回任何值。只是不要打印mys(x),没有打印就调用它。让它返回除无以外的其他内容?或者不打印调用它的结果。您永远不会从函数中返回。
print
!=<代码>返回。为什么人们对这个问题投反对票?这是有效的。