【问题标题】:Python printing text after printing a variables打印变量后Python打印文本
【发布时间】:2012-02-17 18:09:34
【问题描述】:

所以我想在打印我的变量后打印一些文本:

print('Blablabla' var ' blablabla')

现在看起来像这样:

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

我想在打印出伤害变量后打印“Hitpoints”这个词。

【问题讨论】:

  • print('The enemy gets hit for {} hitpoints'.format(damage))...你也可以使用%d,但str.format是新方法。
  • 这是一个令人困惑的问题。似乎很难理解将Hitpoints 放入格式字符串本身有什么困难。你能解释一下你对格式字符串的困惑吗?是关于% 字符串运算符的一些问题吗?

标签: python variables printing


【解决方案1】:

只需包含生命值:

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 enemy gets hit for ' + str(damage) + ' hitpoints')

【讨论】:

  • 要与 print 连接,我更喜欢以下文体选择:print('The enemey got hit for', str(damage), 'hitpoints')
  • @hexparrot 这也行得通,但它需要了解可变参数并且不是普遍可移植的,因为它需要 print 成为获得预期输出的函数。此外,串联是一个通用概念,在打印之外很有用。
  • @phihag 抱歉,我不是母语人士,所以有时我可能听起来有点粗鲁。 ;)
【解决方案2】:

这样看起来好多了。 ;0)

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

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

    • %d 是整数的格式说明符,而不是文件对象?! docs.python.org/library/stdtypes.html#string-formatting
    • 你说得对,我把 %d 混淆为 fp 十进制(%f 代替),这肯定不是我想要的。
    • 好吧,python 文档称它们为整数小数 %i 和浮点小数,在我看来这是一个令人困惑的命名约定,因为整数既没有小数点也没有小数值。 %d 立即让我印象深刻,因为它与十进制相关(确实如此),但并不是我预期的那样。文件对象从来都不是解决方案的一部分,您可能将 fp 与 fo 混淆了?
    • 以 10 为底的数字根据定义是“十进制值”。小数点后的数字部分是“分数”,而不是“小数”。二进制点之后的二进制数部分是否称为“二进制”?我认为不会。
    • 我觉得这个错误现在已经得到了适当的解决、承认和补救。我认为不需要这么多的解释来简单地混淆“d”与“i”,而不是我认为的“f”。
    猜你喜欢
    • 2020-08-08
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 2016-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多