Форум сайта python.su
0
Необходимо использовать ряд приёмов. Часть их есть в коде ниже.
Стопорнулась на поиске (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: ”)
Я - не волшебник, я ещё только учусь)
Офлайн
33
Код в теги.
Описывай задание яснее.
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)
Офлайн
24
Компактно :
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)
Офлайн
33
aybТочнее, не по PEP и по-нубски.
Компактно
Офлайн
221
BudulianinPEP-008 это не стандарт, а набор рекомендаций, не обязательных к использованию. Часть из которых сообщество приняло практически повсеместно (например использовать пробелы вместо табов), другие стало почвой для споров (например ограничение 80 символов в строчке кода). Я, к примеру, не поддерживаю идею что каждый импорт должен быть оформлен в новой строчке - у меня свои идеи на этот счет.
не по PEP
BudulianinЭто потому что задание выполнено не оптимально по памяти, как в вашем примере?
по-нубски
Офлайн
33
JOHN_16Если ты пишешь только для себя и своей конторки и твой код никто не увидит, то конечно, это так.
PEP-008 это не стандарт, а набор рекомендаций, не обязательных к использованию.
JOHN_16В крайнем случае можно 100.
(например ограничение 80 символов в строчке кода)
JOHN_16Если ты его не знаешь и не соблюдаешь, и не понимаешь для чего он, то да, бессмысленно.
Поэтому несоответствие этому PEP это как то бессмысленное заявление, если его рассматривать дотошно.
JOHN_16Пффф, нет. Про память тут особого смысла думать нет.
Это потому что задание выполнено не оптимально по памяти, как в вашем примере?
Отредактировано Budulianin (Июль 13, 2015 00:11:58)
Офлайн
0
Всем огромное спасибо за помощь!
Офлайн