2016-09-25 102 views
-2

我試圖創建一個基於用戶輸入的python程序來打印一定數量的星號。我的代碼是低於Python循環根據用戶輸入打印星號

num_stars = 3 
num_printed = 0 

while num_printed <= num_stars: 
    print('*') 

輸出是一個無限循環。我想打印星號變量作爲星號。

回答

0

您需要增加num_printed變量。

num_stars = 3 
num_printed = 0 

while num_printed < num_stars: 
    print('*') 
    num_printed += 1 

另外請注意,我改變了<=<:你想被檢查時num_printed不再不到星星的總數,最後開始計數後會發生,您的計數器遞增。

1

爲什麼不能簡單地用

print num_stars * '*' 
2

問題是num_printed是沒有得到增加。

在while循環,增加num_printed += 1和更改條件num_printed < num_stars,否則你會被打印4星級:

num_stars = 3 
num_printed = 0 

while num_printed < num_stars: 
    print('*') 
    num_printed += 1 
0

如果你不想在這裏使用一個循環。也許做這樣的事情:

stars = int(raw_input('number of stars: ')) 

star_list= ['*' for i in range(stars)] 

print ' '.join(['%s' % i for i in star_list])