我试图在Python 2.7(或3.4)中的同一行上打印两个输出语句。打印报表不会一个接一个地打印a / print b。我的程序需要329(比方说)并以单词形式返回该值--329。因此,它将确定300部分然后将其打印出29部分并打印出来。
if (main == hundreds[index]):
print hundreds_words[index]
for location in range (0, 10):
if (difference == twenties[location]):
print twenties_words[location]
我想打印二十九个与三百个相同的行。我想我可以试着找到一个解决方案,但我想知道Python是否有一个程序来做到这一点。
答案 0 :(得分:2)
是的,确实如此。您只需要告诉print
不要在第一个之后添加新行。在python2中,您可以通过添加尾随逗号来完成此操作:print mystring,
。在python3中,print
是一个具有end
关键字参数的函数:print(mystring, end="")
答案 1 :(得分:1)
简单的方法是重写数字到单词的功能,让它返回一个字符串而不是打印它。
更复杂的方法是重定向stdout
以将print
输出捕获为字符串。
编辑:看起来我让它变得比必要的更复杂;你可以试试
output_words = []
if (main == hundreds[index]):
output_words.append(hundreds_words[index])
for location in range (0, 10):
if (difference == twenties[location]):
output_words.append(twenties_words[location])
return " ".join(output_words)
答案 2 :(得分:0)
在python 2中,您可以使用print
结束,
语句,以表示不会在换行符中终止,例如:
print hundreds_words[index],
在python 3(或带有from __future__ import print_function
的py2)中,您明确需要定义end
,例如:
print(hundreds_words[index], end=' ')
但理想情况下,您只需在list
和join()
结尾收集所有结果......
result = []
if (main == hundreds[index]):
result.append(hundreds_words[index])
for location in range (0, 10):
if (difference == twenties[location]):
result.append(twenties_words[location])
print(' '.join(result))
答案 3 :(得分:0)
始终将功能设计为返回值,而不是打印它们(它更像是Pythonic!)。因此,您应该以这种方式修改代码:
# FOR PYTHON 2.x
if (main == hundreds[index]):
print hundreds_words[index], # Note the comma
for location in range (0, 10):
if (difference == twenties[location]):
print twenties_words[location]
# FOR PYTHON 3.x
if (main == hundreds[index]):
print(hundreds_words[index], end=" ") # end=" " will override the default '\n' and leave a space after the string
for location in range (0, 10):
if (difference == twenties[location]):
print(twenties_words[location])
还有第三种选择,更具可扩展性:包装列表中的所有数据,然后打印所有数据。
printable = []
if (main == hundreds[index]):
printable += hundreds_words[index]
for location in range (0, 10):
if (difference == twenties[location]):
printable += twenties_words[location]
print(" ".join(printable))