为什么每次循环执行一次我都会得到“none”?

时间:2017-06-30 10:10:06

标签: python-2.7

2 个答案:

答案 0 :(得分:0)

功能diff没有返回print diff(z)打印None的原因。它应该是这样的

def diff(n):
    x = n**(1.0/2)
    y = (n-2)**(1.0/2)
    differ = x-y
    return differ

z = 2
while z >= 0 and z <= 100:
    print diff(z)
    z = z+1

答案 1 :(得分:0)

正如评论正确指出的那样,diff没有明确的返回值。这不会太糟糕,因为diff具有打印所需数字的所需副作用。但是,由于您要求python在while循环中打印diff的结果,因此每次要求None提供返回值时,您将获得diff。您可以通过更改差异来解决这个问题而不是有副作用,而是返回值(只需将print更改为return)或调用函数以获得副作用,但不要尝试打印其返回值 - value(摆脱while循环中的print语句。)

希望这会有所帮助