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

2024-06-07 22:00:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个程序,我正在努力使它要么显示一个数字的所有因素,或说它是素数。这是一个简单的程序,但我有一个主要问题。一旦它打印出一个输入数字的所有因子,它总是不返回任何值。我试过多种方法来摆脱它,但没有什么工作不把其他事情搞砸了。代码如下

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

不管我做什么,我都不能不打印


Tags: 方法代码程序numberforinputdef数字
2条回答

因此,如果不想打印mys(None)的返回值,则不要打印它:

mys(x)

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

我猜你想做的是调用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))

相关问题 更多 >

    热门问题