2016-09-29 2 views
-5

Во втором цикле while звездочка (*) отображается только один раз для каждого цикла.Неверный шаблон отображается

import sys 

n = 0 
a = 0 

while (n < 6): 
    n = n + 1 
    while(a < n): 
     sys.stdout.write('*') 
     a = a +1 
    print '' 

Pattern отображаемая:

* 
* 
* 
* 
* 
* 
+5

В чем проблема? – sunkuet02

+7

Какой шаблон вы ожидали? Наиболее вероятная проблема заключается в том, что вы никогда не возвращаете «a» обратно к нулю в начале цикла. – JJJ

+2

Это было бы намного проще с двумя вложенными циклами. –

ответ

0

Предполагая, что вы хотите, чтобы напечатать 6 моделей 6 звезд с линией между ними, это то, что вы хотите сделать:

import sys 

n = 0 
a = 0 

while (n < 6): 
    n = n + 1 
    a=0 
    while(a < n): 
     sys.stdout.write('*',end="") 
     a = a +1 
    print '' 
0

Вот возможное решение для вашей версии:

import sys 

n = 0 
a = 0 

while (n < 6): 
    n = n + 1 
    a = 0 
    while(a < n): 
     print('*', end="") 
     a = a + 1 
    print('') 

Если вы хотите получить более короткую версию, это возможно:

print('\n'.join(['*'*i for i in range(1,7)])) 
Смежные вопросы