2012-02-17 54 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