函数只返回期望值“None”

2024-09-30 22:10:50 发布

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

我的函数没有返回值,所以我认为它应该返回“None”。相反,它不会返回任何东西。有人能告诉我为什么吗?感谢大家的帮助!你知道吗

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

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

posdivisor(someValue)

外壳报告:

Enter an integer: 49
1
7
49

Tags: 函数innoneanforifdefeval
2条回答

当以交互方式评估事物时,python提示符将自动吞下None

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

因为您的代码只是打印数据,所以函数返回一个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

相关问题 更多 >