Python打印变量后,如何打印文本?

5

我想在打印变量后打印一些文本,代码如下:

print('Blablabla' var ' blablabla')

现在它看起来像这样:

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

我想在打印伤害变量后打印单词“Hitpoints”。

3
print('ж•ҢдәәеҸ—еҲ°дәҶ {} зӮ№дјӨе®і'.format(damage))дҪ д№ҹеҸҜд»ҘдҪҝз”Ё %dпјҢдҪҶжҳҜ str.format жҳҜдёҖз§Қж–°зҡ„ж–№жі•гҖӮ - Gandaro
1
这是一个令人困惑的问题。似乎很难理解将 Hitpoints 放入格式字符串本身中有什么困难之处。您能解释一下格式化字符串让您感到困惑的原因吗?还是关于 % 字符串运算符的某些问题? - S.Lott
3个回答

25

只需包含命中点数:

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

格式化操作符%非常强大,可以查看所有占位符选项。然而,它打算被淘汰,取而代之的是str.format

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

或者,您可以将 damage 的值转换为字符串,并使用 + 进行字符串连接:

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

与print连接字符串,我更喜欢这种风格的选择:print('敌人受到', str(damage), '点伤害') - hexparrot
@hexparrot 这也可以工作,但它需要理解可变参数并且不是普遍可移植的,因为它需要print作为函数才能获得预期的输出。此外,连接是一个通用的概念,它在打印之外也很有用。 - phihag
@phihag 抱歉,我不是母语人士,有时可能听起来有点生硬。;) - Gandaro

5

这样看起来更漂亮。;0)

damage = 10
print(f'The enemey gets hit for {damage} hitpoints')

(适用于Python 3.6及以上版本)

1
只需在字符串中添加hitpoints:
print('the enemy gets mutilated for %d hitpoints!' % damage)

1
%d是用于整数的格式说明符,而不是文件对象!请参阅http://docs.python.org/library/stdtypes.html#string-formatting。 - Gandaro
你说得对,我把%d和fp小数 (%f) 混淆了,这肯定不是我的本意。 - hexparrot
Python文档称它们为整数小数%i和浮点小数,这对我来说是一种令人困惑的命名约定,因为整数既没有小数点也没有小数值。%d立即让我想到与十进制有关(它确实与十进制有关),但不是我预期的意义。文件对象从未成为解决方案的一部分,您可能将fp与fo混淆了? - hexparrot
十进制数按定义是“十进制值”。小数点后的部分称为“分数”,而不是“小数”。那么,二进制数在二进制点后的部分是否被称为“二进制数”呢?我认为不是。 - kindall
1
我感觉错误现在已经得到了适当的解决、承认和纠正。我认为这么详细的解释并不是必要的,因为只是一个简单的混淆,认为'd'与我想象中的'f'相同,而不是实际上表示'i'。 - hexparrot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接