Python 如何将输出显示为整数而不是实数
这不是我的确切代码,但我基本上是这样做的Python 如何将输出显示为整数而不是实数,python,python-3.x,Python,Python 3.x,这不是我的确切代码,但我基本上是这样做的 EnemyAttack = int(10) Move = input("| Cast an attack spell(1) | Cast a defense spell(2) |") if Move = ("2"): print ("You have casted a defense spell for 2 turns") EAN = 2 if EAN >= 1: Enemy
EnemyAttack = int(10)
Move = input("| Cast an attack spell(1) | Cast a defense spell(2) |")
if Move = ("2"):
print ("You have casted a defense spell for 2 turns")
EAN = 2
if EAN >= 1:
EnemyAttack = EnemyAttack / 2
EAN = EAN - 1
Health = Health - EnemyAttack
该代码确实将敌人的攻击减半,但是输出不是我想要的
print ("You have been damaged for {}".format(EnemyAttack)
这显示
84.0
我想让它输出
84
我已经将EnemyAttack定义为整数,所以我不明白为什么它显示为实数。有什么解决办法吗?如果可以,也可以使用一个简单的代码进行注释,我可以将其转换为我的情况。谢谢。您可以不使用小数对其进行格式化,将其四舍五入到最接近的整数:
print("You have been damaged for {:.0f}".format(EnemyAttack))
:
是必需的分隔符;之后的所有内容都定义了该值的格式说明。我们在这里使用f
浮点格式化程序,.0
表示小数点后的零位。这样做时,小数点本身也会被删除
这样做的好处是,数字将根据需要四舍五入:
>>> EnemyAttack = 84.0
>>> print("You have been damaged for {:.0f}".format(EnemyAttack))
You have been damaged for 84
>>> EnemyAttack = 84.6
>>> print("You have been damaged for {:.0f}".format(EnemyAttack))
You have been damaged for 85
有关详细信息,请参见。在Python中,不能定义变量名的类型。 如果需要整数除法,则必须使用整数除法运算符
/
:
EnemyAttack = EnemyAttack // 2
如果输出的是
EnemyAttack
,那么为什么是84而不是10或5?你确定你的代码传输正确吗?@SuperBiasedMan 10是一个例子,在真实代码中是84,如果它给你带来任何困惑,对不起,我可以问一下f是什么意思吗?代码现在运行得很好,谢谢。但是在0之后使用f的目的是什么?@MaxyPicky:我将您链接到文档;:
之后的所有内容都是格式规范(之前的所有内容都是指定要插入的值和格式,省略它使用自动编号)。这个问题很快,可能是不相关的,但如果我将{.0f}格式放置在字符串将发生的位置,是否会发生错误?e、 g.word=(“Hello”)print(“他说{.0f}。”.format(word))@MaxyPicky:是的,因为字符串对象对f
格式化代码一无所知str.format()
将格式化委托给值本身,因此'Hello'。\uuuuu format\uuuuuu('.0f')
,失败。+1这是问题的根源。我的印象是OP似乎认为{}格式不够聪明,无法在传递一个整数时识别并正确格式化一个整数。