如何分配平均值并以整数形式打印

2024-09-23 16:32:32 发布

您现在位置:Python中文网/ 问答频道 /正文

说明是分配平均猫头鹰和每个动物园的平均猫头鹰。将平均owls打印为整数。然而,数学上的例子输入总是出错。即使我用手做数学题。代码如下

给定的样本输入为1 2 4

avg_owls = 0.0

num_owls_zooA = int(input())
num_owls_zooB = int(input())
num_owls_zooC = int(input())

avg_owls = int(num_owls_zooA + num_owls_zooB + num_owls_zooC / 3)

print('Average owls per zoo:', int(avg_owls))

你的产出 每个动物园平均猫头鹰数量:4只 预期产量 每个动物园平均猫头鹰数量:2只

我已经编写并只能修改代码avg_owls=int(num_owls_zooA+num_owls_zooB+num_owls_zooC/3)

我不明白当实际的数学结果是2.333时,它怎么会变成4

我做错了什么


Tags: 代码input数量数学整数num例子int
2条回答

这里有两个问题。在pemdas或germdas,除法先于加法。所以你需要在加法的周围加上括号。此外,如果您执行int(4.3),您将得到4。float将为您提供所需的输出

avg_owls = 0.0

num_owls_zooA = float(input())
num_owls_zooB = float(input())
num_owls_zooC = float(input())

avg_owls = (num_owls_zooA + num_owls_zooB + num_owls_zooC) / 3

print(f'Average owls per zoo: {avg_owls} ')

我还建议使用f strings

运算符优先级和数学规则都说

num_owls_zooA + num_owls_zooB + num_owls_zooC / 3

将计算为

num_owls_zooA + num_owls_zooB + (num_owls_zooC / 3)

您需要一些括号才能得到所需的结果:

(num_owls_zooA + num_owls_zooB + num_owls_zooC) / 3

另外,将int应用于结果可能感觉是错误的。这将导致它总是向下取整。对于平均值,您通常希望将其保持为浮点值,或者至少四舍五入到最接近的值,而不是始终向下

相关问题 更多 >