2016-05-22 2 views
0

я застрял с небольшой проблемой, Я хочу напечатать на стандартный вывод результатов с пробелами между нимиПечать в stdout с пробелом между результатом?

x y 

мой код печатает его (x, y), потому что я только возвращать их с запятой между ними

return x, y 

Что нужно добавить перед печатью x и y?

+0

Какой язык вы используете? Как бы то ни было, вы должны добавить соответствующий тег. –

+0

Извините, его питон – Joe

ответ

2

Ваша функция возвращает кортеж. То, что вы видите, является стандартным представлением кортежей.

Существуют различные решения;

1) Назначение двух переменных и печати:

x, y = function() 
print x, y # in Python 3 use print(x, y) 

2) В Python 3 вы можете распаковать:

res = function() 
print(*res) 

3) Вы можете использовать format:

res = function() 
print '{} {}'.format(res[0], res[1]) 
# In python 3 also with unpacking; print('{} {}'.format(*res)) 

Обратите внимание, что использование format, вероятно, дает вам максимальную гибкость как выглядит результат. Например, если значения представляют собой числа с плавающей запятой. Примеры в Python 3:

>>> res = (12/7, 7/3) 
>>> res 
(1.7142857142857142, 2.3333333333333335) 
>>> print(*res) 
1.7142857142857142 2.3333333333333335 
>>> print('{:.3f} {:.3f}'.format(*res)) 
1.714 2.333 
1

Вы только напечатали питона tuple:

>>> print((x, y)) 
(x, y) 

unpack Вы можете получить желаемый результат:

>>> print(*(x, y)) 
x y 

Для использования в Python 2.x, сделать from __future__ import print_function

Смежные вопросы