Con la ripetizione puoi costringere l’utente ad inserire dati corretti per l’esercizio.
I dati di un trapezio isoscele devono essere positivi!
import math # sqrt()
base1 = 0 # Valori errati per forzare i 3 while successivi
base2 = 0
altezza = 0
while(base1 <= 0): # Continua se...
base1 = float(input("Base 1 > 0 = "))
while(base2 <= 0) or (base2 >= base1): # Continua se...
base2 = float(input("0 < Base 2 < Base 1 = "))
while(altezza <= 0): # Continua se...
altezza = float(input("Altezza > 0 = "))
x = (base1-base2)/2 # ELABORAZIONE
lato = math.sqrt(x**2+altezza**2)
perimetro = base1+base2+2*lato
area = (base1+base2)*altezza/2
print("Perimetro = %10.4f" %(perimetro)) # OUTPUT
print("Area = %10.4f" %(area ))
Un messaggio più esplicito per la seconda base.
...
msg = "0 < Base 2 < " + str(base1) + " = "
while(base2 <= 0) or (base2 >= base1):
base2 = float(input(msg))
...
Compare l’operatore di concatenazione di stringhe (+)