1
resposta

[Projeto] exercício 11

eu estava tendo problemas para identificar resultados com zeros, a primeira parte é uma peneira de zero ou abaixo de zero, logo em baixo, o segundo if é pra pegar se o t1 é menos ou igual zero, sabendo q o t1 não é zero, sabemos que pode ser ou t2 ou t3, então eu lembrei, "na multiplicação qualquer numero multiplicado por zero é zero" e "a ordem dos fatores não alteram o produto", então no elif, botei t2 vezes t3, se o resultado der 0 ou abaixo de zero o programa pega, e se numa divisão tiver um positivo e um negativo vai o resultado vai ser negativo, então pega tmb e aparece invalido, porém tem um problema, menos com menos é mais, massssssss, a solução é fácil:

elif (t2 * t3 )<= 0:
print('invalido')
elif (t2 * t3) >= 0:
print('invalido também')

eu botei um outro elif em baixo, caso o de cima seja FALSE, o de baixo executa, se o numero for = ou maior q 0 vai dar TRUE, pq sabemos que foi botado dois negativos no t2 e no t3 e isso não afeta todo o código pq essa parte ta ligada na peneira dos 0. segue o código:

t1 = int(input('digite quantos cm tem o primeiro lado do triangulo:'))
t2 = int(input('digite quantos cm tem o segundo lado do triangulo:'))
t3 = int(input('digite quantos cm tem o terceiro lado do triangulo:'))

if t1 <= 0 or t2 <= 0 or t3 <= 0:
if t1 <= 0:
print('valor invalido')
elif (t2 * t3 )<= 0:
print('invalido')
elif (t2 * t3) >= 0:
print('invalido também')

else:
if t1 == t2 == t3:
print('triangulo equilatero')
elif t1 != t2 != t3:
print('escaleno')
else:
print('Isósceles')

1 resposta

Oi, Wesley! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Gostei do seu raciocínio ao usar propriedades da multiplicação para identificar valores inválidos, isso mostra pensamento lógico e tentativa de otimização.

Continue assim!

Uma dica interessante para o futuro é usar a função all() para validar vários valores de uma vez. Veja este exemplo:


t1 = int(input('digite o primeiro lado: '))
t2 = int(input('digite o segundo lado: '))
t3 = int(input('digite o terceiro lado: '))

if not all([t1 > 0, t2 > 0, t3 > 0]):
    print('valor invalido')
else:
    print('valores validos')

Nesse código, all() verifica se todos os valores são maiores que zero. Se algum for invalido, o programa já identifica rapidamente.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!