Python 如何修复此函数以使其不显示;无”;在底部?

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(

现在这个函数返回我想要的结果,但是在最底层有一个恼人的“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(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)