-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcompound-interest-calculator.py
More file actions
436 lines (396 loc) · 19.9 KB
/
compound-interest-calculator.py
File metadata and controls
436 lines (396 loc) · 19.9 KB
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
print ("\nBem-vindo(a) à Calculadora de Juros Compostos do Raphael")
# Menu de opções:
a = ""
b = ""
c = ""
n = ""
while a != "s" and b != "s" and b != "3" and c != "s":
print ("\nDesejas calcular: \n\n1) Juros (J) e Montante (M) \n2) Capital (C) \n3) Taxa percentual (i) \n4) Tempo em meses (t) \n5) Sair\n")
a = input ()
while a != "1" and a != "2" and a != "3" and a != "4" and a != "5":
print ("\n*alternativa inválida*\n\nDesejas calcular:\n \n1) Juros (J) e Montante (M) \n2) Capital (C) \n3) Taxa percentual (i) \n4) Tempo em meses (t) \n5) Sair\n")
a = input ()
if a == "5":
break
# Juros (J) e Montante (M):
while a == "1":
print ("\n*para sair, entre com 's' \npara voltar ao Menu de opções, entre com 'm'* \n\nInforme-me:\n")
while True:
try:
a = input ("Capital (C): ")
if a == "s" or a == "m":
break
a = float(a)
break
except ValueError or TypeError:
print ("Entre com um número!")
if a == "s" or a == "m":
break
while True:
try:
b = input ("Taxa percentual (i): ")
if b == "s" or b == "m":
break
b = float(b)
break
except ValueError or TypeError:
print ("Entre com un número!")
if b == "s" or b == "m":
break
while True:
try:
c = input ("Tempo em meses (t): ")
if c == "s" or c == "m":
break
else:
c = float(c)
break
except ValueError or TypeError:
print ("Entre com um número!")
if c == "s" or c == "m":
break
# Cálculo/Resultado:
if a < 0 or b < 0 or c < 0:
print ("\nNão seja assim, amigo, inserir valores negativos no contexto de cálculo de juros é bastante vergonhoso...")
elif a == 0 and b == 0 and c == 0:
print ("\nse você já sabe o resultado; então pra que gastar seu tempo, a CPU desta máquina e a energia elétrica do mundo?")
elif a == 0:
print ("\nNeste momento eu imagino que você esteja sendo investigado pelo FBI e sendo procurado em 17364594 países diferentes. O cara investiu R$ 0.00 e tá querendo lucrar...")
elif b == 0 and c > 0:
print ("\nhmmmm... Segundo meus cálculos... com este negócio, você investe R$", a, "e perde", c, "meses da sua vida..." )
elif c == 0 and b > 0:
print ("\nPaciência, amigo, querer que o dinheiro renda instantâneamente é como querer que caia do céu uma figurinha do Neymar... \nInvista um pouco mais de tempo, depois venha falar comigo...")
elif b == 0 and c == 0:
print ("\nMas que bela de uma aplicação... com ela você acaba de perder", a,"R$ do seu bolso... Parabéns!")
else:
print ("\nM =", a * (b + 1) ** c, "\nJ =", (a * (b + 1) ** c ) - a)
# Continuar/Voltar/Sair
print ("\nDesejas: \n\n1) Continuar \n2) Voltar ao Menu de opções \n3) Sair\n")
b = input ()
while b != "1" and b != "2" and b != "3":
print ("\n*alternativa inválida*\nDesejas: \n\n1) Continuar \n2) Voltar \n3) Sair\n")
b = input ()
if b == "3" or b == "2":
break
elif b == "1":
a = "1"
# Capital (C):
while a == "2":
print ("\n*para sair, entre com 's' \npara voltar ao Menu de opções, entre com 'm'*\n\nVocê prefere calcular a partir de: \n\n1) Montante (M), Taxa percentual (i), Tempo em meses (t) \n2) Juros (J), Taxa percentual (i), Tempo em meses(t) \n3) Montante (M) e Juros (J)\n\n")
b = input ()
while b != "1" and b != "2" and b != "3" and b != "s" and b != "m":
print ("\n*alternativa inválida*\n*para sair, entre com 's' \npara voltar ao Menu de opções, entre com 'm'*\n\nVocê prefere calcular a partir de: \n\n1) Montante (M), Taxa percentual (i), Tempo em meses (t) \n2) Montante (M) e Juros (J)\n\n")
b = input ()
if b == "s" or b == "m":
break
# A partir de Montante (M), Taxa percentual (i):
elif b == "1":
print ("\n*para sair, entre com 's' \npara voltar ao Menu de opções, entre com 'm'* \n\nInforme-me:\n")
while True:
try:
a = input("Montante (M): ")
if a == "s" or a == "m":
break
a = float(a)
break
except ValueError or TypeError:
print ("Entre com um número!")
if a == "s" or a == "m":
break
while True:
try:
b = input ("Taxa percentual (i): ")
if b == "s" or b == "m":
break
else:
b = float(b)
break
except ValueError or TypeError:
print ("Entre com um número!")
if b == "s" or b == "m":
break
while True:
try:
c = input ("Tempo em meses (t): ")
if c == "s" or c == "m":
break
c = float(c)
break
except ValueError or TypeError:
print ("Entre com um número!")
if c == "s" or c == "m":
break
# Cálculo/Resultado:
if a < 0 or b < 0 or c < 0:
print ("\nNão seja assim, amigo, inserir valores negativos neste contexto é bastante vergonhoso...")
elif b == 0 and a > 0 and c > 0:
print ("\nVocê investiu", a / (1 + b) ** c, "R$ e perdeu", c, "me(es) da sua vida, mas que belo negócio!")
elif c == 0 and a > 0:
print ("\nNão me faça rir... Dizer que o dinheiro rendeu instantâneamente é conversa para boi dormir...")
elif a == 0 and b == 0 or a == 0 and c == 0:
print ("\nEspera... é muita coisa pra eu processar... Você aplicou R$ 0.00... em uma taxa de", b, "%... esperou por", c, "mes(es)... E ainda queria que isso tivesse rendido alguma coisa!? \nE AGORA TÁ CHECANDO PRA VER SE NÃO FOI ENGANADO...")
elif a == 0 and b == 0 and c == 0:
print ("\nOs possíveis valores para o seu capital são infinitos!")
else:
try:
print ("\nC =", a / (1 + b) ** c)
except OverflowError:
print ("\nPor favor, caro usuário. Não insira valores estrondosos, pois excede o limite de caracteres suportado ;)")
# Continuar/Voltar/Sair:
print ("\nDesejas: \n\n1) Continuar \n2) Voltar ao Menu de opções \n3) Sair\n")
b = input ()
while b != "1" and b != "2" and b != "3":
print ("\na*lternativa inválida*\nDesejas: \n\n1) Continuar \n2) Voltar \n3) Sair\n")
b = input ()
if b == "2" or b == "3":
break
elif b == "1":
a = "2"
# A partir de Juros (J), Taxa percentual (i), Tempo em meses(t):
elif b == "2":
print ("\n*para sair, entre com 's' \npara voltar ao Menu de opções, entre com 'm'* \n\nInforme-me:\n")
while True:
try:
a = input("Juros (J): ")
if a == "s" or a == "m":
break
a = float(a)
break
except ValueError or TypeError:
print ("Entre com um número!")
if a == "s" or a == "m":
break
while True:
try:
b = input ("Taxa percentual (i): ")
if b == "s" or b == "m":
break
b = float(b)
break
except ValueError or TypeError:
print ("Entre com um número!")
if b == "s" or b == "m":
break
while True:
try:
c = input ("Tempo em meses (t): ")
if c == "s" or c == "m":
break
c = float(c)
break
except ValueError or TypeError:
print ("Entre com um número!")
if c == "s" or c == "m":
break
# Cálculo/Resultado:
if a < 0 or b < 0 or c < 0:
print ("\nNão seja assim, amigo, inserir valores negativos neste contexto é bastante vergonhoso...")
elif a == 0 and b == 0 and c == 0:
print ("\nOs possíveis valores para o seu capital são infinitos!")
elif c == 0 and a > 0:
print ("\nNão me faça rir... Dizer que o dinheiro rendeu instantâneamente é conversa para boi dormir...")
elif a == 0 and b > 0 or a == 0 and c > 0:
print ("\nEspera... é muita coisa pra eu processar... Você aplicou", a ,"R$... em uma taxa de", b, "%... esperou por", c, "mes(es)... E ainda queria que isso tivesse rendido alguma coisa!? \nE AGORA TÁ CHECANDO PRA VER SE NÃO FOI ENGANADO...")
elif a > 0 and b == 0 or a > 0 and c == 0:
print ("\nEspera... é muita coisa pra eu processar... Você aplicou", a ,"R$... em uma taxa de", b, "%... esperou por", c, "mes(es)... E ainda queria que isso tivesse rendido alguma coisa!? \nE AGORA TÁ CHECANDO PRA VER SE NÃO FOI ENGANADO...")
elif a == 0 and c == 0 or a == 0 and b == 0:
print ("\nEspera... é muita coisa pra eu processar... Você aplicou R$ 0.00... em uma taxa de", b, "%... esperou por", c, "mes(es)... E ainda queria que isso tivesse rendido alguma coisa!? \nE AGORA TÁ CHECANDO PRA VER SE NÃO FOI ENGANADO...")
else:
try:
print ("\nC =", a / (((1 + b) ** c) - 1))
except OverflowError:
print ("\nPor favor, caro usuário. Não insira valores estrondosos, pois excede o limite de caracteres suportado ;)")
# Continuar/Voltar/Sair:
print ("\nDesejas: \n\n1) Continuar \n2) Voltar ao Menu de opções \n3) Sair\n")
b = input ()
while b != "1" and b != "2" and b != "3":
print ("\n*alternativa inválida*\nDesejas: \n\n1) Continuar \n2) Voltar \n3) Sair\n")
b = input ()
if b == "3" or b == "2":
break
elif b == "1":
a = "2"
# A partir de Montante (M) e Juros (J):
elif b == "3":
print ("\n*para sair, entre com 's' \npara voltar ao Menu de opções, entre com 'm'* \n\nInforme-me:\n")
while True:
try:
a = input("Montante (M): ")
if a == "s" or a == "m":
break
a = float(a)
break
except ValueError or TypeError:
print ("Entre com um número!")
if a == "s" or a == "m":
break
while True:
try:
b = input ("Juros (J): ")
if b == "s" or b == "m":
break
b = float(b)
break
except ValueError or TypeError:
print ("Entre com um número!")
if b == "s" or b == "m":
break
# Cálculo/Resultado:
if a < 0 or b < 0:
print ("\nNão seja assim, amigo, inserir valores negativos neste contexto é bastante vergonhoso...")
elif b > a or b == 0:
print ("\nBom, vamos a uma dissertação matemática. Sendo M = J + C e todos os valores são números reais positivos, logicamente. \nEntão, necessariamente, J < M e C < M (exceto pelo caso em que J = 0 e/ou C = 0 e, então, J = M e/ou C = M, respectivamente. Mas isto é um absurdo em tratando-se de cálculo de juros!). Achou que eu ia deixar esta passar, né?")
else:
try:
print ("\nC =", a - b)
except OverflowError:
print ("\nPor favor, caro usuário. Não insira valores estrondosos, pois excede o limite de caracteres suportado ;)")
# Continuar/Voltar/Sair:
print ("\nDesejas: \n\n1) Continuar \n2) Voltar ao Menu de opções \n3) Sair\n")
b = input ()
while b != "1" and b != "2" and b != "3":
print ("\na*lternativa inválida*\nDesejas: \n\n1) Continuar \n2) Voltar \n3) Sair\n")
b = input ()
if b == "3" or b == "2":
break
elif b == "1":
a = "2"
# Taxa percentual (i):
while a == "3":
print ("\n*para sair, entre com 's' \npara voltar ao Menu de opções, entre com 'm'* \n\nInforme-me:\n")
while True:
try:
a = input ("Montante (M): ")
if a == "s" or a == "m":
break
a = float(a)
break
except ValueError or TypeError:
print ("Entre com um número!")
if a == "s" or a == "m":
break
while True:
try:
b = input ("Capital (C): ")
if b == "s" or b == "m":
break
b = float(b)
break
except ValueError or TypeError:
print ("Entre com un número!")
if b == "s" or b == "m":
break
while True:
try:
c = input ("Tempo em meses (t): ")
if c == "s" or c == "m":
break
c = float(c)
break
except ValueError or TypeError:
print ("Entre com um número!")
if c == "s" or c == "m":
break
# Cálculo/Resultado:
if a < 0 or b < 0 or a < 0:
print ("\nNão seja assim, amigo, inserir valores negativos neste contexto é vergonhoso...")
elif a == 0 and b == 0 and c == 0:
print ("\nOs valores possíveis para a sua taxa são infinitos!")
elif a == 0 and b == 0 and c > 0:
print ("\nhmmm... pelo visto... na sua aplicação... você perdeu", c, "mes(es) da sua vida...")
elif b > a or b == a:
print ("\nBom, vamos a uma dissertação matemática. Sendo M = J + C e todos os valores são números reais positivos, logicamente. \nEntão, necessariamente, J < M e C < M (exceto pelo caso em que J = 0 e/ou C = 0 e, então, J = M e/ou C = M, respectivamente. Mas isto é um absurdo em tratando-se de cálculo de juros!). Achou que eu ia deixar esta passar, né?")
elif c == 0 and b > 0 and a > 0:
print ("\nNão me faça rir! Dizer que o dinheiro rendeu instantâneamente é conversa para boi dormir...")
elif a > 0 and b == 0 or a > 0 and c == 0:
print ("\nNão me faça rir! Dizer que o dinheiro rendeu instantâneamente é conversa para boi dormir...")
elif b == 0 and c > 0 or b == 0 and c == 0:
print ("hmmm... Então quer dizer que você aplicou R$ 0.00... esperou por", c, "meses... E ainda esperou que o dinheiro fosse render alguma coisa!? E AGORA TÁ CHECANDO PRA VER SE NÃO FOI ENGANADO!...")
else:
try:
print ("\ni =", (a / b) ** (1 / c) - 1, "%")
except OverflowError:
print ("\nPor favor, caro usuário. Não insira valores estrondosos, pois excede o limite de caracteres suportado ;)")
# Continuar/Voltar/Sair
print ("\nDesejas: \n\n1) Continuar \n2) Voltar ao Menu de opções \n3) Sair\n")
b = input ()
while b != "1" and b != "2" and b != "3":
print ("\n*alternativa inválida*\n\nDesejas: \n\n1) Continuar \n2) Voltar \n3) Sair\n")
b = input ()
if b == "3" or b == "2":
break
elif b == "1":
a = "3"
# Tempo em meses (t)
while a == "4":
print ("\n*para sair, entre com 's' \npara voltar ao Menu de opções, entre com 'm'* \n\nInforme-me:\n")
while True:
try:
a = input ("Montante (M): ")
if a == "s" or a == "m":
break
a = float(a)
break
except ValueError or TypeError:
print ("Entre com um número!")
if a == "s" or a == "m":
break
while True:
try:
b = input ("Capital (C): ")
if b == "s" or b == "m":
break
else:
b = float(b)
break
except ValueError or TypeError:
print ("Entre com un número!")
if b == "s" or b == "m":
break
while True:
try:
c = input ("Taxa percentual (i): ")
if c == "s" or c == "m":
break
else:
c = float(c)
break
except ValueError or TypeError:
print ("Entre com um número!")
if c == "s" or a == "m":
break
# Cálculo/Resultado:
if a < 0 or b < 0 or c < 0:
print ("\nNão seja assim, amigo, inserir valores negativos neste contexto é vergonhoso...")
elif a == 0 and b == 0:
print ("\nOs possíveis valores para o tempo são infinitos!")
elif b > a or a == b:
print ("\nBom, vamos a uma dissertação matemática. Sendo M = J + C e todos os valores são números reais positivos, logicamente. \nEntão, necessariamente, J < M e C < M (exceto pelo caso em que J = 0 e/ou C = 0 e, então, J = M e/ou C = M, respectivamente. Mas isto é um absurdo em tratando-se de cálculo de juros!). Achou que eu ia deixar esta passar, né?")
elif b == 0 and a > 0 and c == 0:
print ("\nwtf, bro?! tá farmando dinheiro, é?")
elif c == 0 and b > 0 and a > 0:
print ("\nNão me faça rir! Dizer que o dinheiro rendeu instantâneamente é conversa para boi dormir... Perdão! Quase peguei no sono... Não, Pera!...")
elif b == 0 and a > 0:
print ("\nNão me faça rir! Investir R$ 0.00 e dizer que isso rendeu alguma coisa é conversa para boi dormir... Perdão! Quase peguei no sono... Não, Pera!...")
else:
a /= b
b = 0
c += 1
n = c
while c <= a:
b += 1
c *= n
if c % a != 0:
b += 1
print ("\nt ≅", b, "mes(es) \n\nPerdão pelo valor aproximado... Ainda não consegui fazer o programa resolver equações exponenciais de forma perfeita...")
# Continuar/Voltar/Sair
print ("\nDesejas: \n\n1) Continuar \n2) Voltar ao Menu de opções \n3) Sair\n")
b = input ()
while b != "1" and b != "2" and b != "3":
print ("\na*lternativa inválida*\nDesejas: \n\n1) Continuar \n2) Voltar \n3) Sair\n")
b = input ()
if b == "3" or b == "2":
break
elif b == "1":
a = "4"
print ("\nAdeus!")