Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将输出显示为整数而不是实数_Python_Python 3.x - Fatal编程技术网

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似乎认为{}格式不够聪明,无法在传递一个整数时识别并正确格式化一个整数。