Forum >> Principianti >> Invalid syntax, non trovo il problema!

Pagina: 1

Salve a tutti,
sono un principiante che si affaccia per la prima volta ai linguaggi di programmazione, e per fare ciò ho deciso di scegliere python vista la versatilità e la potenza del linguaggio.

Mentre andavo a scrivere uno dei primi programmi (determinare se 3 lati potessero dare un triangolo e di che tipo potesse essere), mi sono imbattuto nell'errore "Invalid syntax" che non sono riuscito a risolvere.

Di seguito vi lascio il programma ( se cosi lo si possa chiamare).
import math
from math import *

a=input("Inserisci un intero per il lato a: ")
if a.isdecimal() and a!="0":
    print("il valore inserito per a è valido")
    a=int(a)
else:
    print("il valore non è valido")

b=input("Inserisci un intero per il lato b: ")
if b.isdecimal() and b!="0":
    print("il valore inserito per b è valido")
    b=int(b)
else:
    print("il valore non è valido")

c=input("Inserisci un intero per il lato c: ")
if c.isdecimal() and c!="0":
    print("il valore inserito per c è valido")
    c=int(c)
else:
    print("il valore non è valido")

if a+b>c and b+c>a and a+c>b:
    print("i tre lati formano un triangolo")
else:
    print ("I tre lati nonpossono formare un triangolo")

if a==b and a==c and b==c:
    print("il triangolo è equilatero")
    else:
        if a==b or a==c or b==c:
            print ("il triangolo è isoscele")
            else:
                if (a==b and b==c/(sqrt(2))) or (a==c and c==b/(sqrt(2))) or (c==b and b==a/(sqrt(2))):
                    print ("il triangolo è rettangolo isoscele")
                    else:
                        if (a!=b and c=sqrt((a**2)+(b**2))) or (a!=c and b=sqrt((a**2)+(c**2))) or (c!=b and a=sqrt((c**2)+(b**2))):
                            print ("E' un tringolo rettangolo")



Ringrazio anticipatamente per l'aiuto.



--- Ultima modifica di ChemicalSoul in data 2016-09-04 23:13:05 ---
Ciao caro, prima di tutto benvenuto nel magico mondo di Python.

Ti lascio alcune considerazioni sparse:

1. Prima di tutto dovresti postare l'intero errore per facilitare chi vuole aiutarti a capire velocemente il problema.

2. Hai inserito al codifica del file, ad esempio:
# -*- coding: utf-8 -*-

3. Non so se è un'errata formattazione del tuo codice, ma ci sono un sacco di else non allineati correttamente con i corrispondenti if.

4. Nella riga:
if (a!=b and c=sqrt((a**2)+(b**2))) or (a!=c and b=sqrt((a**2)+(c**2))) or (c!=b and a=sqrt((c**2)+(b**2)))
stai sbagliando la sintassi, perché non stai confrontando il valore, ma cercando di attribuirlo, cosa che non puoi fare in presenza di un'istruzione condizionale (if).

Questo è quello che vedo ad una veloce occhiata e con parecchio vino in corpo, quindi potrei anche avere saltato qualcosa.

Cya
Ciao, grazie mille della risposta.
Ho risolto eliminando il penultimo if e facendo tutte le correzioni da te suggerite.

Grazie mille nuovamente della pronta risposta.


Pagina: 1



Esegui il login per scrivere una risposta.