2012-07-04 80 views
0

程序应该从用户处获得两个数字。第一个数字是三角形的数量。第二个数字是每个三角形的行数。根据用户输入制作形状

它基于关闭我们只是做了一个方形的问题是

numRows = input('Please enter the number of rows: ') 
numRows = eval(numRows) 
numAst = 1 
for i in range(numRows): 
    print(numAst*'*') 
    numAst += 1 

我不能为我的生活弄清楚如何得到它,使三角形虽然。我知道我需要某种外部循环来重新启动内部循环,但我不知道该怎么做?

+0

在我看来,像你的“方形问题”代码生成一个三角形。只要把它放在由他们想要的数量控制的外部循环中。嵌套循环只比包含它们的缩进一级更多。 – martineau

回答

1

首先,使用eval将不安全的用户输入转换为整数是有点危险的,所以我将其改为int

其次,你只需要做一个嵌套循环,用三角形数值来重复内部循环X次。当然,你需要改变你的内部循环功能来打印三角形。

试试这个,看看你是否可以从上面的解释明白:

numTris = input('Please enter the number of triangles: ') 
numTris = int(numTris) 
numRows = input('Please enter the number of rows: ') 
numRows = int(numRows) 
for _ in range(numTris): 
    for numAst in range(1, numRows + 1): 
     print(numAst * '*') 
    print('') 

注:变量_通常由约定,你不打算使用的值。在这种情况下,我们只需要创建循环,但不要在循环中使用它。