Enviado em 24/02/2020 - 00:55h
Então pessoal, sai do java e estou "iniciando" no Python.
Queria tirar uma dúvida sobre a redução de 'IFs' no código, sei também que em alguns casos não é possível.
Estou criando uma calculadora e, nela faço a utilização de 5 'IFs', queria saber se há alguma forma de reduzi-los.
Código:
print("As sentenças podem ser escritas em uma única linha.")
print("Por exemplo: 2*2 ou 2 * 2\n")
r = 0
#Converte a lista para float
def con(n1, n2):
n1 = float(n1)
n2 = float(n2)
return n1, n2
while True:
#Pegando valor e separando-o
try:
num = input('>>> ')
if "+" in num:
pegar = num.split('+')
valor = con(pegar[0], pegar[1])
nu1, nu2 = valor
print(nu1 + nu2)
elif "-" in num:
pegar = num.split('-')
valor = con(pegar[0], pegar[1])
nu1, nu2 = valor
print(nu1 - nu2)
if "/" in num:
pegar = num.split('/')
valor = con(pegar[0], pegar[1])
nu1, nu2 = valor
print(nu1 / nu2)
elif "*" in num:
pegar = num.split('*')
valor = con(pegar[0], pegar[1])
nu1, nu2 = valor
print(nu1 * nu2)
if "^" in num:
pegar = num.split('^')
valor = con(pegar[0], pegar[1])
nu1, nu2 = valor
print(nu1 ** nu2)
except ValueError:
print("Por favor, digite os valores de forma correta.")
Queria tirar uma dúvida sobre a redução de 'IFs' no código, sei também que em alguns casos não é possível.
Estou criando uma calculadora e, nela faço a utilização de 5 'IFs', queria saber se há alguma forma de reduzi-los.
Código:
print("As sentenças podem ser escritas em uma única linha.")
print("Por exemplo: 2*2 ou 2 * 2\n")
r = 0
#Converte a lista para float
def con(n1, n2):
n1 = float(n1)
n2 = float(n2)
return n1, n2
while True:
#Pegando valor e separando-o
try:
num = input('>>> ')
if "+" in num:
pegar = num.split('+')
valor = con(pegar[0], pegar[1])
nu1, nu2 = valor
print(nu1 + nu2)
elif "-" in num:
pegar = num.split('-')
valor = con(pegar[0], pegar[1])
nu1, nu2 = valor
print(nu1 - nu2)
if "/" in num:
pegar = num.split('/')
valor = con(pegar[0], pegar[1])
nu1, nu2 = valor
print(nu1 / nu2)
elif "*" in num:
pegar = num.split('*')
valor = con(pegar[0], pegar[1])
nu1, nu2 = valor
print(nu1 * nu2)
if "^" in num:
pegar = num.split('^')
valor = con(pegar[0], pegar[1])
nu1, nu2 = valor
print(nu1 ** nu2)
except ValueError:
print("Por favor, digite os valores de forma correta.")