2015-02-05 130 views
0

所以,对于我的编程类的我应该写一个程序输出这样的:在Python 3.4.2中打印一个倒三角形?

oooooo 
ooooo 
oooo 
ooo 
oo 
o 

我已经能够让这个程序输出的三角正面朝上,但即使寻求帮助在线后,我一直无法找到解决方案来颠倒三角形。这里是我的代码:

def main(): 

base_size = 6 

for r in range (base_size): 
    for c in range (r + 1): 
     print('o', end = '') 
    print() 

main() 

,这是输出I得到:

o 
oo 
ooo 
oooo 
ooooo 
oooooo 

有人能帮助我吗?我是一个新手,所以这对我来说很艰难,即使这对你们来说可能很简单。

在此先感谢!

+2

作为一个技巧,你可以使用'range'的'step'参数向后退一个范围。 '范围(10,0,-1)'会给你'10,9,8,7,6,5,4,3,2,1' – 2015-02-05 21:12:42

+1

看看[反转](https:// docs .python.org/2/library/functions.html#reversed)函数。 – SethMMorton 2015-02-05 21:12:54

+2

提示:[范围](https://docs.python.org/3/library/functions.html#func-range)的'step'参数可以是负数。 – 2015-02-05 21:13:08

回答

3

你非常接近。您可以使用range功能,但使用步骤-1可以从n0

您还可以通过将字符乘以整数来制作字符串。

def triangle(n): 
    for i in range(n, 0, -1): 
     print('o' * i) 

测试

>>> triangle(6) 
oooooo 
ooooo 
oooo 
ooo 
oo 
o 
0

范围内具有负的步骤就可以了(到底,INI,步骤)步骤= -1,还可以通过使用列表消除一个for循环,并加入代替:

def trig(base): 
    for i in range(base, 0, -1): 
     l = ['o']*i 
     print(''.join(l)) 

编辑:@Cyber​​答案好多了,不知道你可以直接在字符串处使用“times”运算符。