Новая строка в отдельной заявке на печать [дубликат]

Вам может потребоваться передать параметр конструктору:

https://gcc.gnu.org/onlinedocs/gcc-4.9.1/libstdc++/api/a00899.html

6
задан HostileFork 28 September 2012 в 01:53
поделиться

5 ответов

 '%10s'    %'*'*x

анализируется как

('%10s' % '*') * x

, поскольку операторы % и * имеют одинаковый приоритет и группу слева направо [ docs ]. Вам нужно добавить круглые скобки, например:

x = 1
while x < 10:
    print '%10s' % ('*' * x)
    x = x + 1

Если вы хотите провести цикл по диапазону чисел, считается более идиоматичным использование цикла for, чем цикл while. Например:

for x in range(1, 10):
    print '%10s' % ('*' * x)

for x in range(0, 10) эквивалентно for(int x = 0; x < 10; x++) в Java или C.

13
ответ дан Jeremy 18 August 2018 в 09:24
поделиться
  • 1
    Superb! Walla! Какой хороший ответ! Большое вам спасибо - отлично работает! - это первый ответ, который я вижу, поэтому я комментирую, чтобы поблагодарить вас, но, конечно, большое спасибо всем остальным! Конечно, моя глубокая оценка! – Azz 5 September 2011 в 16:01
  • 2
    Я думаю, вы имеете в виду «Voila!», «French» для «Там это!», «Presto!» Или «Woot, doggie!». – PaulMcG 15 December 2011 в 06:27
  • 3
print '\n'.join(' ' * (10 - i) + '*' * i for i in range(10))
1
ответ дан develerx 18 August 2018 в 09:24
поделиться

Это из-за приоритета оператора, используйте этот:

x=1
while x<10:
 print '%10s' % ('*'*x)
 x=x+1
2
ответ дан Karoly Horvath 18 August 2018 в 09:24
поделиться

Чтобы быть точным, поскольку ваше изображение заканчивается на 10 звездочек, вам нужно.

for i in range(1, 11):
    print "%10s"%('*' *i)
1
ответ дан MatthieuW 18 August 2018 в 09:24
поделиться
Строковый объект

имеет методы rjust и ljust для этой вещи.

>>> n = 10
>>> for i in xrange(1,n+1):
...   print (i*'*').rjust(n)
... 
         *
        **
       ***
      ****
     *****
    ******
   *******
  ********
 *********
**********

или, альтернативно:

>>> for i in reversed(xrange(n)):
...   print (i*' ').ljust(n, '*')
... 
         *
        **
       ***
      ****
     *****
    ******
   *******
  ********
 *********
**********

В моем втором примере используется символ пробела в качестве печатаемого символа и * как символ заполнения.

Аргумент ljust или rjust - это ширина терминала. Я часто использую их для разделения разделов с заголовками, когда у вас есть отладочная отладочная распечатка, например. print '--Spam!'.ljust(80, '-').

8
ответ дан wim 18 August 2018 в 09:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: