Loading...
martin_varbanov avatar martin_varbanov 1 Точки

2ра задача, 4тa лекция, Python 3 July

Здравейте,

Някой може ли да ми каже за по- добър начин за извличане на данните от този файл и дали отговора съвпада

Отговор: hp@HP-PC C:\Users\hp\Documents\Github\summer-2016\Pitonia\softuni\04\02
> python 02.py
{'2015-11-26': 216468.6100000001, '2015-11-25': 272291.64000000013, '2015-11-23': 258797.90000000002, '2015-11-24': 226962.82999999993}
2015-11-26

 

Решение: 

https://github.com/martin-varbanov96/summer-2016/blob/master/Pitonia/softuni/04/02/02.py

Тагове:
0
Python 03/08/2016 20:21:08
b.yordanov avatar b.yordanov 146 Точки
Best Answer

Здравей, няма да се занимавам да решавам задачата но ще ти дам малко насоки за това как може да стане малко по-добре.

 

with open('sales.csv', 'r') as lines:

-> когато отваряш файл за четене винаги задавай и енкодинг: with open('sales.csv', 'r', encoding='utf-8') as f:

Когато ще обработваш csv файлове използвай модула "csv" na pitonia

в началото пишеш: import csv

 

Изведи си ключовете, с които достъпваш лист-овете и дикт-овете в началото. Така файлът ще стане доста по-разбираем.

Например:

#02.py

-----------------------------

import csv

SALE_TIMESTAMP = 0

SALE_VALUE = 1

with open('sales.csv', 'r', encoding='utf-8') as f:

reader = csv.reader(f)
for row in reader:

       print(row)

 

За по-ефективно четене на файлове ред по ред използвай конструкцията yield от 6-та лекция. Там е обяснено как точно работи, но специално за твоята задача няма да ти трябва.

 

Когато принтваш стойности като сума от нещо използвай форматиране за да изглежда по-прилично. Например:

print("{total_sum:.2f}".format(total_sum=216468.6100000001)) ще ти изптринти: 216468.61. Обърни внимание, че има : и . преди 2f 

За да обработваш дати най-горе при импортите използвай "import iso8601". Това май беше обяснено в 4-та или 5-та лекция ако не се лъжа.

 

Спорно учене ;)

 

1
shine_g avatar shine_g 2 Точки

Предполагам, че става въпрос за ТАЗИ задача

Ако искаш резултатът да ти излиза подобно на това:

Сряда  ==> 273785.69
Понеделник  ==> 259736.72
Вторник  ==> 228910.47
Четвъртък  ==> 216472.38
Денят с максимални печалби е Сряда с печалба 273785.69

може да ползваш  date.weekday(some_date), което връща номера на деня от седмицата, почвайки от 0.

Кодът за тази част, която ти трябва, изглежда горе-долу така:

days_of_the_week = ['Понеделник', 'Вторник', 'Сряда', 'Четвъртък', 'Петък', 'Събота', 'Неделя']
max_profit = 0
max_profit_day = -1
for i, s in sales.items(): # i ни е датата s е сумарната стойност на продажбите за тая дата
    sale_weekday = days_of_the_week[date.weekday(i)] #date.weekday дава номера на деня
    print(sale_weekday, ' ==> {:.2f}'.format(s))
    if s > max_profit:
        max_profit = s
        max_profit_day = sale_weekday

print('Денят с максимални печалби е {} с печалба {:.2f}'.format(max_profit_day, max_profit))

 

Сигурно става и по много по-добър начин, но smiley

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.