从非返回函数打印Python

时间:2012-10-27 11:30:48

标签: python printing

问题1:

word = 'fast'

print '"',word,'" is nice'将输出设为" fast " is nice

如何获得输出"fast" is nice,即我希望在word之前和之后删除空格?

问题2:

def faultyPrint():
    print 'nice'

print 'Word is', faultyPrint()为我输出

Word is nice
None

我想删除Word is niceNone的输出。

我不想要

的输出
print 'Word is'
faultyPrint()

因为它给我输出

Word is
nice

如果不改变功能并保持相同的输出格式,我该怎么做?

5 个答案:

答案 0 :(得分:9)

以下是一种更具扩展性的方法。

第一部分:

word = "fast"
print('"{0}" is nice'.format(word))

(对于括号:如果只传递一个参数,它们没有区别,并且在大多数情况下免费提供python3兼容性)

有关此内容的详细信息,请参阅Python String Formatting SyntaxExamples here)。

第二部分:

在不修补功能的情况下解决此问题的唯一方法是在打印结束时不创建换行符:

print "Word is", 
faultyPrint()

如果你想保持Python3向上兼容,你必须这样做:

from __future__ import print_function  #put that at the head of your file
print("Word is ", end="")
faultyPrint()

(注意(非显而易见的)差异:在Python3中,你需要在字符串的末尾加一个空格)

一般情况下,返回要打印的值更合适,最好是最合适的数据类型(即不要",".join(foo)列表,返回列表并在最外层函数中进行连接)。这提供了可重用性以及逻辑和表示的分离。

答案 1 :(得分:3)

使用+而非,加入字符串

print '"' + word + '"'

关于你的第二个问题。该函数返回None。这就是印刷品。

答案 2 :(得分:2)

这可能就是你要找的东西:

print 'Word is',     #Notice the trailing comma. This will not print a newline char
faultyPrint()

答案 3 :(得分:2)

Q1:

如果使用逗号,则会在要打印的元素之间自动获得额外的空间。

>>> print "A","B","C"
A B C

如果使用加号,则不会获得额外的空格。

>>> print "A"+"B"+"C"
ABC

Q2:

我猜你要打印一些常量字符串,然后在同一行中打印一些函数。这可以通过以下几种方式完成:

第一种方式:这是我如何使用函数的返回值:

def faultyPrint():
    return 'nice'

>>> print 'Word is', faultyPrint()  # Prints 'Word is', and return value of function
Word is nice

注意:如果没有在Python中为函数指定返回值,则返回值将为None。这就是你的输出中没有None的原因。

第二种方式:如果你真的不想避免在你的函数中编写return语句。 (但是在这种情况下你的函数实际上也会返回None)

def faultyPrint():
    print 'nice'   # prints nice and newline

print 'Word is',   # Adding comma to end of print won't add newline
faultyPrint()      # Normal function call, prints nice and newline

答案 4 :(得分:0)

def faultyPrint():
    print 'nice'
    return ""