我制作了一个程序,其中包含一个整数的单行输入,打印一个该大小的星号三角形。但是我的程序不是这样工作的。所以你能看看我的代码,请确定我的错误。谢谢
line = int(raw_input("Number of lines: "))
a = line * '*'
print a
这是我想要产生的输出:
Number of lines: 5
*
**
***
****
*****
我制作了一个程序,其中包含一个整数的单行输入,打印一个该大小的星号三角形。但是我的程序不是这样工作的。所以你能看看我的代码,请确定我的错误。谢谢
line = int(raw_input("Number of lines: "))
a = line * '*'
print a
这是我想要产生的输出:
Number of lines: 5
*
**
***
****
*****
由于这是自我教育而不是实际的课堂作业,因此最好用代码和详细说明您做错了什么来解释。
你大部分时间都在那里,因为你有输入和输出一定数量星号的方法。您的问题是您只打印了具有最大星号数量的一行。
您需要从 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
*
**
***
****
*****
既然你这样做是为了学习 Python,我将添加以下内容:
循环很容易弄清楚,但大多数人忘记的是确保您从用户那里得到正确的输入!
您向用户询问了一个号码。对?
如果用户通过按下后一个“a”来回复会发生什么?