函数返回任何内容而不是预期值“无”

时间:2015-01-31 03:30:18

标签: python function return

我没有返回我的功能,所以我认为它应该返回"无"。相反,它根本不会返回任何东西。有人可以告诉我为什么吗?所有帮助表示赞赏!

def posdivisor(n):
    for i in range(1,n+1):
        if n % i == 0:
            print(i)

someValue = eval(input("Enter an integer: "))

posdivisor(someValue)

SHELL报告:

Enter an integer: 49
1
7
49

2 个答案:

答案 0 :(得分:2)

因为你的代码只打印数据,函数会返回None,你忽略它,尝试打印出来会看到无:

def posdivisor(n):
    for i in range(1,n+1):
        if n % i == 0:
            print(i)

someValue = eval(input("Enter an integer: "))

result = posdivisor(someValue)
print result

此外,您在这里不需要eval(),如果您可以确保输入始终为数字,那么input()就可以了:

def posdivisor(n):
    for i in range(1,n+1):
        if n % i == 0:
            print(i)

someValue = input("Enter an integer: ")

result = posdivisor(someValue)
print result

答案 1 :(得分:0)

在以交互方式评估事物时,python提示会自动吞下None

>>> def foo(): return None
>>> foo()
>>> None
>>> repr(None)
'None'