重复结构 - 从Python开始

时间:2015-11-20 19:44:05

标签: python python-3.4

在Tony Gaddis的'开始使用Python第3版'中,练习的解决方案之一如下:

character = '#'
numRows = 7
space = ' '

for row in range(numRows):
    for col in range(row + 2):
        if col == 0 or col == row + 1:
            print(character, end='')
        else:
            print(space, end='')
    print()

我班上没有人理解这个解决方案是如何工作的,更具体地说,是第6-7行的数学。有人可以解释每一行如何产生输出:

##
# #
#  #
#   #
#    #
#     #
#      #

1 个答案:

答案 0 :(得分:2)

每行的空格比前一行多一个。首先遍历行

for row in range(numRows):

然后,每行迭代必须打印的列(#或空格)

for col in range(row + 2):

现在,如果列是第一个或最后一个打印分隔符(#)

if col == 0 or col == row + 1:
    print(character, end='')

这里的技巧是告诉print它不应该像在

中那样以换行符结束(默认行为)
print('one line')
print('another line')

如果不是第一列或最后一列只是打印一个空格

else:
    print(space)

最后一句只是写新线

print()