2016-09-25 67 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])