-5

我制作了一个程序,其中包含一个整数的单行输入,打印一个该大小的星号三角形。但是我的程序不是这样工作的。所以你能看看我的代码,请确定我的错误。谢谢

line = int(raw_input("Number of lines: "))
a = line * '*'
print a

这是我想要产生的输出:

Number of lines: 5
*
**
***
****
*****
4

2 回答 2

1

由于这是自我教育而不是实际的课堂作业,因此最好用代码和详细说明您做错了什么来解释。

你大部分时间都在那里,因为你有输入和输出一定数量星号的方法。您的问题是您只打印了具有最大星号数量的一行

您需要从 1 循环到该数字,每次输出相同类型且长度增加的行,例如:

line = int (raw_input ("Number of lines: "))
for i in range (1, line + 1):
    print i * '*'

使用此代码(输入 5),您基本上循环i包含按顺序包含的变量{1, 2, 3, 4, 5}range在低端包含,在高端排除,因此是line + 1)。

在该循环中,您输出该数量的星号,为您提供三角形:

pax> python testprog.py
Number of lines: 5
*
**
***
****
*****
于 2012-09-02T05:45:49.583 回答
0

既然你这样做是为了学习 Python,我将添加以下内容:

循环很容易弄清楚,但大多数人忘记的是确保您从用户那里得到正确的输入!

您向用户询问了一个号码。对?
如果用户通过按下后一个“a”来回复会发生什么?

于 2012-09-02T05:55:33.630 回答