解開我知道這是不是在一個行中指定多個值的方式,但我只是想了解一下4號線在這裏做什麼:沒有足夠的值,以在鏈分配
a = input("blah blah")
b = input("blah blah blah")
c = input("blaaah")
A=a,B=b,C=c
print(A,B,C)
如果a
,b
,c
分別爲int
或float
類型,則會顯示"int/float object is not iterable"
錯誤。
如果a
,b
,c
是字符串,說a="ab"
,b="cd"
,c="ef"
,則打印顯示:
ef f f
如果字符串的長度!= 2
的,它顯示了一個"not enough/too many values to unpack"
錯誤。
有人可以解釋發生了什麼?
這是不正確的,'了'和'B'沒有作用那裏。如果你試用'A = 4,B =「aa」,你將得到'SyntaxError:不能賦值給文字',如果你試圖獲得'A'的值,你將得到'NameError:name'A'沒有定義' – nutmeg64
@ nutmeg64我們再來看看這個。會發生什麼是'A ='aa''嘗試,然後嘗試執行'4,B ='aa''。整件事失敗了,因爲由於這是在一個步驟中完成的,所以'SyntaxError'阻止了整個賦值,'A'沒有賦值並且得到'NameError'。嘗試'a = 1; b = 3; A = a,b ='ef''並查看輸出。 –
這是正確的。因此,下面的代碼片段「實際上評估爲:」不正確。你暗示在那裏,賦值「A = c」發生在任何其他賦值之前。 – nutmeg64