如何解决此功能,使其在底部不显示“ None”?

时间:2018-06-30 04:58:32

标签: python nonetype

因此,此函数现在返回我想要的结果,但是在最底部有一个令人讨厌的“无”。我知道这是因为没有什么可返回的,这就是为什么打印“ None”的原因,但是如何更改我的代码以显示没有“ None”的结果?

谢谢。另外,“ print(steps(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.

5 个答案:

答案 0 :(得分:1)

默认情况下,函数返回None;通过调用print(function),您将打印返回的值,在您的情况下为None
由于打印是在您的函数中进行的,因此您可以不进行打印就调用steps

编辑:

如果必须打印,则可以返回空字符串,然后:

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))

输出:

111

    222

        333

            444

                555

                    666
''

答案 1 :(得分:1)

您应该删除打印文件

def steps(i):
    t = 0
    for i in range(1, i + 1):
        print(("\t" * t) + (str(i) * 3) + "\n")
        t += 1



steps(6)

答案 2 :(得分:0)

像这样更新您的代码:

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并进行打印。 输出:

111

    222

        333

            444

                555

                    666

答案 3 :(得分:0)

考虑此代码

2018-01-01 01:02:03

简单吧!结果为“ 10”。那么,这段代码的内容是什么? str(10)将一个对象作为输入,并返回一个字符串作为输出。因此,打印操作员将字符串作为输入,并将其打印在STD输出文件中。 那么,无返回类型函数呢? (即Void返回函数),而这正是代码中发生的情况。 正确的代码是

WHERE date = '2018-05-01'

print str(10)

答案 4 :(得分:0)

def steps(i):
        t = 0
        for i in range(1, i + 1):
             print(("\t" * t) + (str(i) * 3) + "\n")
             t += 1
        return ""
steps(6)

请从steps(6)移除打印内容,然后您将摆脱None