msoliver
(usa Debian)
Enviado em 24/02/2020 - 19:56h
Jhevison escreveu:
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.")
Boa noite Jhevison.
Não conheço o Python, mas, faria a logica diferente.
Exemplo:
Eliminando os números da entrada, temos a operação:
+, -, /, * e ^
No bash:
read -p "Entre com a operação matemática: " -a input
13*2
echo "${input[@]//[0-9]}"
Ou
sed 's/[0-9]//g' <<< "${input[@]}"
* #Operação
Desse modo , são eliminados os condicionais, que servem exclusivamente,
para identificar a "operação".
______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________