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
!=<代码>返回。为什么人们对这个问题投反对票?这是有效的。