2014-09-04 61 views
0

我猜想一個語言問題,但代碼 print "%d" % (5)中調用了(5)是什麼?'print'%d「%(5)」的結局叫做什麼?

我叫%d整數表示,但我不知道怎樣稱呼它實際上代表的東西,不管它是一個數字,一個變量,計算或瓦特/ E的。 它被稱爲爭論?

我不知道,因爲我正在做一個任務分配時,我計算的東西在括號,而不是做一個新的變量註釋,計算變量並插入該變量像x = 5;print "%d" % (x)

+3

[文檔](https://docs.python.org/2/library/stdtypes.html#string-formatting-operations)將其描述爲*「values」*或*「argument」*,並且'%d' a *「轉換規範」*。 – jonrsharpe 2014-09-04 12:59:37

回答

2

The documentation稱它爲「值「:

如果格式需要一個參數,可以是單個非元組對象。

%d被稱爲「轉換規格」。它們中的每一個都從「值」中的元素獲取一個或多個「參數」。例如,

%d需要一個參數,%*d需要兩個參數。所有參數構成「價值」。

這將意味着5%d的參數,而(5)是整個格式的「值」。

+1

*「所以」參數「是指'%d'」* - 否,這是「轉換規範」,值(或值的元組)是參數。 – jonrsharpe 2014-09-04 13:06:20

+0

@jonrsharpe:謝謝,修正。 – 2014-09-04 13:13:11

0

(5)實際上是一個非常令人誤解的事情:它看起來像是一個元組,但它僅僅是一個整數,它周圍有一個parens!

要麼寫

print "%d" % 5 

或寫一個單元素元組的正確途徑,

print "%d" % (5,) 

或者當你擁有它確實的情況下,事情(比如當您將有問題以後而不是5,你有一個變量,可能本身也可能不是一個元組)。

例如,

a = (2, 3) 

print "%s" % a 

引發類型錯誤,因爲a有兩個元素,並只有一個%

print "%s" % (a) 

也引發類型錯誤,因爲它是完全一樣的東西,和

print "%s" % (a,) 

實際打印預期"(2, 3)"