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