我試圖創建一個基於用戶輸入的python程序來打印一定數量的星號。我的代碼是低於Python循環根據用戶輸入打印星號
num_stars = 3
num_printed = 0
while num_printed <= num_stars:
print('*')
輸出是一個無限循環。我想打印星號變量作爲星號。
我試圖創建一個基於用戶輸入的python程序來打印一定數量的星號。我的代碼是低於Python循環根據用戶輸入打印星號
num_stars = 3
num_printed = 0
while num_printed <= num_stars:
print('*')
輸出是一個無限循環。我想打印星號變量作爲星號。
您需要增加num_printed變量。
num_stars = 3
num_printed = 0
while num_printed < num_stars:
print('*')
num_printed += 1
另外請注意,我改變了<=
到<
:你想被檢查時num_printed
不再不到星星的總數,最後開始計數後會發生,您的計數器遞增。
爲什麼不能簡單地用
print num_stars * '*'
問題是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
如果你不想在這裏使用一個循環。也許做這樣的事情:
stars = int(raw_input('number of stars: '))
star_list= ['*' for i in range(stars)]
print ' '.join(['%s' % i for i in star_list])