这是我绘制直角三角形的代码
def printTriangle(width):
j = 0
for i in range(0,width):
for j in range(j,i):
print("*", end=" ") # single line
#j=j+1
#i= i + 1
print("* ")
问题是,当宽度超过3时,它不会继续模式。这是我得到的输出
*
* *
* * *
* * *
* * *
答案 0 :(得分:2)
没有必要在循环中有一个循环,在python中你可以乘以字符串
def printTriangle(width):
for i in range(0,width):
print("* " * i)
答案 1 :(得分:0)
您在问题中的格式看起来有点奇怪,但为什么要在j
中重新启动for j in range(j, i)
?也就是说,你不应该从0开始 - >我?
def printTriangle(width):
for i in range(0,width):
for j in range(0,i):
print("*", end=" ") # single line
print("* ")
打印printTriangle(5)
*
* *
* * *
* * * *
* * * * *
答案 2 :(得分:0)
使用range()
是一个好主意,因此您可以删除所有初始化。我猜你只需要一个for循环,因为只有三角形内的空间因每一行而异:
def printTriangle(width):
# Top section is always a point
print('*')
# Middle section has two stars and varying space in between
for i in range(width - 2):
print('*' + ' ' * i + '*')
# Base section is always a row of `width` stars
print('*' * width)
你可能希望避免width
小于2,否则这会给你一个三角形。