For循环返回'None'
所以我在edX上做了关于Python的教程。我被卡住了,因为我无法摆脱“无”结果。有人能告诉我为什么会发生这种情况,以及如何避免它?谢谢。For循环返回'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
你越来越没有价值,因为你不是在函数返回任何东西。当你不返回任何函数时返回None值,所以当你调用你的函数时,None将被打印。要避免的是,你可以使用return或yield语句或我推断你正在使用你的函数为:
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
注:以上线路steps(aNum)
不分配所以它只会在函数内打印语句。
这只是输出'None',因为函数的计算结果为None。摆脱'print',只用'steps(aNum)'调用函数。 –
必须在打印函数返回(不存在)与
print(steps(2))
相反,只使用
steps(2)
而且,你有必要与统计变量的复杂性,因为你已经让x在循环中提供相同的值序列。这很简单。
def steps(aNum):
tabs = " "
for x in range(1, aNum + 1):
strNum = str(x) * 4
numTabs = tabs * x
result = numTabs + strNum
print(result)
好吧!谢谢!你是对的!我有一个误解 – lloydyu24
@ lloydyu24如果解决了,请不要忘记接受答案。 –
无其他地方它是你的代码,它不是你发布的内容。 – jordanm