Открытое чтение и усреднение текстовых файлов python

1

Привет, поэтому я в настоящее время пытаюсь написать код, который запрашивает несколько дней, а затем открывает несколько текстовых файлов (temps1.txt и т.д.), Читает их, сортирует их в словарях со средним и затем распечатывает. Однако некоторые из средних значений имеют крайнее количество десятичных пятен

f = {}
ans = int(input('How many days of data do you have? '))
#figure out how to open certain files
for file_num in range(1, (ans+1)):
    file_name = "temps" + str(file_num) + ".txt"
    temps = open(file_name)
    for line in temps:
        room, num = line.strip('\n').split(',')
        num = int(num)
        #may need to be 4* however many times it appears
        num = num/(4*ans)
        f[room] = f.get(room, 0) + num

print('Average Temperatures:')
for x in f:
     print (x + ':',f[x])

У меня есть пример для комнаты под названием спальня (все спальни в среднем текстовых файлах), а средний - 26,0, но он печатает как 26.000000000000004, как я могу прекратить это делать?

Теги:
python-3.x

3 ответа

2

Вы можете сказать Python, как форматировать номер следующим образом:

print('Average Temperatures:')
for x in f:
     print ('%.1f:' % x, f[x])

%.1f говорит, что печатается как число с плавающей запятой, с 1 номером после десятичной точки.

0

Ты можешь использовать:

for x in f:
    print("{:.2f}".format(float(x)))

.2f означает 2 цифры после точки. Подробнее см. Https://docs.python.org/3.7/library/string.html#formatstrings.

0

Проверьте функцию round(). Check out: Как округлить до 2 десятичных знаков с помощью Python?

>>> x = 26.000000000000004
>>> print str(round(x, 2))  
>>> '26.00'

Ещё вопросы

Сообщество Overcoder
Наверх
Меню