МИХАИЛ ПАНОВ
Мыслитель
(7285)
3 года назад
#!/usr/bin/env python
# -- coding: utf-8 --
from __future__ import unicode_literals
'''\
из текущего каталога файла price.txt из нескольких строк и строки фомата списка :наименование;: цена;: количество; нужно считывать по два подряд значения из собраных списков для получения требуемых значений
АВТОР: ПАНОВ МИХАИЛ ВЛАДИМИРОВИЧ
author: Panov Mikhail
'''
def strrd():
"""
the autor is Panov Mikhail
"""
nn='' #
while nn!=':': # поиск начала разделителя :наименование;: цена;: количество;
nn=fd.read(1) #
if nn=='': # если конец файла
nnppnn='eof' #
break
nppn='' #
nnppnn='' #
while nppn!=';': # поиск конца разделителя :наименование;: цена;: количество;
nnppnn=nnppnn+nppn #
nppn=fd.read(1) #
if nppn=='' and nnppnn=='': # если конец файла
nnppnn='eof' #
break
return nnppnn #
blch=[] # [нечётное] блюдо [чётное] цена
blsk=[] # [нечётное] блюдо [чётное] сколько
blsch=[] # [нечётное] блюда [чётное] цена
pppp=0.0 #
pp='' #
ppf=0.0 #
ppp=0.0 #
fd=open('price.txt', mode='r', encoding="utf-8", errors='ignore') # открытие дескриптора файла с ценой price.txt
while pp!='eof': # пока не конец файла
pp=strrd() # чтение наименования блюд
if pp=='eof': # пока не конец файла
fd.close() #
break #
blch.append(pp) #
blsk.append(pp) #
blsch.append(pp) #
pp=strrd() # чтение цены блюда
if pp=='eof': # пока не конец файла
fd.close() #
break #
blch.append(pp) #
ppp=float(pp) # цена блюда сохранена в переменной
ppf=float(strrd()) # чтение количества блюд
if pp=='eof': # пока не конец файла
fd.close() #
break #
blsk.append(ppf) #
ppff=ppp*ppf # сумма цены одинаковых блюд
blsch.append(ppff) #
pppp=pppp+ppff # общая цена блюд ресторана
# проверка
print(blch, blsk, blsch, pppp)
Vlad Comolli
Гуру
(2654)
3 года назад
#формат данных в файле .txt:
#блюдо - цена - популярность
#Пицца - 500 - заказывают часто
dishesPrice, dishesPopular = [dict()]*2
while 1:
~~~~try:
~~~~~~~~get = input().split(' - ')
~~~~~~~~dish = get[0]
~~~~~~~~price = int(get[1])
~~~~~~~~popular = get[2]
~~~~~~~~dishesPrice[dish] = price
~~~~~~~~dishesPopular[dish] = popular
~~~~except EOFError: break
print(f'Дорогое блюдо: \t {list(dishesPrice.keys())[list(dishesPrice.values()).index( max(dishesPrice.values()))]} с ценой: {max(dishesPrice.values())}')
print(f'Сумма всех блюд: \t{sum(dishesPrice.values())}')
Далее в командной строке запускаем скрипт с перенаправлением ввода/вывода:
test.py < price.txt
Попробуй, мог где то ошибку сделать набирая с телефона
Создать функцию для суммирования всех цен на блюда ресторана (словарь{блюда: цена}).
Создать функцию для нахождения самого дорого блюда.