Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- import time
- import os
- import sympy
- print('\n\n Bem-Vindo a Calculadora v1.12')
- print(' By LeFox')
- time.sleep(2)
- while True:
- os.system('cls')
- print(
- """\nn - Novidades! c - Créditos a - Ajuda ou Sujestão/Crítica
- O que você deseja usar?
- 1 - Calculadora Padrão
- 2 - Tábuada
- 3 - Raízes
- 4 - Equações de 1° Grau
- 5 - Equações de 2º Grau
- 6 - Regra de Três Simples
- 7 - Seno, Cosseno e Tangente
- 8 - Calcular a Hipotenusa
- 9 - Porcentagens
- 0 - Calcular Médias
- t - Analizar Triangulos (Bonus)\n\n
- s - Sair\n\n""")
- inicio = input('>>> ').lower()
- if inicio == '1':
- # Calculadora padrão
- while True:
- print('r - Voltar')
- r = []
- os.system('cls')
- print('\n\nCalculadora padrão\n\n')
- print('Digite "=" para concluir o cálculo\n')
- soma = 0
- mult = 1
- subt = []
- divi = []
- rest = 0
- valor = []
- cont = 0
- while True:
- n = input('>>> ').lower()
- if n == 'r':
- r.append('r')
- break
- if not n.isnumeric():
- if not n == '=':
- print('Digite apenas números por favor')
- time.sleep(2)
- continue
- if not n == '=':
- n = float(n)
- soma += n
- mult *= n
- valor.append(n)
- cont += 1
- if cont == 1:
- continue
- elif cont > 1:
- subt = float(valor[cont - 2]) - n
- if not n == 0:
- divi = float(valor[cont - 2]) / n
- rest = float(valor[cont - 2]) % n
- else:
- continue
- elif n == '=':
- os.system('cls')
- print('\nEscolha a operação:\n'
- '+ - * /\n\n')
- op = input('>>> ')
- if op == '+':
- print('\n= ', soma)
- break
- elif op == '-':
- print('\n= ', subt)
- break
- elif op == '*':
- print('\n= ', mult)
- break
- elif op == '/':
- if divi == 0 or divi == [] and rest == 0:
- print('0 Não é divisível')
- else:
- print(f'\n= {divi}\n ({rest})')
- break
- else:
- if divi == 0 or divi == [] and rest == 0:
- divi = '0 não pode ser dividido'
- rest = 'Vazio'
- print('\nSoma: {}\nSubtração: {}\nMultiplicação: {}\nDivisão: {}\nResto: {}'.format(soma, subt, mult, divi, rest))
- else:
- print('\nSoma: {}\nSubtração: {}\nMultiplicação: {}\nDivisão: {}\nResto: {}'.format(soma, subt, mult, divi, rest))
- break
- if 'r' in r:
- break
- voltar1 = input('\nPara continuar precione ENTER, para retornar ao inicio digite "r": ').lower()
- if voltar1 == 'r':
- break
- else:
- continue
- elif inicio == '2':
- # Tabuada
- while True:
- os.system('cls')
- print('r - Voltar')
- print('\n\nTabúada\n\n')
- mult1 = input('Digite a base da tabuada que deseja(digite apenas o número)\n>>> ').lower()
- mult2 = input('Digite quantas vezes você quer multiplicar essa base\n>>> ').lower()
- if mult1 == 'r' or mult2 == 'r':
- break
- if mult1.isnumeric() and mult2.isnumeric():
- mult1 = int(float(mult1))
- mult2 = int(float(mult2))
- if mult1 == 0 or mult2 == 0:
- print('\n0')
- else:
- print()
- mult3 = mult2 * mult1
- for a in range(mult1, mult3 + 1, mult1):
- print(a)
- else:
- print('\nDigite algo calculável por favor\n')
- time.sleep(2)
- continue
- voltar6 = input('\nPara continuar precione ENTER, para retornar ao inicio digite "r": ').lower()
- if voltar6 == 'r':
- break
- else:
- continue
- elif inicio == '3':
- # Calcular Raízes
- while True:
- os.system('cls')
- print('r - Voltar')
- print('\n\nRaízes\n\n')
- print('Digite um número para calcular a raiz')
- print('Apenas números inteiros são permitidos!')
- print()
- raiz = input('Número na raiz: √').lower()
- raiz1 = input('Base da raiz: ').lower()
- if raiz == 'r' or raiz == 'r':
- break
- if raiz.isnumeric() and raiz1.isnumeric():
- raiz = int(float(raiz))
- raiz1 = int(float(raiz1))
- if raiz == 0 or raiz1 == 0:
- print('\nNão existe raiz de 0\n')
- time.sleep(2)
- continue
- else:
- raiz3 = raiz ** (1 / raiz1)
- print()
- print('{:.2f}'.format(raiz3))
- print()
- else:
- print('\nDigite algo calculável por favor\n')
- time.sleep(2)
- continue
- voltar2 = input('Para continuar precione ENTER, para retornar ao inicio digite "r": ').lower()
- if voltar2 == 'r':
- break
- else:
- continue
- elif inicio == '5':
- # Calcular Equações de 2º Grau
- while True:
- os.system('cls')
- print('r - Voltar')
- print('\n\nEquações de 2º Grau\n\n')
- print('Base: x² x n = 0\n')
- a = input('x² >>> ').lower()
- b = input('x >>> ').lower()
- c = input('n >>> ').lower()
- if a == 'r' or b == 'r' or c == 'r':
- break
- if a.isnumeric() and b.isnumeric() and c.isnumeric():
- a = int(a)
- b = int(b)
- c = int(c)
- if a == 0 or b == 0 or c == 0:
- print('\nNão é possivél calcular com 0\n')
- time.sleep(2)
- continue
- else:
- print()
- print('Usando a fórmula de bhaskara:\n'
- ' -b +- √b²-4*a*c\n'
- 'X = -----------------\n'
- ' 2*a')
- print()
- delta = (b ** 2) - (4 * a * c)
- raiz = math.sqrt(delta)
- print('Delta = ({})² -4 * {} * {} = √{:.0f} >>> {:.0f}'.format(b, a, c, delta, raiz))
- print()
- x1 = (-b + raiz) / (2 * a)
- x2 = (-b - raiz) / (2 * a)
- print(' {} + {}\n'
- 'X = --------- = {} \n'
- ' 2*{}'.format(b, raiz, x1, a))
- print()
- print(' {} + {}\n'
- 'X = --------- = {} \n'
- ' 2*{}'.format(b, raiz, x2, a))
- print()
- else:
- print('\nDigite algo calculável por favor\n')
- time.sleep(2)
- continue
- voltar3 = input('Para continuar precione ENTER, para retornar ao inicio digite "r": ').lower()
- if voltar3 == 'r':
- break
- else:
- continue
- if inicio == '6':
- # Regra de Três Simples
- while True:
- os.system('cls')
- print('r - Retornar\n\n'
- 'Regra de Três Simples')
- print('''\nDigite os números nas variaveis para calcular\n\n
- [ a ][ b ]
- [ c ][ X ]\n''')
- a = input('a: ')
- b = input('b: ')
- c = input('c: ')
- if a.isnumeric() and b.isnumeric() and c.isnumeric():
- a = float(a)
- b = float(b)
- c = float(c)
- mult = c * b
- divi = mult / a
- print(f'\nX = {divi}')
- else:
- print('Digite algo calculável, por favor!')
- time.sleep(2)
- voltar = input('\nPara continuar precione ENTER, para retornar ao inicio digite "r": ').lower()
- if voltar == 'r':
- break
- else:
- continue
- elif inicio == '4':
- # Equações de 1° Grau
- while True:
- os.system('cls')
- print('r - Voltar')
- sympy.init_printing(pretty_print=True)
- x = sympy.Symbol('x')
- y = sympy.Function('y')
- n = input('\nDigite a sua equação abaixo:\n\n'
- '>>> ')
- rep = n.replace('=', ',')
- a = f'Eq({rep})'
- solution = sympy.solve(a, x)
- print(f'\nSolução:\n{solution}\n\n')
- voltar = input('Para continuar precione ENTER, para retornar ao inicio digite "r": ').lower()
- if voltar == 'r':
- break
- else:
- continue
- elif inicio == 't':
- # Analizar Triângulos
- while True:
- os.system('cls')
- # Usando a formula de Heron
- print('r - Voltar')
- print('\n\nAnalizador de Triâgulos\n\n')
- print('Diga os angulôs que direi se forma ou não um triangulo\n')
- a = input('Reta 1: ').lower()
- b = input('Reta 2: ').lower()
- c = input('Reta 3: ').lower()
- if a == 'r' or b == 'r' or c == 'r':
- break
- if a.isnumeric() and b.isnumeric() and c.isnumeric():
- a = int(float(a))
- b = int(float(b))
- c = int(float(c))
- if a == 0 or b == 0 or c == 0:
- print('Não é possivel formar segmentos com 0\n')
- time.sleep(2)
- continue
- else:
- if a < b + c and b < a + c and c < a + b:
- print()
- print('Os segmentos formam um Triângulo')
- if a == b == c:
- print('O triângulo é Equilátero\n')
- elif a == b or a == c or b == a or b == c or c == b or c == a:
- print('O triângulo é Isóceles\n')
- elif a > b or a > c or b > a or b > c or c > b or c > a:
- print('O triângulo é Escaleno\n')
- else:
- print('Os segmentos não formam um triangulo\n')
- else:
- print('\nDigite algo calculável por favor\n')
- time.sleep(2)
- continue
- voltar4 = input('Para continuar precione ENTER, para retornar ao inicio digite "r": ').lower()
- if voltar4 == 'r':
- break
- else:
- continue
- elif inicio == '7':
- # Seno Cosseno e Tangente
- while True:
- os.system('cls')
- print('r - Voltar')
- print('\nSeno, Cosseno e Tangente\n')
- iniciotri = input('Qual a operação que deseja fazer?\n\n'
- '1 - Achar um dos lados do triangulo\n'
- '2 - Achar um dos angulos do triangulo\n\n>>> ')
- if iniciotri == '1':
- os.system('cls')
- print('r - Voltar\n\nDigite o que se pede abaixo\n')
- num = input('Digite o número: ').lower()
- ang = input('Digite o ângulo: ').lower()
- if num == 'r' or ang == 'r':
- break
- if num.isnumeric() and ang.isnumeric():
- num = int(num)
- ang = int(ang)
- if num == 0 or ang == 0:
- print('Não é possivel calcular ângulos com 0')
- time.sleep(2)
- continue
- else:
- print(
- '\n\nComo é calculado:'
- '\n\n'
- ' cateto oposto a\n'
- 'sen = --------------- = ---\n'
- ' hipotenusa c\n'
- '\n\n'
- ' cateto adjacente b\n'
- 'cos = ------------------ = ---\n'
- ' hipotenusa c\n'
- '\n\n'
- ' cateto oposto a\n'
- 'tan = ------------------ = ---\n'
- ' cateto adjacente b\n'
- )
- sin = num * math.sin(math.radians(ang))
- cos = num * math.cos(math.radians(ang))
- tan = num * math.tan(math.radians(ang))
- print('seno: {:.2f}\n'
- 'cosseno: {:.2f}\n'
- 'tangente: {:.2f}\n\n'.format(sin, cos, tan))
- voltar7 = input('Para continuar precione ENTER, para retornar ao inicio digite "r": ').lower()
- if voltar7 == 'r':
- break
- else:
- continue
- else:
- print('\nDigite algo calculável por favor\n')
- time.sleep(2)
- continue
- elif iniciotri == '2':
- os.system('cls')
- print('r - Voltar\n\nDigite o que se pede abaixo\n')
- co = input('Digite o cateto oposto: ').lower()
- ca = input('Digite o cateto adjacente: ').lower()
- hi = input('Digite a Hipotenusa: ').lower()
- if ca == 'r' or co == 'r' or hi == 'r':
- break
- elif ca.isnumeric() and ca.isnumeric() and hi.isnumeric():
- co = int(co)
- ca = int(ca)
- hi = int(hi)
- if ca == 0 or co == 0 or hi == 0:
- print('\nNão é possivel calcular com 0')
- time.sleep(2)
- else:
- print(
- '\n\nComo é calculado:'
- '\n\n'
- ' cateto oposto a\n'
- 'sen = --------------- = ---\n'
- ' hipotenusa c\n'
- '\n\n'
- ' cateto adjacente b\n'
- 'cos = ------------------ = ---\n'
- ' hipotenusa c\n'
- '\n\n'
- ' cateto oposto a\n'
- 'tan = ------------------ = ---\n'
- ' cateto adjacente b\n'
- )
- print(f'seno: {co / hi}\n'
- f'cosseno: {ca / hi}\n'
- f'tangente: {co / ca}\n')
- voltar7 = input('Para continuar precione ENTER, para retornar ao inicio digite "r": ').lower()
- if voltar7 == 'r':
- break
- else:
- continue
- elif inicio == '8':
- # Calcular a Hipotenusa
- while True:
- os.system('cls')
- print('r - Voltar')
- print('\n\nHipotenusa\n\n')
- co = input('Cateto oposto: ').lower()
- ca = input('Cateto adjacente: ').lower()
- if co == 'r' or ca == 'r':
- break
- if co.isnumeric() and ca.isnumeric():
- co = int(co)
- ca = int(ca)
- if co == 0 or ca == 0:
- print('Não é possivel calcular ângulos com 0')
- time.sleep(2)
- continue
- else:
- hipotenusa = math.sqrt((ca ** 2) + (co ** 2))
- print()
- print('A Hipotenusa é: {:.2f}'.format(hipotenusa))
- print()
- else:
- print('\nDigite algo calculável por favor\n')
- time.sleep(2)
- continue
- voltar5 = input('Para continuar precione ENTER, para retornar ao inicio digite "r": ').lower()
- if voltar5 == 'r':
- break
- else:
- continue
- elif inicio == '9':
- # Porcentagens
- while True:
- os.system('cls')
- print('\nPorcentagens\n\n\n'
- 'Você deseja:\n\n'
- '1 - Tranformar % em números\n'
- '2 - Tranformar números em %\n\n'
- 'r - Retornar\n')
- ir = input('>>> ').lower()
- if ir and not 0:
- if ir == '1':
- while True:
- # Tranformar % em números
- os.system('cls')
- print('r - Voltar')
- print('\n\nTranformar % em números\n\n')
- print('Digite o número original e também quantos % você\n'
- 'quer transformar em decimal\n')
- porc1 = input('Número: ').lower()
- porc2 = input('%: ').lower()
- if porc1 == 'r' or porc2 == 'r':
- break
- if porc1.isnumeric() and porc2.isnumeric():
- if porc1 and porc2 and not '0':
- print('Não é possivel calcular com 0')
- time.sleep(2)
- continue
- else:
- porc1 = int(porc1)
- porc2 = int(porc2)
- porc3 = (porc1 * porc2) / 100
- print('\n'
- '{}% de {} = {}\n'.format(porc2, porc1, porc3))
- else:
- print('\nDigite algo calculável por favor\n')
- time.sleep(2)
- continue
- voltar8 = input('Para continuar precione ENTER, para retornar ao inicio digite "r": ').lower()
- if voltar8 == 'r':
- break
- else:
- continue
- elif ir == '2':
- while True:
- # Tranformar números em %
- os.system('cls')
- print('r - Voltar')
- print('\n\nTranformar números em %\n\n')
- print('Digite o números original e um segundo número para saber\n'
- 'quantos % vale o segundo número de acorco com o primeiro\n')
- tran1 = input('Original: ').lower()
- tran2 = input('Decimal: ').lower()
- if tran1 == 'r' or tran2 == 'r':
- break
- if tran1.isnumeric() and tran2.isnumeric():
- if tran1 and tran2 and not '0':
- print('Não é possivel calcular com 0')
- time.sleep(2)
- continue
- else:
- tran1 = int(tran1)
- tran2 = int(tran2)
- tran3 = (tran2 / tran1) * 100
- print('\n'
- '{} de {} = {}%'.format(tran2, tran1, tran3))
- else:
- print('\nDigite algo calculável por favor\n')
- time.sleep(2)
- continue
- voltar9 = input('\nPara continuar precione ENTER, para retornar ao inicio digite "r": ').lower()
- if voltar9 == 'r':
- break
- else:
- continue
- elif ir == 'r':
- break
- else:
- print('Número Inválido.\n'
- 'Digite algum número listado!')
- time.sleep(2)
- else:
- break
- elif inicio == '0':
- # calculador de médias
- while True:
- os.system('cls')
- r = []
- print('r - Retornar\n\n'
- 'Calcular médias\n\n')
- print('Digite "=" para concluir a operação\n')
- soma = 0
- cont = 0
- while True:
- n = input('>>> ')
- if n == 'r':
- r.append('r')
- break
- if not n.isnumeric():
- if not n == '=':
- print('Digite apenas números por favor')
- time.sleep(2)
- continue
- if not n == '=':
- n = int(n)
- soma += n
- cont += 1
- continue
- elif n == '=':
- media = soma / cont
- print('Média: {}'.format(media))
- break
- if 'r' in r:
- break
- voltar = input('Para continuar precione ENTER, para retornar ao inicio digite "r": ')
- if voltar == 'r':
- break
- else:
- continue
- elif inicio == 'fibonacci' or inicio == 'f':
- # Sequencia de Fibonacci
- # Segredo
- while True:
- os.system('cls')
- print('r - Voltar')
- print('\nSequencia de fibonacci\n\n'
- 'Digite qualquer número inteiro para ver a sequência\n')
- n = input('>>> ').lower()
- if n == 'r':
- break
- if n.isnumeric():
- n = int(n)
- if n == 0:
- print('Não é possivel calcular com 0')
- time.sleep(2)
- continue
- else:
- form1 = (((1 + math.sqrt(5)) / 2) ** n) - (((1 - math.sqrt(5)) / 2) ** n)
- fn = form1 / math.sqrt(5)
- print('{:.2f}'.format(fn))
- else:
- print('\nDigite algo calculável por favor\n')
- time.sleep(2)
- continue
- voltarf = input('\nPara continuar precione ENTER, para retornar ao inicio digite "r": ').lower()
- if voltarf == 'r':
- break
- else:
- continue
- elif inicio == 'c':
- # Créditos
- os.system('cls')
- print()
- print('\nCréditos\n\n')
- print('Essa Calculadora foi feita por LeFox\n'
- 'com a ajuda de Raissonrai vulgo "RaiRai"\n\n'
- 'Esse é meu nick na internet, eu uso praticamente em\n'
- 'tudo esse nick desta maneira\n\n'
- 'Obrigado por estar usando, espero que lhe ajude em suas tarefas!\n\n')
- input('Aperte ENTER para voltar ao inicio.')
- elif inicio == 'a':
- # Ajuda
- os.system('cls')
- print('\n\nAjuda, Sugestão e Crítica\n\n')
- print('Você pode me contatar pelas mídias sociais\n'
- '\n'
- 'Discord: LeFox#7618\n'
- 'Xbox Live: Raposa7618\n'
- 'Outlook: matheuslemes2004@outlook.com\n'
- 'Gmail: matheussoareslemes2004@gmail.com\n\n'
- 'Obrigado pela compreenção.\n\n')
- input('Aperte ENTER para voltar')
- elif inicio == 'n':
- # Novidades
- os.system('cls')
- print('\n\nNovidades!\n\n')
- print('NOVIDADES DA VERSÃO 1.12!!\n\n'
- '1. Volta da analista de triangulos\n'
- '2. Nova calculadora de sen, cos, tan\n\n')
- input('Aperte ENTER para voltar')
- elif inicio == 's':
- # Sair
- break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement