2016-09-29 56 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 '' 

模式是:

* 
* 
* 
* 
* 
* 
+5

你的問題是什麼? – sunkuet02

+7

你期待什麼模式?最可能的問題是,在循環開始時,您絕不會將'a'重置爲零。 – JJJ

+2

使用兩個嵌套for循環會更容易。 –

回答

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)]))