如何在python中组合这两个函数

时间:2014-09-05 21:28:07

标签: python class for-loop

我目前在python中创建了这段代码。输出正是我想要的。 (如果你知道一个更好的方法,我很乐意听到)。我想知道如何将我的函数triangle和triangle2组合成一个main函数。 (我的输出是横向金字塔)。

def triangle(n): 
   for x in range(n):
        print ('*'*x)
        n = n - 1 

def triangle2(n): 
   for x2 in range(n):
        print ('*'*n)
        n = n - 1

height = int(input("Enter an odd number greater than 4: "))

triangle(height)
triangle2(height)

4 个答案:

答案 0 :(得分:1)

只需将两个循环放在一个函数中,但不要改变n直到第二个循环(第一个循环不使用它):

def sideways_pyramid(n): 
   for x in range(n):
        print('*' * x)

   for x in range(n):
        print('*' * n)
        n = n - 1

您可以通过使用n倒计时来完全避免更改range()

def sideways_pyramid(n): 
   for x in range(1, n):
        print('*' * x)

   for x in range(n, 0, -1):
        print('*' * x)

第二个循环倒计时,从n开始到1结束。我也从1开始第一个循环,不打印空的第一行(0次{{1是一个空字符串)

演示:

'*'

答案 1 :(得分:0)

def triangle(n):
   for x in range(n):
        print ('*'*x)
   for x in range(n):
        print ('*'*n)
        n -= 1

height = int(input("Enter an odd number greater than 4: "))

triangle(height)

答案 2 :(得分:0)

使其尽可能接近原始代码:

def triangle2(n): 
       for x2 in range(n):
            print ('*'*n)
            n = n - 1    

def triangle(n): 
       for x in range(n):
            print ('*'*x)
       triangle2(n)  

height = int(input("Enter an odd number greater than 4: "))

triangle(height)

您可以从第一个功能中调用其他功能。

答案 3 :(得分:0)

如果你总是想按照底部指定的顺序运行它们,我会做这样的事情:

def triangle(n): 
    for x in [y for y in range(n)] + [z for z in range(n, 0, -1)]:
        print("*"*x)


height = int(input("Enter an odd number greater than 4: "))

triangle(height)