我正在努力寻找一种有效的方法将这些for循环转换为一组工作的while循环。有什么建议么?我正在使用 2.7
def printTTriangle(height):
for row in range(1,height+1):
# print row T's
for col in range(1,row+1):
print 'T',
print
感谢大家的帮助!
我正在努力寻找一种有效的方法将这些for循环转换为一组工作的while循环。有什么建议么?我正在使用 2.7
def printTTriangle(height):
for row in range(1,height+1):
# print row T's
for col in range(1,row+1):
print 'T',
print
感谢大家的帮助!
就像这样:
def printTTriangle(height):
row = 1
while row < height+1:
col = 1
while col < row+1:
print 'T',
col += 1
print
row += 1
这就是我的做法。例如,让我们转换这一行:
for row in range(1, height+1):
第一步:创建一个迭代变量,并将其初始化为范围的起始值:
row = 1
第二步:将范围的结束值转换为循环条件,并注意索引:
while row < height+1:
最后,不要忘记推进循环递增迭代变量:
row += 1
把它们放在一起:
row = 1
while row < height+1:
row += 1
您可以简化它并只使用一个 while 循环:
def printTTriangle(height):
row = 1
while row <= height:
print 'T '*row
row += 1
如果你不沉迷于 while 循环,这里有一个单行:
def printTTriangle(height):
print "\n".join(['T '*row for row in range(1, height+1)])
您可以使用字符串乘法运算符 ( ) 摆脱内部循环*
:
def printTTriangle(height):
j = 1
while j <= height:
print 'T' * j + '\n '
j += 1