嵌套循环代码在Python中创建直角三角形

时间:2013-11-05 08:42:36

标签: python loops nested geometry

教授给了我们一个执行正方形的简单代码,我们需要添加/更改代码以输出正确的三角形,如下所示。它只是循环代码中的一个简单循环,但我无法在任何地方找到提示或帮助用Python创建形状而代码看起来非常混乱/困难。我需要一个简单的解释做什么以及为什么我需要做出这些改变。

(在Python中创建直角三角形的嵌套循环代码)

执行正方形的代码:

绘制正方形

size = input('Please enter the size: ')
chr  = raw_input('Please enter the drawing character: ')

row = 1
while row <= size:
    # Output a single row
    col = 1
    while col <= size:
        # Output a single character, the comma suppresses the newline output
        print chr, 
        col = col + 1

    # Output a newline to end the row
    print '' 

    row = row + 1
print ''

我需要输出的形状.....

x 
x x 
x x x 
x x x x 
x x x x x 
x x x x x x 
x x x x x x x

再一次,只是一个简单的代码解释,它是对Python课程的介绍。

8 个答案:

答案 0 :(得分:2)

只需将while col <= size:更改为while col <= row:

即可

这将打印rowX

如果row1,则输出为:X

如果row2,则输出为:X X

如果row3,则输出为:X X X

如果row4,则输出为:X X X X

答案 1 :(得分:1)

以下是一些代码:

size = int(raw_input("Enter the size: ")) #Instead of input, 
#convert it to integer!
char = raw_input("Enter the character to draw: ")
for i in range(1, size+1):
    print char*i #on the first iteration, prints 1 'x'
    #on the second iteration, prints 2 'x', and so on

结果:

>>> char = raw_input("Enter the character to draw: ")
Enter the character to draw: x
>>> size = int(raw_input("Enter the size: "))
Enter the size: 10
>>> for i in range(1, size+1):
        print char*i


x
xx
xxx
xxxx
xxxxx
xxxxxx
xxxxxxx
xxxxxxxx
xxxxxxxxx
xxxxxxxxxx

另外,避免在Python 2中使用input,因为它会评估作为代码传递的字符串,这是不安全的,也是一种不好的做法。

希望这有帮助!

答案 2 :(得分:0)

代码:

def triangle(i, t=0):
    if i == 0:
        return 0
    else:
        print ' ' * ( t + 1 ) + '*' * ( i * 2 - 1 )
        return triangle( i - 1, t + 1 )
triangle(5)

输出:

* * * * * * * * *
   * * * * * * *
     * * * * *
       * * * 
         *

答案 3 :(得分:0)

values = [0,1,2,3]
for j in values:
 for k in range (j):
  print "*",;
 print "*";
  1. 定义数组
  2. 首先从循环开始逐个初始化变量j
  3. 中的数组值
  4. 启动第二个(嵌套)for循环以在变量k
  5. 中初始化变量j的ranje
  6. 结束第二个(嵌套)for循环打印*作为par的初始化范围j分配给k,即如果范围是1则打印一个*
  7. 首先结束循环并打印* for no of initialized array

答案 4 :(得分:0)

for i in range(1,8):
    stars=""
    for star in range(1,i+1):
        stars+= " x"
    print(stars)

输出:

x
x x
x x x
x x x x
x x x x x
x x x x x x
x x x x x x x

答案 5 :(得分:-1)

 def pattStar():
     print 'Enter no. of rows of pattern'
     noOfRows=input()
     for i in range(1,noOfRows+1):
             for j in range(i):
                     print'*',
             print''

答案 6 :(得分:-1)

for x in range(10,0,-1):
  print x*"*"

输出:

**********
*********
********
*******
******
*****
****
***
**
*

答案 7 :(得分:-2)

你可以通过简单地使用它来获得它:

size = input('Please enter the size: ')
chr  = raw_input('Please enter the drawing character: ')
i=0
str =''
while i< size:
        str = str +' '+ chr
        print str
        i=i+1