I would like to produce this picture in python!
*
**
***
****
*****
******
*******
********
*********
**********
'%10s' %'*'*x
is being parsed as
('%10s' % '*') * x
because the %
and *
operators have the same precedence and group left-to-right[docs]. You need to add parentheses, like this:
x = 1
while x < 10:
print '%10s' % ('*' * x)
x = x + 1
If you want to loop through a range of numbers, it's considered more idiomatic to use a for
loop than a while loop. Like this:
for x in range(1, 10):
print '%10s' % ('*' * x)
for x in range(0, 10)
is equivalent to for(int x = 0; x < 10; x++)
in Java or C.