如何在Python中给代码块命名以便多次执行?

1 投票
6 回答
1438 浏览
提问于 2025-04-17 10:20

我有一些代码,基本上是5个打印语句,我想在脚本中多次调用它们。我在想,如果我把这些代码写一次,然后在需要的时候调用它,可能会节省一些空间,也让代码更容易维护。用函数来实现是可以的,但它执行完后会打印None,这让我觉得很烦。有没有什么建议?

这就是我想做的事情……

name = "Bob"
House = "HOME"

print "hello,"
print name
print house
print "is where you are"

这只是个例子,实际上要复杂得多,但我想把所有的打印语句放到一个命名的“桶”里,然后再调用这个桶。

而且其中一些代码不仅仅是打印语句,还有一些条件判断语句。

提前谢谢你们!

6 个回答

1

我觉得你可以用一个函数来实现这个功能(这也是最直接的方法),而且我通常不见到在包含打印语句的函数执行后会打印出None。在这种情况下,可能你不需要一个return语句:

def printblock(name, house):
    print "hello,"
    print name
    print house
    print "is where you are"

printblock("Bob", "HOME")
2

一个函数是这样工作的 -

一个函数并不会“打印 None”。如果一个函数没有明确的返回语句,它会隐式地返回“None”。当你在交互式命令行中调用这个函数时,返回的 None 的表示形式会被打印到控制台上。

如果你在一个正在运行的程序中调用一个函数,返回的值(也就是函数调用的结果)不会自动打印出来,就像在代码中间插入一行 2 + 2 也不会打印任何东西一样。

所以,对于你上面的代码,你可以这样做:

def printer(name, house):
    print "hello,"
    print name
    print house
    print "is where you are"

printer("Bob", "Home")

然后你可以根据需要多次调用“printer”。

8

如果它打印出 None,那可能是因为你在打印这个函数的结果,同时又让函数自己打印了一些内容。

比如:

def print_stuff():
    print "Hello, World"

print print_stuff()
> Hello, World
> None

# But print_stuff prints stuff, so you don't need to print it too:

print_stuff()
> Hello, World

撰写回答