我猜想一個語言問題,但代碼 print "%d" % (5)
中調用了(5)是什麼?'print'%d「%(5)」的結局叫做什麼?
我叫%d
整數表示,但我不知道怎樣稱呼它實際上代表的東西,不管它是一個數字,一個變量,計算或瓦特/ E的。 它被稱爲爭論?
我不知道,因爲我正在做一個任務分配時,我計算的東西在括號,而不是做一個新的變量註釋,計算變量並插入該變量像x = 5;print "%d" % (x)
我猜想一個語言問題,但代碼 print "%d" % (5)
中調用了(5)是什麼?'print'%d「%(5)」的結局叫做什麼?
我叫%d
整數表示,但我不知道怎樣稱呼它實際上代表的東西,不管它是一個數字,一個變量,計算或瓦特/ E的。 它被稱爲爭論?
我不知道,因爲我正在做一個任務分配時,我計算的東西在括號,而不是做一個新的變量註釋,計算變量並插入該變量像x = 5;print "%d" % (x)
The documentation稱它爲「值「:
如果格式需要一個參數,值可以是單個非元組對象。
%d
被稱爲「轉換規格」。它們中的每一個都從「值」中的元素獲取一個或多個「參數」。例如,
%d
需要一個參數,%*d
需要兩個參數。所有參數構成「價值」。
這將意味着5
是%d
的參數,而(5)
是整個格式的「值」。
*「所以」參數「是指'%d'」* - 否,這是「轉換規範」,值(或值的元組)是參數。 – jonrsharpe 2014-09-04 13:06:20
@jonrsharpe:謝謝,修正。 – 2014-09-04 13:13:11
(5)
實際上是一個非常令人誤解的事情:它看起來像是一個元組,但它僅僅是一個整數,它周圍有一個parens!
要麼寫
print "%d" % 5
或寫一個單元素元組的正確途徑,
print "%d" % (5,)
或者當你擁有它確實的情況下,事情(比如當您將有問題以後而不是5
,你有一個變量,可能本身也可能不是一個元組)。
例如,
a = (2, 3)
print "%s" % a
引發類型錯誤,因爲a
有兩個元素,並只有一個%
。
print "%s" % (a)
也引發類型錯誤,因爲它是完全一樣的東西,和
print "%s" % (a,)
實際打印預期"(2, 3)"
。
[文檔](https://docs.python.org/2/library/stdtypes.html#string-formatting-operations)將其描述爲*「values」*或*「argument」*,並且'%d' a *「轉換規範」*。 – jonrsharpe 2014-09-04 12:59:37