0
這是一段python代碼,我試圖找出如何計算並存儲在變量string_width中的值。這行代碼是什麼意思
string_width =len(" ".join(map(str,range(num,0,-1)))+" ".join(map(str,range(2,num+1))))
任何解釋都會有幫助。
這是一段python代碼,我試圖找出如何計算並存儲在變量string_width中的值。這行代碼是什麼意思
string_width =len(" ".join(map(str,range(num,0,-1)))+" ".join(map(str,range(2,num+1))))
任何解釋都會有幫助。
實際得到輸出的結果很大程度上取決於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,因爲那是多少個字符(它計數空格)。
尖叫的意大利麪代碼「請重寫我!」 –
嘗試打印出您不理解的部分,例如'print(「」.join(map(str,range(num,0,-1))))'。還有哪個python是這個?它不能同時爲2和3. –
如果將語句分解爲兩個連接'「」.join(..)'並打印每個連接,則可能會注意到該模式。第一個連接從'num'向下計數到0(零),第二個連接計數從2上升到num,然後調用len長度函數。 – davedwards