2012-02-17 87 views
1

所以我想打印一些文字後,我打印我的變量是這樣的:Python的印刷文本

print('Blablabla' var ' blablabla') 

現在它看起來是這樣的:

print('The enemey gets hit for %d' % damage) 

我想打印的字打印損壞變量後的「Hitpoints」。

+2

'打印('敵人被擊中了{} hitpoints'.format(損壞))'...你也可以使用'%D',但'海峽.format'是新的方法。 – Gandaro 2012-02-17 18:11:25

+1

這是一個令人困惑的問題。看起來很難理解把'Hitpoints'放入格式字符串本身的困難。你能解釋一下你對格式字符串有什麼困惑嗎?是關於'%'字符串運算符的一些問題嗎? – 2012-02-17 18:33:29

回答

16

就包括生命值:

print('The enemey gets hit for %d hitpoints' % damage) 

格式化操作%是非常強大的,看看all the placeholder options。它,然而,旨在支持將逐步的str.format出來:

print('The enemey gets hit for {} hitpoints'.format(damage)) 

或者,您也可以在damage值轉換爲字符串,連接字符串與+

print('The enemey gets hit for ' + str(damage) + ' hitpoints') 
+0

感謝您的幫助:) – user1216862 2012-02-17 18:11:54

+0

爲了連接打印,我更喜歡下面的風格選擇:print('enemey會被擊中',str(傷害),'hitpoints') – hexparrot 2012-02-17 18:16:10

+0

@hexparrot同樣適用,但它需要對可變參數的理解,並不是普遍可移植的,因爲它需要'print'作爲獲得預期輸出的函數。另外,連接是一個通用的概念,在打印之外很有用。 – phihag 2012-02-17 18:19:29

1

只需添加hitpoints到您的字符串:

print('the enemy gets mutilated for %d hitpoints!' % damage) 
+1

'%d'是整數的格式說明符,而不是fileobject?! http://docs.python.org/library/stdtypes.html#string-formatting – Gandaro 2012-02-17 18:14:43

+0

你是對的,我混淆了%d的fp小數(%f代替),這肯定不是我的意圖。 – hexparrot 2012-02-17 18:20:07

+0

'%f'是浮點數的格式說明符。 :P – Gandaro 2012-02-17 18:20:51