遍历嵌套的For语句

我应该看一下这个模型解决方案,以完成下一个课程的作业。该程序将返回介于32和126之间(包括32和126)的ASCII值。在“ for语句”之前,我一直在理解它。有人可以帮我完成它吗?我知道这与创建四个列有关,但是我认为在继续之前了解它的每一点将是有益的。


非常感谢。


START = 32


END = 126



def GiveAscii(start=START, end=END, width=4):


    """Returns an ascii chart as a string. Readable."""


    entries = end - start +1

    entries_per_column = entries/width

    if entries % width:

        entries_per_column += 1

    ret = []

    for row in range(entries_per_column):

        for column in range(width):

            entry = entries_per_column * column + row + start

            if entry > end:

                break

            ret += ["%3d = %-6s" % (entry, chr(entry))]

        ret += ['\n']

    return ''.join(ret)


def main():

    print GiveAscii()


if __name__ == '__main__':

    main()


GCT1015
浏览 149回答 2
2回答

子衿沉夜

第一个枚举的范围是从零到的值,范围entries_per_column是一个名为row对于每一行,都有一个从零到的值的枚举width,其名称为column因此,这将创建一个二维矩阵-应该很容易消化。对于每一个column在一个row,在该空间中的值分配给变量entry。如果entry不超过矩阵的最大值,则将其ret作为列表放入返回列表中。在此之后ret指定换行符,以便可以可视地创建新行(在ret打印时)。因此,此程序将创建一个列表,ret其中包含值的二维矩阵-多个为rows的列表,每个列表都包含一些称为columns的单值列表,这些单值列表包含entries在其中。我希望这很清楚!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python