-
Notifications
You must be signed in to change notification settings - Fork 0
/
codigoOriginal.py
468 lines (395 loc) · 22.6 KB
/
codigoOriginal.py
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
"""
Autor: Samara dos Santos Ferreira
Componente Curricular: MI - Algoritmos I
Concluído em: 09/04/2022
Declaro que este código foi elaborado por mim de forma individual e não contém
nenhum trecho de código de colega ou de outro autor, tais como provindos de livros e
apostilas, e páginas ou documentos eletrônicos da internet. Qualquer trecho de código
de outra autoria que não a minha está destacado com uma citação do autor e a fonte do
código, e estou ciente que estes trechos não serão considerados para fins de avaliação.
"""
# Declaração das variáveis
# Variáveis dos alimentos que não precisam de uma quantidade específica para formarem um item
quant_acucar = quant_bolacha = quant_farinha = quant_oleo = quant_sal = quant_extras = 0
# Variáveis dos alimentos que precisam de uma quantidade específica para formarem um item
quant_arroz_item = quant_cafe_item = quant_extrato_item = quant_feijao_item = quant_macarrao_item = 0
# Variáveis utilizadas para guardarem a quantidade total de cada alimento
# São utilizadas na saída do programa, imprimindo o total e o restante de cada alimento doado
quant_acucar_total = quant_arroz_total = quant_bolacha_total = quant_cafe_total = quant_extrato_total = 0
quant_farinha_total = quant_feijao_total = quant_macarrao_total = quant_oleo_total = quant_sal_total = quant_extras_total = 0
# Varíaveis utilizadas para guardar o total de itens doados por pessoas físicas e jurídicas
fisicas = juridicas = 0
# Listas utilizadas para guardar a quantidade, o tipo e a unidade de medida do item extra, respectivamente
quant_itens_extras = []
tipos_extras = []
unidades_extras = []
# Gerenciamento de doações
print('-='*62, f'\n{"DISPENSÁRIO SANTANA":^124}\n', '-='*62)
# Variável condicional do while
# Utilizada para que o sistema só pare o cadastramento mediante solicitação do funcionário
continuacao = 's'
continuar = 1
while continuar == 1:
# Registro do nome do doador e a sua respectiva validação
# Validação: impede a entrada de dados incorretos, tais como números, simbologias, espaços em branco, etc.
nome = input('\n> Digite o nome do doador: ').strip().title()
nome_teste = nome.replace(" ", "")
while nome_teste.isalpha() == False:
print('\n\tNOME DO DOADOR INVÁLIDO!\n\t- Por favor, digite novamente:\n')
nome = input('> Digite o nome do doador: ').strip().title()
nome_teste = nome.replace(" ", "")
# Registro do tipo de doador e a sua respectiva validação
# Validação: impede a entrada de dados incorretos, tais como letras, espaços, númros maiores do que 2 e números menores do que um
print(f'\n{"-"*46}', f'{" TIPOS DE DOADORES "}', f'{"-"*46}\n')
print(f'{f"| [1] Pessoa Física ":28} | {f"[2] Pessoa Jurídica":28} |\n'.center(111))
tipo_doador = input('> Digite o tipo de doador: ').strip()
while tipo_doador != '1' and tipo_doador != '2':
print('\n\tTIPO DE DOADOR INVÁLIDO!\n\t- Por favor, digite novamente:\n')
tipo_doador = input('> Digite o tipo de doador: ').strip()
# Segundo while: utilizado para caso um doador desejar doar mais de um donativo
while continuacao == 's':
# Menu para escolha do tipo de donativo
print(f'\n{"-"*46}', f'{" ALIMENTOS DA CESTA BÁSICA "}', f'{"-"*46}\n')
print(f'{f"| [1] Açúcar":28} | {f"[4] Café":28} | {f"[7] Feijão":28} | {f"[10] Sal":28} |')
print(f'{f"| [2] Arroz":28} | {f"[5] Extrato de Tomate":28} | {f"[8] Macarrão":28} | {f"[11] Extra":28} |')
print(f'{f"| [3] Bolacha":28} | {f"[6] Farinha de Trigo":28} | {f"[9] Óleo":28} | {f" ":28} |\n')
# Entrada e validação do tipo de item
# While: utilizado para que não ocorra a entrada de dados incorretos, tais como letras, números maioresdo do que 11 e menores do que 1
var = 'v'
while var == 'v':
try:
tipo_item = int(input('> Digite o tipo de item: '))
while tipo_item < 1 or tipo_item > 11:
print('\n\tTIPO DE ITEM INVÁLIDO!\n\t- Por favor, digite novamente:\n')
tipo_item = int(input('> Digite o número do item: '))
except:
print('\n\tTIPO DE ITEM INVÁLIDO!\n\t- Por favor, digite novamente:\n')
else:
var = 'f'
# Menu para escolha da unidade de medida do donativo
print(f'\n{"-"*46}', f'{" UNIDADES DE MEDIDA "}', f'{"-"*46}\n')
print(f'{"| [1] Litros (L)":28} | {"[3] Quilograma (kg)":28} | {"[5] Pacote (pct)":28} |')
print(f'{"| [2] Mililitros [mL]":28} | {"[4] Gramas (g)":28} | {"[6] Unidade (un)":28} |\n')
# Entrada e validação da unidade do item
# While: utilizado para que não ocorra a entrada de dados incorretos, tais como letras, números maiores do do que 6 e menores do que 1
var = 'v'
while var == 'v':
try:
unidade = int(input('> Digite a unidade de medida do item: '))
while unidade < 1 or unidade > 6:
print('\n\tUNIDADE DE MEDIDA INVÁLIDA!\n\t- Por favor, digite uma opção válida [1 - 6]:\n')
unidade = int(input('> Digite a unidade de medida do item: '))
# Novo while: verifica se o funcionario digitou uma unidade válida para determinado item
while (tipo_item == 1 or tipo_item == 2 or tipo_item == 4 or tipo_item == 6 or tipo_item == 7 or tipo_item == 10) and (unidade != 3 and unidade != 4):
print('\n\tUNIDADE DE MEDIDA INVÁLIDA!\n\t- As opções válidas para esse item são quilogramas [kg] e gramas [g].\n')
unidade = int(input('> Digite a unidade de medida do item: '))
# Novo while: verifica se o funcionario digitou uma unidade válida para determinado item
while (tipo_item == 5 or tipo_item == 8) and unidade != 6:
print('\n\tUNIDADE DE MEDIDA INVÁLIDA!\n\t- A opção válida para esse item é unidade [un].\n')
unidade = int(input('> Digite a unidade de medida do item: '))
# Novo while: verifica se o funcionario digitou uma unidade válida para determinado item
while tipo_item == 3 and unidade != 5:
print('\n\tUNIDADE DE MEDIDA INVÁLIDA!\n\t- A opção válida para esse item é pacote [pct].\n')
unidade = int(input('> Digite a unidade de medida do item: '))
# Novo while: verifica se o funcionario digitou uma unidade válida para determinado item
while tipo_item == 9 and (unidade != 1 and unidade != 2):
print('\n\tUNIDADE DE MEDIDA INVÁLIDA!\n\t- As opções válidas para esse item são litros [L] e mililitros [mL].\n')
unidade = int(input('> Digite a unidade de medida do item: '))
except:
print('\n\tUNIDADE DE MEDIDA INVÁLIDA!\n\t- Por favor, digite novamente:\n')
else:
var = 'f'
# Entrada e validação da quantidade do item
# While: utilizado para que não ocorra a entrada de dados incorretos, tais como letras e números menores do que 0
var = 'v'
while var == 'v':
try:
quantidade = float(input('> Digite a quantidade do item: '))
# Novo while: impede a entrada de quantidades menores do que zero
while quantidade < 0:
print('\n\tQUANTIDADE INVÁLIDA!\n\t- Por favor, digite novamente:\n')
quantidade = float(input('> Digite a quantidade do item: '))
except:
print('\n\tQUANTIDADE INVÁLIDA!\n\t- Por favor, digite novamente:\n')
else:
var = 'falso'
# Conversões de medidas
# Transforma as gramas e mililitros em quilogramas e em litros, respectivamente
if unidade == 2:
quantidade /= 1000
elif unidade == 4:
quantidade /= 1000
# Atribuição da quantidade dos itens as suas respectivas variáveis, de acordo com o 'Menu de Alimentos'
if tipo_item == 1:
# Variável utilizada para a montagem das cestas básicas, que sofrerá um decréscimo de acordo com a quantidade de cestas formadas
quant_acucar += quantidade
# Essa variável não será modificada; será utilizada na saída do programa para imprimir a quantidade total de acúcar e o que sobrou
quant_acucar_total += quantidade
if tipo_doador == '1':
if quantidade == 0:
fisicas += 0 # Caso a quantidade seja igual a zero, o sistema não contabilizará isso como uma doação
else:
fisicas += quant_acucar // 1
else:
if quantidade == 0:
juridicas += 0
else:
juridicas += quant_acucar // 1
elif tipo_item == 2:
quant_arroz_total += quantidade
if quant_arroz_total >= 4: # Variável utilizada na montagem das cestas básicas, que sofrerá um decréscimo de acordo com a quantidade de cestas formadas
# Para formar um item de arroz, deve-se ter um total de 4kg
quant_arroz_item += quant_arroz_total // 4
if tipo_doador == '1':
if quantidade == 0:
fisicas += 0
else:
fisicas += quant_arroz_item
else:
if quantidade == 0:
juridicas += 0
else:
juridicas += quant_arroz_item
elif tipo_item == 3:
quant_bolacha += quantidade
quant_bolacha_total += quantidade
if tipo_doador == '1':
if quantidade == 0:
fisicas += 0
else:
fisicas += quant_bolacha // 1
else:
if quantidade == 0:
juridicas += 0
else:
juridicas += quant_bolacha // 1
elif tipo_item == 4:
quant_cafe_total += quantidade
if quant_cafe_total >= 2:
quant_cafe_item += quant_cafe_total // 2
if tipo_doador == '1':
if quantidade == 0:
fisicas += 0
else:
fisicas += quant_cafe_item
else:
if quantidade == 0:
juridicas += 0
else:
juridicas += quant_cafe_item
elif tipo_item == 5:
quant_extrato_total += quantidade
if quant_extrato_total >= 2:
quant_extrato_item += quant_extrato_total // 2
if tipo_doador == '1':
if quantidade == 0:
fisicas += 0
else:
fisicas += quant_extrato_item
else:
if quantidade == 0:
juridicas += 0
else:
juridicas += quant_extrato_item
elif tipo_item == 6:
quant_farinha += quantidade
quant_farinha_total += quantidade
if tipo_doador == '1':
if quantidade == 0:
fisicas += 0
else:
fisicas += quant_farinha // 1
else:
if quantidade == 0:
juridicas += 0
else:
juridicas += quant_farinha // 1
elif tipo_item == 7:
quant_feijao_total += quantidade
if quant_feijao_total >= 4:
quant_feijao_item += quant_feijao_total // 4
if tipo_doador == '1':
if quantidade == 0:
fisicas += 0
else:
fisicas += quant_feijao_item
else:
if quantidade == 0:
juridicas += 0
else:
juridicas += quant_feijao_item
elif tipo_item == 8:
quant_macarrao_total += quantidade
if quant_macarrao_total >= 3:
quant_macarrao_item += quant_macarrao_total // 3
if tipo_doador == '1':
if quantidade == 0:
fisicas += 0
else:
fisicas += quant_macarrao_item
else:
if quantidade == 0:
juridicas += 0
else:
juridicas += quant_macarrao_item
elif tipo_item == 9:
quant_oleo += quantidade
quant_oleo_total += quantidade
if tipo_doador == '1':
if quantidade == 0:
fisicas += 0
else:
fisicas += quant_oleo // 1
else:
if quantidade == 0:
juridicas += 0
else:
juridicas += quant_oleo // 1
elif tipo_item == 10:
quant_sal += quantidade
quant_sal_total += quantidade
if tipo_doador == '1':
if quantidade == 0:
fisicas += 0
else:
fisicas += quant_sal // 1
else:
if quantidade == 0:
juridicas += 0
else:
juridicas += quant_sal // 1
# Atribuição dos itens extras
elif tipo_item == 11:
quant_extras += 1
quant_extras_total += quantidade
if tipo_doador == '1':
fisicas += quantidade
else:
juridicas += quantidade
# Entrada e validação do nome do item extra
nome_item_extra = input('> Digite o nome do item extra: ').strip().title()
nome_item_extra_f = nome_item_extra.replace(" ", "")
while nome_item_extra_f.isalpha() == False:
print('\n\tNOME INVÁLIDO!\n\t- Por favor, digite novamente:\n')
nome_item_extra = input('Digite o nome do item extra: ').strip().title()
nome_item_extra_f = nome_item_extra.replace(" ", "")
# Montagem das listas
# Tipos dos itens extras
tipos_extras.append(nome_item_extra)
# Quantidades dos itens extras
quant_itens_extras.append(quantidade)
# Unidades de medidas dos itens extras
if unidade == 1:
unidades_extras.append('L')
elif unidade == 2:
unidades_extras.append('L')
elif unidade == 3:
unidades_extras.append('kg')
elif unidade == 4:
unidades_extras.append('kg')
elif unidade == 5:
unidades_extras.append('pct')
elif unidade == 6:
unidades_extras.append('un')
# Condicionais do while
continuacao = input(f'\n\t>> Há mais donativos doados por {nome}? ').strip().lower()[0]
print('\n\t>> O Dispensário Santana agradece pela doação! ')
# Menu de opções: escolha entre continuar o cadastro ou visualizar o relatório
print('\n', '-'*20, ' MENU DE OPÇÕES ')
print(f'\n{f"| [1] Continuar as doações":28} | {f"[3] Finalizar o expediente":28} \n| {f"[2] Visualizar o relatório":28}')
valida_continuar = 'v'
while valida_continuar == 'v':
try:
continuar = int(input('\n\t>> Escolha uma das opções acima [1 - 3]: '))
while continuar < 1 or continuar > 3:
print('\n\tOPÇÃO INVÁLIDA!\n\t- Por favor, digite uma opção entre 1 e 3:')
continuar = int(input('\n\t>> Escolha uma das opções acima [1 - 3]: '))
except:
print('\n\tINVÁLIDO!\n\t- Por favor, digite novamente:')
else:
valida_continuar = 'f'
if continuar == 1:
continuar = 1
continuacao = 's'
else:
continuar = 2
# Organização e montagem das cestas básicas
# Declaração das variáveis
cestas = cestas_com_extras = cestas_sem_extras = 0
total_extras = quant_extras_total
# Montagem das cestas
while quant_acucar > 0 and quant_arroz_item > 0 and quant_bolacha > 0 and quant_cafe_item > 0 and quant_extrato_item > 0 and quant_farinha > 0 and quant_feijao_item > 0 and quant_macarrao_item > 0 and quant_oleo > 0 and quant_sal > 0:
cestas += 1
# Verficação se tem item extras ou não
if total_extras > 0:
cestas_com_extras += 1
total_extras -= 1
else:
cestas_sem_extras += 1
quant_acucar -= 1
quant_arroz_item -= 1
quant_bolacha -= 1
quant_cafe_item -= 1
quant_extrato_item -= 1
quant_farinha -= 1
quant_feijao_item -= 1
quant_macarrao_item -= 1
quant_oleo -= 1
quant_sal -= 1
cestas_total = cestas
# Relatório final
print('\n', '-='*62, f'\n{"RELATÓRIO DE DOAÇÕES":^124}\n', '-='*62, '\n')
# Total de cada item recebido
# Caso as cestas NÃO tenham itens extras
if quant_extras == 0:
print('-'*45, ' TOTAL DE CADA ITEM RECEBIDO ', '\n')
print(f'{f"| Açúcar: {quant_acucar_total:.1f} kg":28} | {f"Café: {quant_cafe_total:.1f} kg":28} | {f"Feijão: {quant_feijao_total:.1f} kg":28} | {f"Sal: {quant_sal_total:.1f} kg":28} |')
print(f'{f"| Arroz: {quant_arroz_total:.1f} kg":28} | {f"Extrato de Tomate: {quant_extrato_total:.1f} un":28} | {f"Macarrão: {quant_macarrao_total:.1f} un":28} | {f" ":28} |')
print(f'{f"| Bolacha: {quant_bolacha_total:.1f} pct":28} | {f"Farinha de Trigo: {quant_farinha_total:.1f} kg":28} | {f"Óleo: {quant_oleo_total:.1f} L":28} | {f" ":28} |')
# Caso as cestas tenham 1 item extra
elif 0 < quant_extras <= 1:
print('-'*45, ' TOTAL DE CADA ITEM RECEBIDO ', '\n')
print(f'{f"| Açúcar: {quant_acucar_total:.1f} kg":28} | {f"Café: {quant_cafe_total:.1f} kg":28} | {f"Feijão: {quant_feijao_total:.1f} kg":28} | {f"Sal: {quant_sal_total:.1f} kg":28} |')
print(f'{f"| Arroz: {quant_arroz_total:.1f} kg":28} | {f"Extrato de Tomate: {quant_extrato_total:.1f} un":28} | {f"Macarrão: {quant_macarrao_total:.1f} un":28} | {f"{tipos_extras[0]}: {quant_itens_extras[0]} {unidades_extras[0]}":28} |')
print(f'{f"| Bolacha: {quant_bolacha_total:.1f} pct":28} | {f"Farinha de Trigo: {quant_farinha_total:.1f} kg":28} | {f"Óleo: {quant_oleo_total:.1f} L":28} | {f" ":28} |')
# Caso as cestas tenham 2 itens extras
elif 1 < quant_extras <= 2:
print('-'*45, ' TOTAL DE CADA ITEM RECEBIDO ', '\n')
print(f'{f"| Açúcar: {quant_acucar_total:.1f} kg":28} | {f"Café: {quant_cafe_total:.1f} kg":28} | {f"Feijão: {quant_feijao_total:.1f} kg":28} | {f"Sal: {quant_sal_total:.1f} kg":28} |')
print(f'{f"| Arroz: {quant_arroz_total:.1f} kg":28} | {f"Extrato de Tomate: {quant_extrato_total:.1f} un":28} | {f"Macarrão: {quant_macarrao_total:.1f} un":28} | {f"{tipos_extras[0]}: {quant_itens_extras[0]} {unidades_extras[0]}":28} |')
print(f'{f"| Bolacha: {quant_bolacha_total:.1f} pct":28} | {f"Farinha de Trigo: {quant_farinha_total:.1f} kg":28} | {f"Óleo: {quant_oleo_total:.1f} L":28} | {f"{tipos_extras[1]}: {quant_itens_extras[1]} {unidades_extras[1]}":28} |')
# Caso as cestas tenham mais de 2 itens extras
else:
print('-'*45, ' TOTAL DE CADA ITEM RECEBIDO ', '\n')
print(f'{f"| Açúcar: {quant_acucar_total:.1f} kg":28} | {f"Café: {quant_cafe_total:.1f} kg":28} | {f"Feijão: {quant_feijao_total:.1f} kg":28} | {f"Sal: {quant_sal_total:.1f} kg":28} |')
print(f'{f"| Arroz: {quant_arroz_total:.1f} kg":28} | {f"Extrato de Tomate: {quant_extrato_total:.1f} un":28} | {f"Macarrão: {quant_macarrao_total:.1f} un":28} | {f"{tipos_extras[0]}: {quant_itens_extras[0]} {unidades_extras[0]}":28} |')
print(f'{f"| Bolacha: {quant_bolacha_total:.1f} pct":28} | {f"Farinha de Trigo: {quant_farinha_total:.1f} kg":28} | {f"Óleo: {quant_oleo_total:.1f} L":28} | {f"{tipos_extras[1]}: {quant_itens_extras[1]} {unidades_extras[1]}":28} |')
for i in range(2, len(tipos_extras)):
print(f'{f"| {tipos_extras[i]}: {quant_itens_extras[i]} {unidades_extras[i]}":28}', end=' | ')
# Total de itens doados por pessoas físicas e jurídicas
print('\n', '-'*45, ' DOAÇÕES POR PESSOAS FÍSICAS E JURÍDICAS ', '\n')
print(f' Total de itens por pessoas FÍSICAS: {int(fisicas)} itens')
print(f' Total de itens por pessoas JURÍDICAS: {int(juridicas)} itens')
# Total de cestas básicas formadas
print('\n', '-'*45, ' CESTAS BÁSICAS ', '\n')
print(f' Total de cestas básicas formadas: {cestas_total} cestas')
# Total de cestas básicas que receberão um item extra
print(f' Total de cestas básicas que receberam um item extra: {cestas_com_extras} cestas')
# Total de cestas básicas que não receberam um item extra
print(f' Total de cestas básicas que NÃO receberam um item extra: {cestas_sem_extras} cestas')
# Itens restantes
print('\n', '-'*45, ' ITENS RESTANTES ', '\n')
# Subtrai a quantidade de itens extras
while cestas_com_extras > 0:
quant_extras_total -= 1
cestas_com_extras -= 1
# Caso as cestas não tenham itens extras
if quant_extras == 0:
print(f'{f"| Açúcar: {quant_acucar_total - cestas:.1f} kg":28} | {f"Café: {quant_cafe_total - (cestas * 2):.1f} kg":28} | {f"Feijão: {quant_feijao_total - (cestas * 4):.1f} kg":28} | {f"Sal: {quant_sal_total - cestas:.1f} kg":28} |')
print(f'{f"| Arroz: {quant_arroz_total - (cestas * 4):.1f} kg":28} | {f"Extrato de Tomate: {quant_extrato_total - (cestas * 2):.1f} un":28} | {f"Macarrão: {quant_macarrao_total - (cestas * 3):.1f} un":28} | {f" ":28} |')
print(f'{f"| Bolacha: {quant_bolacha_total - cestas:.1f} pct":28} | {f"Farinha de Trigo: {quant_farinha_total - cestas:.1f} kg":28} | {f"Óleo: {quant_oleo_total - cestas:.1f} L":28} | {f" ":28} |')
# Caso as cestas tenham 1 item extra
elif quant_extras > 0 :
print(f'{f"| Açúcar: {quant_acucar_total - cestas:.1f} kg":28} | {f"Café: {quant_cafe_total - (cestas * 2):.1f} kg":28} | {f"Feijão: {quant_feijao_total - (cestas * 4):.1f} kg":28} | {f"Sal: {quant_sal_total - cestas:.1f} kg":28} |')
print(f'{f"| Arroz: {quant_arroz_total - (cestas * 4):.1f} kg":28} | {f"Extrato de Tomate: {quant_extrato_total - (cestas * 2):.1f} un":28} | {f"Macarrão: {quant_macarrao_total - (cestas * 3):.1f} un":28} | {f"Extras: {quant_extras_total} un":28} |')
print(f'{f"| Bolacha: {quant_bolacha_total - cestas:.1f} pct":28} | {f"Farinha de Trigo: {quant_farinha_total - cestas:.1f} kg":28} | {f"Óleo: {quant_oleo_total - cestas:.1f} L":28} | {f" ":28} |')