如何在Python中合并这两个函数
我现在在用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)