如何将输出显示为整数而不是实数

时间:2015-06-04 09:14:41

标签: 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:
       EnemyAttack = EnemyAttack / 2
       EAN = EAN - 1
    Health = Health - EnemyAttack

代码确实将敌人的攻击减半,但输出并不是我想要的。

print ("You have been damaged for {}".format(EnemyAttack)

显示

84.0 

我希望它输出

84

我已经将EnemyAttack定义为整数,所以我很困惑为什么它显示为实数。有解决方案吗如果可以的话,使用我可以转换成我的情况的简单代码进行评论。感谢。

2 个答案:

答案 0 :(得分:2)

您可以将其格式化为不带小数,将其四舍五入为最接近的整数:

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

有关详细信息,请参阅Formatting Specification Mini-Language section

答案 1 :(得分:1)

在Python中,您无法定义变量名称的类型。 如果要进行整数除法,则必须使用整数除法运算符//

EnemyAttack = EnemyAttack // 2