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

子衿沉夜
TA贡献1828条经验 获得超3个赞
第一个枚举的范围是从零到的值,范围entries_per_column
是一个名为row
对于每一行,都有一个从零到的值的枚举width
,其名称为column
因此,这将创建一个二维矩阵-应该很容易消化。
对于每一个column
在一个row
,在该空间中的值分配给变量entry
。如果entry
不超过矩阵的最大值,则将其ret
作为列表放入返回列表中。在此之后ret
指定换行符,以便可以可视地创建新行(在ret
打印时)。因此,此程序将创建一个列表,ret
其中包含值的二维矩阵-多个为row
s的列表,每个列表都包含一些称为column
s的单值列表,这些单值列表包含entries
在其中。
我希望这很清楚!
添加回答
举报
0/150
提交
取消