对于循环返回'无'

时间:2017-05-31 03:23:29

标签: python loops for-loop edx

所以我在edX上做了Python教程。我被困了,因为我无法摆脱" NONE"结果。有人能告诉我为什么会这样,以及如何避免它?感谢。

def steps(aNum):
    count = 1
    tabs = "    "
    for x in range(1, aNum + 1):
        strNum = str(x) * 4
        numTabs = tabs * count
        count += 1
        result = numTabs + strNum
        print(result)

结果:

    1111
        2222
None

我想要的结果是:

    1111
        2222

2 个答案:

答案 0 :(得分:1)

您必须使用

打印功能返回(不存在)
print(steps(2))

相反,只需使用

即可
steps(2)

此外,您对count变量有不必要的复杂性,因为您已经有x在循环中提供相同的值序列。这更简单。

def steps(aNum):
    tabs = "    "
    for x in range(1, aNum + 1):
        strNum = str(x) * 4
        numTabs = tabs * x
        result = numTabs + strNum
        print(result)

答案 1 :(得分:-1)

您获得的是无价值,因为您没有返回任何功能。如果不返回任何函数,则返回无值,因此在调用函数时将不会打印任何值。要避免使用return或yield语句,或者我推断您使用的函数为:

id

代替使用以下代码:

var = steps(aNum)  # this will assign None value to var but before assigning None value it has already print your desire values as result
print(var)  # when None is assigned to var it will be printed in output.

注意:上面的行steps(aNum) # just print statement within function 未分配,因此它只会在函数中打印语句。