使用Python创建一个直角三角形

时间:2014-09-18 19:39:02

标签: python python-3.x

为什么我的程序没有按照应有的方式执行,我感到困惑和沮丧。我试图在python ver 3上使用星号创建一个直角三角形。我正在使用教科书中的确切代码,它是一条直线。请赐教。

示例

size = 7

for row in range (size):
    for col in range (row + 1):
        print('*', end='')
        print()

结果

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

全部在一栏

4 个答案:

答案 0 :(得分:7)

在Python中,缩进很重要。最终print应与第二个for对齐。

size = 7

for row in range (size):
    for col in range (row + 1):
        print('*', end='')
    print()

结果:

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

print函数实际上意味着“移动到新行”。如果两个print语句都出现在相同的缩进级别,那么每次打印星号时,都会移到下一行。如果第二个print 外部内部for循环,则只会获得7个换行符。

答案 1 :(得分:1)

作为替代方案,您可以使用一个for循环!

>>> s=''
>>> for i in range(7):
...  s+='*'
...  print (s)
... 
*
**
***
****
*****
******
*******

答案 2 :(得分:1)

它可能不是最易读的解决方案,但如果你喜欢oneliners,这是一种方法:

print "\n".join(["".join(["*" for col in range(row+1)]) for row in range(7)])

修改

只是为了缩短它:

print "\n".join(["*" * (row+1) for row in range(7)])

答案 3 :(得分:0)

str1 = 'x '
str2 = ' ' #give space within the inverted comma
for i in range (1,6):
    print((str2 * (5 - i)) + (str1 * i))
    #print((str1 * i)+(str2 * (5 - i)))

其他程序:

str1 = 'x '
str2 = '' #give empty string(remove sace from the single inverted comma)
for i in range (1,6):
    print((str2 * (5 - i)) + (str1 * i))
    #print((str1 * i)+(str2 * (5 - i)))