Python 如何修复此函数以使其不显示;无”;在底部?
现在这个函数返回我想要的结果,但是在最底层有一个恼人的“None”。我理解这是因为没有返回的内容,这就是为什么会打印“None”,但是如果没有“None”,我如何更改代码以显示结果 谢谢。此外,“打印(步骤(6))”行是强制性的,因为它是练习的一部分Python 如何修复此函数以使其不显示;无”;在底部?,python,nonetype,Python,Nonetype,现在这个函数返回我想要的结果,但是在最底层有一个恼人的“None”。我理解这是因为没有返回的内容,这就是为什么会打印“None”,但是如果没有“None”,我如何更改代码以显示结果 谢谢。此外,“打印(步骤(6))”行是强制性的,因为它是练习的一部分 def steps(i): t = 0 for i in range(1, i + 1): print(("\t" * t) + (str(i) * 3) + "\n") t += 1 print(
def steps(i):
t = 0
for i in range(1, i + 1):
print(("\t" * t) + (str(i) * 3) + "\n")
t += 1
print(steps(6))
结果是
111
222
333
444
555
666
None #I want to get rid of this.
默认情况下,函数返回
None
;通过调用print(function)
,您正在打印返回值,在您的情况下,返回值是None
由于打印是在函数中进行的,因此可以调用
步骤
,而无需打印:
编辑:
如果打印是强制性的。。。也许您可以返回空字符串,然后:
def steps(i):
t = 0
for i in range(1, i + 1):
print(("\t" * t) + (str(i) * 3) + "\n")
t += 1
return ''
print(steps(6))
输出:
按如下方式更新代码:
def steps(i):
t = 0
for i in range(1, i + 1):
print(("\t" * t) + (str(i) * 3) + "\n")
t += 1
return "" #updated
print(steps(6)) #Now your print function will get the value "" (empty string), and will print it
如果函数未显式返回任何值,则返回默认返回值None
。您的print
函数正在获取此None
并打印它。
输出:
你应该删除打印
def steps(i):
t = 0
for i in range(1, i + 1):
print(("\t" * t) + (str(i) * 3) + "\n")
t += 1
steps(6)
def steps(i):
t = 0
for i in range(1, i + 1):
print(("\t" * t) + (str(i) * 3) + "\n")
t += 1
steps(6)
考虑一下这个代码
print str(10)
简单对!结果是“10”。那么这段代码里面是什么呢?
str(10)将对象作为输入,并返回字符串作为输出。所以print操作符将字符串作为输入,并将其打印到STD输出文件中。
那么无返回类型函数呢。(即Void返回函数),而这正是代码中发生的事情。
正确的代码是
def steps(i):
t = 0
for i in range(1, i + 1):
print(("\t" * t) + (str(i) * 3) + "\n")
t += 1
return ''
print(steps(6))
或
请从
步骤(6)
中删除打印,然后您将从打印(步骤(6))
中删除打印()
。由于您的steps()
方法不返回任何内容,并且在其主体中执行所有打印工作,因此无需使用print(步骤(6))
Hi-Reblochon,感谢您的照明响应。但是底部的打印是强制性的,我不能修改它。嗨,陶希都,谢谢你的灯光响应。但是底部打印是必需的,我不能修改它。然后您可以在代码末尾返回一个空值,如return”“
Why downvoting?我们使用num_steps=3测试了您的代码。我们期待着返回str“111 222 333”的步骤。但是,它返回了str“”。太奇怪了。我再次测试了它,它生成了预期的输出。
def steps(i):
t = 0
for i in range(1, i + 1):
print(("\t" * t) + (str(i) * 3) + "\n")
t += 1
return ''
print(steps(6))
def steps(i):
t = 0
for i in range(1, i + 1):
print(("\t" * t) + (str(i) * 3) + "\n")
t += 1
steps(6)
def steps(i):
t = 0
for i in range(1, i + 1):
print(("\t" * t) + (str(i) * 3) + "\n")
t += 1
return ""
steps(6)