3

问题一:

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

如何在不更改功能并保持相同输出格式的情况下做到这一点?

4

5 回答 5

9

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

对于第一部分:

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

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

有关这一点的更多详细信息,请参阅Python 字符串格式化语法此处的示例)。

对于第二部分:

在不修补函数的情况下解决此问题的唯一方法是不在打印末尾创建换行符:

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)列表,返回列表并在最外层的函数中进行连接)。这服务于逻辑和表示的可重用性和分离。

于 2012-10-27T11:41:13.167 回答
3

使用+而不是,加入字符串

print '"' + word + '"'

关于你的第二个问题。函数正在返回None。这就是正在打印的内容。

于 2012-10-27T11:33:14.140 回答
2

这可能是您正在寻找的:

print 'Word is',     #Notice the trailing comma. This will not print a newline char
faultyPrint()
于 2012-10-27T11:37:25.587 回答
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。这就是为什么您的输出中没有任何内容。

第二种方式:如果你真的不想避免在你的函数中写 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
于 2012-10-27T11:58:05.423 回答
0
def faultyPrint():
    print 'nice'
    return ""
于 2012-10-27T11:34:36.890 回答