2014-11-14 5 views
0

В Python функция print автоматически принимает новую строку после операторов, если мы хотим напечатать весь оператор в одной строке, а что же следует использовать?Как избежать новой строки в функции печати?

Например:

>>> for number in range(1,6): 
...  for k in range (0,number): 
...    print ("*") 
... 

я получил следующий вывод:

* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 

В то время как мне это нужно один:

* 
** 
*** 
**** 
***** 

ответ

1

Используйте запятую после печати:

>>> for number in range(1,6): 
     ...  for k in range (0,number): 
     ...    print ("*"), 
     ...  print() 
+4

Похоже, что OP использует Python 3.x, в котором 'print' является функцией. Ваше решение предназначено для Python 2.x. – iCodez

+0

@iCodez, хорошая точка, спасибо – anhlc

6

Установите end parameter из print в "" и положи дополнительные print() только за пределами гостиницы эр петля:

for number in range(1,6): 
    for k in range (0,number): 
     print ("*", end="") 
    print() # This is needed to break up the lines. 

Ниже демонстрация:

>>> for number in range(1,6): 
...  for k in range (0,number): 
...   print ("*", end="") 
...  print() 
... 
* 
** 
*** 
**** 
***** 
>>> 
+0

Этот код может быть упрощено до 'печати (* ("*" * п для п в диапазоне (1,6)), сентябрь = "\ п")' – Thibaut

+0

Кроме того, 'print (" * ", end =" \ n ", если k == number - 1 else" ")' –

+0

@Thibaut, да, что работает для этого конкретного примера –

7

Попробуйте следующее в Python 2.x.x. Вы можете использовать print "*"*i, где i - число, которое печатает '*' для i количества раз.

print "*" * 3 

Выход

*** 

Все, что вам нужно сделать, это тщательно выбирать значение i.

for i in range(0,6): ## i increments through the range(0,6) for every iteration 
    print "*"*i  ## "*" is printed 'i' times 

Выход:

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