Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 7, 2019 09:15:45

also1
Зарегистрирован: 2019-12-06
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись/чтение в файл

Спасибо, за разъяснения.

doza_and
Вот что может например получиться:
Это, конечно, может у меня получиться, но хотя-бы через пару месяцев с начала изучения змеиного языка.
Програмку пишу не для внедрения в жизнь, а в качестве практики и на ней разбираюсь, и надеюсь, что с течением времени она дойдет до предложенной.
Еще вопрос:
Если обращаться к последней строчке геморройно, то может в файле создавать список и обращаться к нему. В списке-же можно обратиться к последнему объекту по индексу (-1)
Это можно реализовать?
py.user.next
Пришли файл ввода. Пришли полученный из файла ввода файл результата
На данный момент это TXT файлы с единственным числом в формате строка.

Офлайн

#2 Дек. 7, 2019 09:47:41

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Запись/чтение в файл

https://pypi.org/project/tailer/

ну или

 file = "file.txt"
f = open(file, 'r')
lines = [i for i in f]
f = open(file, 'w')
f.writelines([lines[-1], *lines[:-1]])
f.close()

это по строкам а вот что умнее .. вы вобще что хотите то в итого?
а вся история показаний и оплат.
эт вам db мутить надо например >>



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Дек. 7, 2019 10:03:31)

Офлайн

#3 Дек. 7, 2019 12:01:39

also1
Зарегистрирован: 2019-12-06
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись/чтение в файл

ФФФСё придумал: Через создание третьего файла.
Просьба потыкать меня носом, где накосячил.

[code python]from datetime import date
today = date.today()
td=today
print(td)
with open("003.txt", 'r', encoding='utf-8') as f:
st_pok = f.read()
print("Старые показания: ", st_pok, 'KWt')
st_pok = int(st_pok)
pok = int(input("Введите показания: "))
if pok < st_pok:
print("Не правильно введены показания. Повторите ввод")
print("Старые показания", st_pok)
exit()
rashod = pok - st_pok
print("Расход", rashod, 'KWt')
pok = str(pok)
with open("003.txt", 'w', encoding='utf-8') as f:
f.write(pok)
tarif = 4.65
print('Сумма к оплате: ', "%.2f" % (rashod * tarif), ' руб.')
with open("many.txt", 'r', encoding='utf-8') as f:
saldo = f.readline()
saldo = float(saldo)
print("Было на счете: ", saldo, 'Руб.')
print("Можно оплатить: ", "%.2f" % (rashod * tarif - saldo), 'Руб.')
opl = float(input("Введите сумму: "))
saldo = "%.2f" % (opl + saldo - rashod * tarif)
print("На балансе осталось: ", saldo, 'Руб.')
saldo = str(saldo)
with open("many.txt", 'w', encoding='utf-8') as f:
f.writelines(saldo + '\n')
with open("istor.txt", 'a', encoding='utf-8') as f:
f.write(str(td) + ' ' + 'Показание: ' + pok + ' ' + 'Оплата: '+ str (opl) + ' Остаток: ' + saldo + '\n')
q = input("Для закрытия нажмите любую клавишу")[/code]

Отредактировано also1 (Дек. 7, 2019 12:03:08)

Офлайн

#4 Дек. 7, 2019 12:20:46

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10031
Репутация: +  857  -
Профиль   Отправить e-mail  

Запись/чтение в файл

doza_and
Я бы тут добавил. “Адаптируй решение задачи под возможности языка программирования”.
Надо сначала составить алгоритм, а потом уже выбрать язык для реализации этого алгоритма. Вот как раз чёткого и ясного алгоритма у него и не видно. А для обнаружения шагов алгоритма надо проанализировать свои собственные действия. Нигде не видно, что то, что он пытается написать, правильно составлено алгоритмически



Офлайн

#5 Дек. 7, 2019 18:14:55

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Запись/чтение в файл

вы бы пример дали .. чели .. что ни буть .. простое но наглядное .. алглритмов етих разработку
а то не понятно как их разрабатывать не блок схемы же рисовать



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Дек. 7, 2019 18:19:02)

Офлайн

#6 Дек. 7, 2019 18:27:25

also1
Зарегистрирован: 2019-12-06
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись/чтение в файл

AD0DE412
вы бы пример дали .. чели .. что ни буть .. простое но наглядное .. алглритмов етих разработку
а то не понятно как их разрабатывать не блок схемы же рисовать
Это к кому?

Офлайн

#7 Дек. 7, 2019 20:09:11

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Запись/чтение в файл

https://python.su/forum/post/205989/



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Офлайн

#8 Дек. 8, 2019 02:27:03

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10031
Репутация: +  857  -
Профиль   Отправить e-mail  

Запись/чтение в файл

AD0DE412
вы бы пример дали .. чели .. что ни буть .. простое но наглядное
Простой пример алгоритма:

Алгоритм “Сходить в магазин”
1. Одеться.
2. Взять деньги.
3. Открыть дверь.
4. Выйти из квартиры.
5. Закрыть дверь.
6. Выйти из дома на улицу.
7. Дойти до магазина.
8. Зайти в магазин.
9. Сделать покупки.
10. Выйти из магазина.
11. Дойти до дома.
12. Зайти с улицы в дом.
13. Открыть дверь.
14. Зайти в квартиру.
15. Закрыть дверь.
16. Положить продукты.
17. Раздеться.

Как видишь, тут каждое действие может быть простым, а может быть составным. Простые действия - это атомарные (неразложимые), а составные действия можно разложить на другие действия, так же являющиеся простыми или составными. Обрати внимание, что мы первое и последнее действия сделали обратными по отношению друг к другу. Откуда мы начинали выполнение алгоритма, туда мы и вернулись после его выполнения. Это связано с тем, что алгоритмы могут выполняться один за другим. Если мы весь алгоритм “Сходить в магазин” рассмотрим как одно составное действие в каком-то алгоритме, то мы можем составить алгоритм, ничего не меняя в алгоритме “Сходить в магазин”, и получить осмысленное действие.

Алгоритм “Закупить разные продукты”
1. Сходить в магазин.
2. Сходить в магазин.
3. Сходить в магазин.

Так мы можем сцеплять разные алгоритмы в одно целое.

А вот урок по информатике для школьников ссылка. Там более подробно описано классическое понятие алгоритма. Его нужно знать, но это далеко не всё, что кроется в алгоритмах. На самом деле, между шагами алгоритма кое-что спрятано, что и помогает выразить каждое действие точно.


В данном же топике алгоритма нет. Вместо алгоритма какая-то муть. И он для этой мути пытается написать решение.



Отредактировано py.user.next (Дек. 8, 2019 02:27:50)

Офлайн

#9 Дек. 8, 2019 10:25:36

alloy
Зарегистрирован: 2019-12-08
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись/чтение в файл

 mylist = myfile.readlines() #Прочитает файл и построчно сформирует список
print(mylist) #А вот и список
print(len(mylist)) #Узнаем длину списка
#В списке 4 элемента. Индекс последнего будет равен 3
myoldindex = int(mylist[3])# Присваиваем значение последнего индекса переменной
print(myoldindex)
#Теперь можно сравнивать с новым показанием
myfile.close()
myfile = open("demo.txt", "a")#Открываем файл для добавления
myfile.write("104")# Добавляем с новой строчки
myfile.close()#Как-то так
Может пригодится.
Если пользователь имеет доступ к файлу, он может изменить последнюю строку в файле, добавив любые буквы, тогда последнее значение из списка уже не получится сделать целым числом.

Кто-то писал, что для таких целей лучше подойдёт база данных. В жкх так вся информация и храниться.

Отредактировано alloy (Дек. 8, 2019 10:58:27)

Прикреплённый файлы:
attachment demo.rar (512 байт)

Офлайн

#10 Дек. 8, 2019 13:02:13

Vladimirv
Зарегистрирован: 2013-03-22
Сообщения: 108
Репутация: +  7  -
Профиль   Отправить e-mail  

Запись/чтение в файл

also1
хочу сделать, чтоб в файлах сохранялась бы не только последнее значение, а вся история показаний и оплат.
Для этого вам нужна база данных. Через полгода вы не будете знать к какому месяцу циферки у вас в файле. У вас нет дат. БД позволит вам выбирать данные по периодам и строить например, график расхода электричества или еще чего-то.
Сейчас же просто складывайте данные в файл по месяцам, один файл на 1 месяц, год не забудьте. Потом сообразите, как все это запихнуть в БД.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version