我试图创建一个基于用户输入的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])