2017-07-31 62 views
0

这是一段python代码,我试图找出如何计算并存储在变量string_width中的值。这行代码是什么意思

string_width =len(" ".join(map(str,range(num,0,-1)))+" ".join(map(str,range(2,num+1)))) 

任何解释都会有帮助。

+2

尖叫的意大利面代码“请重写我!” –

+0

尝试打印出您不理解的部分,例如'print(“”.join(map(str,range(num,0,-1))))'。还有哪个python是这个?它不能同时为2和3. –

+2

如果将语句分解为两个连接'“”.join(..)'并打印每个连接,则可能会注意到该模式。第一个连接从'num'向下计数到0(零),第二个连接计数从2上升到num,然后调用len长度函数。 – davedwards

回答

0

实际得到输出的结果很大程度上取决于num等于什么,但要理解这个特定的代码行,您必须分解各个函数。

首先,内部有两个使用map函数使用字符串创建的可迭代地图。

第一个是从变量num倒数到0的所有数字,不包括在内。因此,如果num为4,则此地图中将包含4,3,2和1。

第二张地图从2开始计数至num + 1,非包含。所以如果num是4,那么在地图中它将是2,3和4。

接下来,这两个地图都用空格连接,所以每个地图都会变成一个在每个值之间都有空格的字符串。前面例子的第一张地图是"4 3 2 1",第二张地图是"2 3 4"。 +然后将这两个字符串连接在一起,以便它们成为单个字符串,这将来自我们的示例"4 3 2 12 3 4"

最后,len找到这个组合字符串的长度,并将该值保存到string_width,在我们的示例中该值为12,因为那是多少个字符(它计数空格)。