import sys
def print_triangle(n):
for i in range(1, n+1):
for j in range(n-i):
sys.stdout.write(' ')
for k in range(i):
sys.stdout.write('*')
sys.stdout.write('\n')
def print_triangle2(n):
for i in range(1, n+1):
sys.stdout.write(' '*(n-i))
sys.stdout.write('*'*i)
sys.stdout.write('\n')
你需要更仔细地考虑算法应该做什么。对于}?在
1
到n
范围内的每个整数,您希望打印n-1
空格,后跟n
星号,那么硬编码的5
在那里做什么?为什么你没有空间?既然您知道要循环多少次,为什么要使用while
而不是{实现这一点的最有效方法是使用内置的字符串方法^{} ,它用空格填充所提供的字符串:
由于这似乎是一个基本的编程练习,我不认为我们应该过于依赖内置函数。下面的函数可以理解这个概念。在
调用
^{pr2}$print_triangle(3)
将打印这个函数稍微短了一点,但它的作用是一样的。在
希望有帮助。在
编辑: 感谢Jon,我已经习惯了python3print语句,以至于忘记了
end=''
部分不能工作,除非您使用python3。这在Python 2.7中应该可以工作:相关问题 更多 >
编程相关推荐