Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
0 / 0 / 0
Регистрация: 27.02.2025
Сообщений: 10

Учет расходов ЖКХ

29.09.2025, 10:03. Показов 1817. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Студент, осваиваем 1С и встроенный ЯП.
Обязательно начать освоение Python в форме самостоятельного обучения. До нового года - операторы, строки, списки, словари, далее по программе в классах.
На консультации предоставлять пусть несложные, но свои программы. Представленный код рабочий, одобрен.
Вопрос для себя: можно ли упростить код?

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
voda = [236.81, 437.66, 455.64, 455.64, 455.64, 455.6, 455.64, 660.04, 735.00]  #первая суммма у всех за декабрь 2024 г.
v01 = sum(voda)
svet = [475.00, 475.00, 475.00, 475.00, 475.00, 475.00, 475.00, 534.00, 534.00]
s01 = sum(svet)
musor = [149.02, 149.02, 149.02, 149.02, 149.02, 149.02, 149.02, 149.02, 166.76]
m01 = sum(musor)
kvart = [4134.96, 4178.68, 4466.74, 4136.93, 3089.16, 1403.59, 1364.36, 1503.34, 1591.88] #в т.ч. гор.вода и ОДН
kv01 = sum(kvart)
gaz = [371.22, 371.23, 371.22, 371.22, 371.22, 371.22, 371.22, 378.47, 378.47]
g01 = sum(gaz)
print('2025 год ')
result =[x + y + z + w + v for x, y, z, w, v in zip(voda, svet, musor, kvart, gaz)]
print('Сумма с начала года по месяцам', *result, sep='  ')
print('ИТОГО сумма за год:', v01+s01+m01+kv01+g01)
#m_list=['дек','янв', 'фев', 'март', 'апр', 'май', 'июнь', 'июль', 'авг']
#m_list=['1','2', '3', '4', '5', '6', '7', '8', '9']
print('───────-─')
print('Вода =', v01) #сумма по месяцам
#print('───────-─')
print( 'Месяц │ Сумма')
print('───────-─')
for i, v in enumerate(voda, start=1):
    print(' ', i,'   ', v)
print('───────-─')
print('Свет =', s01)
print( 'Месяц │ Сумма')
print('───────-─')
for i, v in enumerate(svet, start=1):
    print(' ', i,'   ', v)
print('───────-─')
print('Мусор =', m01)
print( 'Месяц │ Сумма')
print('───────-─')
for i, v in enumerate(musor, start=1):
    print(' ', i,'   ', v)
print('Квартира =', kv01)
print('───────-─')
print( 'Месяц │ Сумма')
print('───────-─')
for i, v in enumerate(kvart, start=1):
    print(' ', i,'   ', v)
print('───────-─')
print('Газ =', g01)
print( 'Месяц │ Сумма')
print('───────-─')
for i, v in enumerate(gaz, start=1):
    print(' ', i,'   ', v)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.09.2025, 10:03
Ответы с готовыми решениями:

Задача 3: сокращение расходов в период кризиса
Всего в серии постов 5 задач, буду благодарна если мне напишут хотя бы одну (нужны все 5) - 11...

Разработать программу учёта расходов и доходов
Разработать программу учёта расходов и доходов.

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

20
-610 / 35 / 0
Регистрация: 10.03.2025
Сообщений: 485
29.09.2025, 10:27
Подключить к Пайтону нормальную СУБД, хотя бы встроенную SQLite
выглядит Ваш код не очень, но если препод одобрил, только непонятно
куда данные записываются, похоже это просто форма ввода в никуда
0
93 / 88 / 17
Регистрация: 05.08.2021
Сообщений: 424
29.09.2025, 12:31
Транслит типа "voda", "musor" и т. п. - последнее дело... Для программирования есть английские слова. От одного вида которых все пребывают в нирване
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
water = [236.81, 437.66, 455.64, 455.64, 455.64, 455.6, 455.64, 660.04, 735.00, 437.66, 149.02, 4466.74]  
light = [475.00, 475.00, 475.00, 475.00, 475.00, 475.00, 475.00, 534.00, 534.00, 437.66, 149.02, 4466.74]
garbage = [149.02, 149.02, 149.02, 149.02, 149.02, 149.02, 149.02, 149.02, 166.76, 437.66, 149.02, 4466.74]
rent = [4134.96, 4178.68, 4466.74, 4136.93, 3089.16, 1403.59, 1364.36, 1503.34, 1591.88, 437.66, 149.02, 4466.74] 
gas = [371.22, 371.23, 371.22, 371.22, 371.22, 371.22, 371.22, 378.47, 378.47, 437.66, 149.02, 4466.74]
m = ['январь','февраль','март','апрель','май','июнь','июль','август','сентябрь','октябрь','ноябрь','декабрь']
def f(a,b,c,d,e):
    s = 0
    print('Итог за мясяц по воде, электричеству, мусору, квартплате и газу' )
    for i in range(len(m)):
        n = sum([a[i],b[i],c[i],d[i],e[i]])
        r = float('{:.2f}'.format(n))
        s += r
        print(f' {m[i]} - {r} рублей')
    s = float('{:.2f}'.format(s))    
    print('_______________________________________________________________________________')
    print(f'Итого за все эти блага цивилизации за год натикало {s} рублей')
 
f(water,light,garbage,rent,gas)
Итог за мясяц по воде, электричеству, мусору, квартплате и газу
январь - 5367.01 рублей
февраль - 5611.59 рублей
март - 5917.62 рублей
апрель - 5587.81 рублей
май - 4540.04 рублей
июнь - 2854.43 рублей
июль - 2815.24 рублей
август - 3224.87 рублей
сентябрь - 3406.11 рублей
октябрь - 2188.3 рублей
ноябрь - 745.1 рублей
декабрь - 22333.7 рублей
________________________________________ _______________________________________
Итого за все эти блага цивилизации за год натикало 64591.82 рублей
0
-610 / 35 / 0
Регистрация: 10.03.2025
Сообщений: 485
29.09.2025, 13:43
Zloyalex100, Не надо никакого транслита Python допускает переменные
написанные кириллицей, препод будет в восторге
0
93 / 88 / 17
Регистрация: 05.08.2021
Сообщений: 424
29.09.2025, 14:00
Цитата Сообщение от avedeo Посмотреть сообщение
препод будет в восторге
А программисты-иноземцы кириллицу и вообще великорусский язык малоразумеющие в восторге не будут
0
-610 / 35 / 0
Регистрация: 10.03.2025
Сообщений: 485
29.09.2025, 14:22
Zloyalex100, А каково англоязычным программистам видеть все эти служебные словечки
begin end procedure for else if, я вообще не понимаю этого препода, зачем 1С-нику
изучать Пайтон, а поскольку он 1С-ник, то все ему придется писать на кириллице,
хотя можно и на латинице, но причем здесь Пайтон, да еще абсолютно дикое задание
я явно отстал от современных трендов оказания образовательных услуг
0
0 / 0 / 0
Регистрация: 27.02.2025
Сообщений: 10
29.09.2025, 14:47  [ТС]
Старенький ПК, Python 3.4
Задания придумываем сами,это реальные расходы по нашей квартире,
простой код -т.к. на начальном уровне освоения пайтон, дойдем до баз - перепишем.
В будущем обучении и работе пайтон якобы пригодится для математических и финансовых отчетов, анализа данных.

Добавлено через 7 минут
С английским согласен полностью - поленился.
Тренд в обучении - программист должен владеть минимум двумя ЯП, один в близок к совершенству.

Добавлено через 1 минуту
Всем спасибо за участие и поддержку и правильную критику.
0
29.09.2025, 14:51

Не по теме:

Цитата Сообщение от Zloyalex100 Посмотреть сообщение
декабрь - 22333.7 рублей
Что было в декабре?

0
-610 / 35 / 0
Регистрация: 10.03.2025
Сообщений: 485
29.09.2025, 14:53
Vlad_IP, Я не в претензии, но базу на чистом Пайтоне не пишут, поэтому
программист должен пользоваться инструментом, для этого созданным, 1С это вообще
средство разработки любых экономических прикладных приложений и там есть для
этого всё.

А задачек для Пайтона на этом сайте завались, есть готовые примеры на любые
темы, в том числе и для создания баз данных, но с подключением соответствующих
инструментов
0
0 / 0 / 0
Регистрация: 27.02.2025
Сообщений: 10
29.09.2025, 15:18  [ТС]
Storm Screamer, В представленном коде расходы с декабря по сентябрь, просто Zloyalex100 показал пример на весь год
0
1 / 1 / 0
Регистрация: 29.09.2025
Сообщений: 4
29.09.2025, 21:47
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
voda = [236.81, 437.66, 455.64, 455.64, 455.64, 455.6, 455.64, 660.04, 735.00]  #первая суммма у всех за декабрь 2024 г.
svet = [475.00, 475.00, 475.00, 475.00, 475.00, 475.00, 475.00, 534.00, 534.00]
musor = [149.02, 149.02, 149.02, 149.02, 149.02, 149.02, 149.02, 149.02, 166.76]
kvart = [4134.96, 4178.68, 4466.74, 4136.93, 3089.16, 1403.59, 1364.36, 1503.34, 1591.88] #в т.ч. гор.вода и ОДН
gaz = [371.22, 371.23, 371.22, 371.22, 371.22, 371.22, 371.22, 378.47, 378.47]
 
print('2025 год ')
result =[x + y + z + w + v for x, y, z, w, v in zip(voda, svet, musor, kvart, gaz)]
print('Сумма с начала года по месяцам', *result, sep='  ')
print('ИТОГО сумма за год:', sum(voda + svet + musor + kvart + gaz))
 
print('───────-─')
 
def real_decor(func):
    def wrapper(sp):
        res = func(sp)
        return res
    return wrapper
 
 
def function(sp, s='вода'):
    print()
    print(f'{s} = {sum(sp)}') #сумма по месяцам
    print( 'Месяц │ Сумма')
    print('───────-─')
    for i, v in enumerate(sp, start=1):
        print(' ', i,'   ', v)
 
function(voda, s='вода')
function(svet, s='свет')
function(musor, s='мусор')
function(kvart, s='квартира')
function(gaz, s='газ')
1
0 / 0 / 0
Регистрация: 27.02.2025
Сообщений: 10
30.09.2025, 08:28  [ТС]
Большое спасибо, с функциями стало элегантней и профессиональней
0
1 / 1 / 0
Регистрация: 29.09.2025
Сообщений: 4
30.09.2025, 09:00
Можно конечно было и без декоратора real_decor сделать, но с декором че-то добавить/изменить можно.
0
 Аватар для ViachaslauK
122 / 179 / 16
Регистрация: 08.10.2024
Сообщений: 641
30.09.2025, 10:25
Цитата Сообщение от Zloyalex100 Посмотреть сообщение
Для программирования есть английские слова.
Да, причем именно слова. Поэтому после
Цитата Сообщение от Zloyalex100 Посмотреть сообщение
def f(a,b,c,d,e):
или
Цитата Сообщение от Roman020579 Посмотреть сообщение
def function(sp, s='вода'):
можно дальше и не смотреть.

А с такими данными гораздо удобнее работать с помощью словарей.
Цитата Сообщение от avedeo Посмотреть сообщение
но базу на чистом Пайтоне не пишут,
А причем тут база? Хранить можно как угодно, речь идет про имплементацию бизнес-логики именно на Пайтон
1
-610 / 35 / 0
Регистрация: 10.03.2025
Сообщений: 485
01.10.2025, 11:20
Цитата Сообщение от ViachaslauK Посмотреть сообщение
А причем тут база
Потому что сколько нибудь серьезная и регулярная деловая инфа, есмь база
а если нет, то ее немедленно надо преобразовать к виду, в котором
становятся возможными действия, для которых и создается регулярная
деловая инфа:
- делать запросы на чтение, запись, индексацию
- гарантированная персистентность
0
 Аватар для ViachaslauK
122 / 179 / 16
Регистрация: 08.10.2024
Сообщений: 641
01.10.2025, 12:02
Цитата Сообщение от avedeo Посмотреть сообщение
Потому что сколько нибудь серьезная и регулярная деловая инфа, есмь база
а если нет, то ее немедленно надо преобразовать к виду, в котором
становятся возможными действия, для которых и создается регулярная
деловая инфа:
- делать запросы на чтение, запись, индексацию
- гарантированная персистентность
Вы понимаете суть задачи? Вы понимаете архитекутру? Сомневаюсь, раз приплетаете сюда хранение. В данном случае задача - имплементить бизнес-логику приложения, данные я могу хранить как угодно, хоть в файлах. Данный класс должен работать с известным форматьм данных, в текущей реслизации - со сприсками, но я бы лучше использовал словари. Привести к этому формату задача класса-адаптера, который умеет работать с любыми данными. Для этого пишется класс-менеджер, который умеет работать с конкретым форматом - SQL, noSQL, txt, csv, etc...
В этом и есть отличие грамотной архитектуры
0
-610 / 35 / 0
Регистрация: 10.03.2025
Сообщений: 485
01.10.2025, 12:47
ViachaslauK, Бизнес-логика, это алгоритм в котором описано поведение
системы, скажем при установлении цены на розничный товар мы будем:
- проанализируем график объемов продаж данного товара за определенный период
- график остатков товаров за определенный период
- соотнесем эти два графика на предмет корреляции, уходит товар когда его мало, много
или нет корреляции
- алгоритм даст рекомендацию на скидку для покупателя, исходя из объема покупки
наличия карты скидок, тематических скидок, исходя из графика скидок

Бизнес-логика обращается к базе, а не наоборот

А у вас тут телега стоит впереди лошади и непонятно, кто кого везет

Бизнес-логика обслуживает базу данных, а не генерирует и не заменяет ее собой
это два разных процесса предметной области

Беда программистов в том , что они редко шарят в предметной области и у них
происходит иллюзия, что архитектура рулит и даже заруливает, рулит всегда
предметная область, она диктует контуры архитектуры, а дело архитектора
увидеть узкие места и своевременно их расширить и даже расшаперить
0
 Аватар для ViachaslauK
122 / 179 / 16
Регистрация: 08.10.2024
Сообщений: 641
02.10.2025, 09:28
Цитата Сообщение от avedeo Посмотреть сообщение
Бизнес-логика обращается к базе, а не наоборот
Вот именно! читай первый пост: данные уже получены! неважно как и откуда! Задача - обработать их. Все! А ты вместо решения задачи полез рассуждать о том как хранить. В контексте задачи это неважно.
Задача простая:
1. (опционально) Продумать формат полученных данных
2. обработать данные.
3. Вернуть данные в нужном формате.

На этом этапе не решается вопрос - где хранить данные. Это вообще не важно. например результат вернется в виде словаря. Я могу его сохранить прямо в этом формате в Динаме или монго, могу как поле JSON в Postgres, могу вообще в текстовом - это неважно. За это отвечает адаптер

А тут, еще раз речь об обработке данных.
0
0 / 0 / 0
Регистрация: 27.02.2025
Сообщений: 10
02.10.2025, 11:11  [ТС]
ViachaslauK, Здравствуйте! Пробовал со словарем и матрицей, с матрицей вообще не зашло, со словарем показалось дольше, но удобней. Буду перерабатывать на основе словарей. Вот фрагменты кода(буквенные обозначения для скорости ввода)
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import numpy
 
v2=[236.81, 437.66, 455.64, 455.64, 455.64, 455.6, 455.64, 660.04, 735.00]
s2 = [475.00, 475.00, 475.00, 475.00, 475.00, 475.00, 475.00, 534.00, 534.00]
m2 = [149.02, 149.02, 149.02, 149.02, 149.02, 149.02, 149.02, 149.02, 166.76]
kv2 = [4134.96, 4178.68, 4466.74, 4136.93, 3089.16, 1403.59, 1364.36, 1503.34, 1591.88] #в т.ч. гор.вода и ОДН
g2 = [371.22, 371.23, 371.22, 371.22, 371.22, 371.22, 371.22, 378.47, 378.47]
 
m_list=['1','2', '3', '4', '5', '6', '7', '8', '9']
m_v1=dict(zip(m_list, v2))
print(m_v1)
m_v2=dict(zip(m_list, s2))
m_v3=dict(zip(m_list, m2))
#m_v = {**m_v1, **m_v2, **m_v}
association = {}
for i in m_v1, m_v2, m_v3:
    association.update(i)
    print(association)
total1 = sum(m_v1.values())
#print('Вода: ', total1)
print()
result=sum(v2+ s2+ m2+ kv2+ g2)
print('Итого за год: ', result)
print('───────-─')
print('Вода: ', total1)
print( 'Месяц │Сумма')
for i, v in enumerate(v2, start=1):
    print(' ', i,'   ', v)
print()
 
# Матрицы?!
arr = numpy.array([v2,s2, m2, kv2, g2])
for row in arr:
   print('  '.join(map(str, row)))
print()
for v_arr in arr:
    print(v_arr, ':', sum(v_arr)) #сумма по строкам
print()
for s_arr in zip(*arr):
    print(s_arr, ':', sum(s_arr)) #сумма по столбцам
0
-610 / 35 / 0
Регистрация: 10.03.2025
Сообщений: 485
02.10.2025, 11:50
Vlad_IP, Сразу видно настоящего исследователя, он пробует разные варианты,
осмысливает, опровергает сам себя, выдвигает новые гипотезы, дорога без конца,
респект и уважуха!!!

Путь настоящего самурая
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.10.2025, 11:50
Помогаю со студенческими работами здесь

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

Бот для учета расходов и доходов
Доброго времени суток! Возникла проблема с одной функцией телеграмм бота для учета расходов и...

Транспортные расходы
Добрый день, я тут остановился на одной задачке, нужна помощь. Необходимо заказать транспорт для...

Бинарный поиск (дихотомия). Эксперимент расходится с теорией. Где ошибка?
Есть два файла. Первый считает число ходов по угадыванию случайного числа из массива разной длины....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Ниже машинный перевод статьи The Thinkpad X220 Tablet is the best budget school laptop period . Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы,. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru