Уведомления

Группа в Telegram: @pythonsu

#1 Июль 12, 2015 15:15:28

Abeille
Зарегистрирован: 2015-07-06
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Расчёт среднеарифметического из чисел извлечённых из заданного файла

Необходимо использовать ряд приёмов. Часть их есть в коде ниже.

Стопорнулась на поиске (find) определённой метки и получаю сообщение о неприсваевом атрибуте.
То есть нужно ещё использовать .find(“:”) и выбрать только числа для дальнейшей операции
сложения (sum) и вычисления average. Мозги уже кипят. ((

Необходимый output:

Average: /a float number/

Допустим, имеется файл flowers.txt со следующим содержанием:
poppies: 0.567
poppies: 0.456
poppies: 0.789
poppies: 0.673
poppies: 0.321

Вот мой черновик:

# Use the file name flowers.txt as the file name
fname = input(“Enter file name: ”)

try:
fh = open(fname)
except:
print('Sorry, no such file:', fname)
exit()

count = 0
for line in fh:
line = line.rstrip()
if not line.startswith(“poppies:”): continue
count += 1
line = line.split(“,”)
line = ‘'.join(line)
num = line.find(’:')
print(count,line, len(line),num)

print(“Average: ”)


Я - не волшебник, я ещё только учусь)

Офлайн

#2 Июль 12, 2015 15:44:00

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Расчёт среднеарифметического из чисел извлечённых из заданного файла

Код в теги.
Описывай задание яснее.

count = 0
sum_numbers = 0
with open('input.txt') as fin:
    for line in fin:
        count += 1
        sum_numbers += float(line.split(':')[1])
print(sum_numbers, sum_numbers / count)



Отредактировано Budulianin (Июль 12, 2015 16:16:41)

Офлайн

#3 Июль 12, 2015 16:03:04

ayb
Зарегистрирован: 2014-04-01
Сообщения: 297
Репутация: +  24  -
Профиль   Отправить e-mail  

Расчёт среднеарифметического из чисел извлечённых из заданного файла

Компактно :

flowers = [float(line.split(':')[1].strip()) for line in open('data.txt', 'r') if line.startswith('poppies:')]
print(sum(flowers)/len(flowers))

Отредактировано ayb (Июль 12, 2015 16:03:58)

Офлайн

#4 Июль 12, 2015 16:15:02

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Расчёт среднеарифметического из чисел извлечённых из заданного файла

ayb
Компактно
Точнее, не по PEP и по-нубски.



Офлайн

#5 Июль 12, 2015 23:56:29

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Расчёт среднеарифметического из чисел извлечённых из заданного файла

Budulianin
не по PEP
PEP-008 это не стандарт, а набор рекомендаций, не обязательных к использованию. Часть из которых сообщество приняло практически повсеместно (например использовать пробелы вместо табов), другие стало почвой для споров (например ограничение 80 символов в строчке кода). Я, к примеру, не поддерживаю идею что каждый импорт должен быть оформлен в новой строчке - у меня свои идеи на этот счет.
Поэтому несоответствие этому PEP это как то бессмысленное заявление, если его рассматривать дотошно.
Budulianin
по-нубски
Это потому что задание выполнено не оптимально по памяти, как в вашем примере?



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#6 Июль 13, 2015 00:10:04

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Расчёт среднеарифметического из чисел извлечённых из заданного файла

JOHN_16
PEP-008 это не стандарт, а набор рекомендаций, не обязательных к использованию.
Если ты пишешь только для себя и своей конторки и твой код никто не увидит, то конечно, это так.
Но даже при этом слова “не обязательных к использованию.” звучат стрёмно.

JOHN_16
(например ограничение 80 символов в строчке кода)
В крайнем случае можно 100.

(И я не рассматриваю варианты, когда команда договорилась о код стайле, это отдельный разговор)

JOHN_16
Поэтому несоответствие этому PEP это как то бессмысленное заявление, если его рассматривать дотошно.
Если ты его не знаешь и не соблюдаешь, и не понимаешь для чего он, то да, бессмысленно.

JOHN_16
Это потому что задание выполнено не оптимально по памяти, как в вашем примере?
Пффф, нет. Про память тут особого смысла думать нет.
Важнее подход и основы, которые будут использоваться в дальнейшем.

Любого нуба выдаёт любовь вот к таким однострочникам переросткам,
которые они потом привыкают лепить при каждой возможности.



Отредактировано Budulianin (Июль 13, 2015 00:11:58)

Офлайн

#7 Июль 13, 2015 14:00:32

Abeille
Зарегистрирован: 2015-07-06
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Расчёт среднеарифметического из чисел извлечённых из заданного файла

Всем огромное спасибо за помощь!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version