3216207773 发表于 2020-9-14 20:58:59

疑惑

def getdigits(n):
    j = []
    for i in str(n):
      j.append(i)
    print(j)



print(getdigits(654321))
#为什么会有None出现???????

昨非 发表于 2020-9-14 21:08:37

def getdigits(n):
    j = []
    for i in str(n):
      j.append(i)
    print(j)
    return 0;


print(getdigits(654321))

应该是自定义函数的返回值,你可以试试上述代码

疾风怪盗 发表于 2020-9-14 21:08:42

你的函数里没有设定返回值,所以打印None了

昨非 发表于 2020-9-14 21:09:16

这一过程写在函数外是没有none的

小莫非 发表于 2020-9-14 21:47:51

def getdigits(n):
    j = []
    for i in str(n):
      j.append(i)
    print(j)


print(getdigits(654321))
>>> def getdigits(n):
        j = []
        for i in str(n):
                j.append(i)
        print(j)

       
>>> print(getdigits(654321))
['6', '5', '4', '3', '2', '1']
None
>>> getdigits(654321)
['6', '5', '4', '3', '2', '1']

运行了一下,应该是解释器运行完函数后,会将内存释放,然后就返回了一个 None 值

如果你只是调用函数的话,完全不用在调用函数外再嵌套一层 print()
那样的输出结果应该才是你的理想结果

挥舞乾坤 发表于 2020-9-15 10:38:36

print(getdigits(654321))
print的是函数的返回值,函数没有return,默认返回None
result = getdigits(654321)
print(result)

3216207773 发表于 2020-9-16 10:23:43

print(getdigits(654321))

3216207773 发表于 2020-9-16 10:24:29

懂了,蟹蟹各位啦
页: [1]
查看完整版本: 疑惑