Python,f-string 格式化浮点值到精确的小数位数
Python, f-string formatting float value to exact amount decimals
所以我正在尝试学习 Python,并决定尝试在 Kattis, this one to be more precise 上做一些问题。我已经设法拼凑了一些代码,这些代码在它们提供的情况下打印出正确的值。
import functools
for _ in range(int(input())):
d = list(map(int, input().split()))
avg = functools.reduce(lambda a, b: a + b, d[1:]) / d[0]
print(f'{100 * len(list(filter(lambda x: x > avg, d))) / d[0]:.3f}' + '%')
但是当我提交代码时,它没有通过两个测试用例之一,说它得到了错误的答案。我猜想错误出在 f 字符串格式中的某个地方,因为它似乎 avg 获得了正确的值。所以我希望可能会有更多有才华的人发现我遗漏的错误。
这不是 f 字符串问题。你计算错误的百分比。不应包含第一个值。
print(f'{100 * len(list(filter(lambda x: x > avg, d[1:]))) / d[0]:.3f}' + '%')
所以我正在尝试学习 Python,并决定尝试在 Kattis, this one to be more precise 上做一些问题。我已经设法拼凑了一些代码,这些代码在它们提供的情况下打印出正确的值。
import functools
for _ in range(int(input())):
d = list(map(int, input().split()))
avg = functools.reduce(lambda a, b: a + b, d[1:]) / d[0]
print(f'{100 * len(list(filter(lambda x: x > avg, d))) / d[0]:.3f}' + '%')
但是当我提交代码时,它没有通过两个测试用例之一,说它得到了错误的答案。我猜想错误出在 f 字符串格式中的某个地方,因为它似乎 avg 获得了正确的值。所以我希望可能会有更多有才华的人发现我遗漏的错误。
这不是 f 字符串问题。你计算错误的百分比。不应包含第一个值。
print(f'{100 * len(list(filter(lambda x: x > avg, d[1:]))) / d[0]:.3f}' + '%')