如何在Python中合并这两个函数

1 投票
4 回答
2788 浏览
提问于 2025-04-20 02:34

我现在在用Python写了一段代码,输出的结果正是我想要的。(如果你知道更好的方法,我很乐意听听)。我想知道怎么把我的两个函数 triangle 和 triangle2 合并成一个主函数。(我的输出是一个横着的金字塔)。

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

如果你总是想按照底部指定的顺序同时运行这两个程序,我会这样做:

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)
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)

你可以直接在第一个函数里调用另一个函数。

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 次 '*' 就是一个空字符串)

示例:

>>> def sideways_pyramid(n): 
...    for x in range(1, n):
...         print ('*' * x)
...    for x in range(n, 0, -1):
...         print ('*' * x)
... 
>>> sideways_pyramid(5)
*
**
***
****
*****
****
***
**
*
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)

撰写回答