我将如何编写一个产生这样的三角形的函数:
x
xx
xxx
xxxx
xxxxx
假设函数是def triangle(n)
,底行将有n
x 的数量
我所知道的就是制作一个盒子:
n = 5
for k in range(n):
for j in range(n):
print('x', end='')
print()
老兄这超级简单:
def triangle(n):
for i in range(1, n +1):
print ' ' * (n - i) + 'x' * i
甚至:
def triangle(n):
for i in range(1, n +1):
print ('x' * i).rjust(n, ' ')
输出triangle(5)
:
X xx xxx xxxx xxxxx
不要只是复制此代码而不理解它,尝试并了解它是如何工作的。通常,练习学习编程语言的好方法是尝试不同的问题并看看如何解决它。我推荐这个网站,因为我刚开始编程时经常使用它。
而且,如果你不知道怎么做,不要只发布你的作业或类似的东西,只有当你被卡住时。首先尝试想很多你认为可以解决问题的方法,如果你不知道如何完成某项特定任务,只需查找并从中学习。
这是您可以对程序进行的小改动
n = 5
for k in range(n):
for j in range(n):
print('x' if j+k >= n-1 else ' ', end='')
print()
不过,这不是一个很好的方法。你应该考虑使用这样的东西一次打印一个整体
n = 5
for k in range(n):
i = ???
j = ???
print(' '*i+'x'*j)
你只需要锻炼i
和j
hight = 5
for star in range(hight):
for num in range(hight):
print('*' if num+star >= hight-1 else ' ', end='')
print()
回答:
def triangle(i, t=0):
if i == 0:
return 0
else:
print ' ' * ( t + 1 ) + '*' * ( i * 2 - 1 )
return triangle( i - 1, t + 1 )
triangle(5)
输出:
* * * * * * * * *
* * * * * * *
* * * * *
* * *
*
def triangle(n):
x = ('')
for i in range(n, 0, -1):
x += '*'
print(' ' * (i + 1) + x)