Ho di recente inziato a imparare Python, oggi ho deciso di salvarmi gli esercizi che faccio però non so perchè quando lo eseguo su PyCharm esegue tutto il programma, quando invece lo apro in .py si chiude a metà.

Il codice è il seguente

import math
print("Inserisci i valori di un'equazione del tipo AX^2+BX+C ")
A=float(input("Inserisci A: "))
B=float(input("Inserisci B: "))
C=float(input("Inserisci C: "))

delta=pow(B,2)-4*A*C

if delta==0:
    print("La soluzione ha 1 soluzione")
    x=(-B-delta)/2*A
    print("La soluzione è: "+str(x))
elif delta>0:
    print("Le soluzioni sono 2")
    x1 = (-B - math.sqrt(delta)) / 2 * A
    x2 = (-B + math.sqrt(delta)) / 2 * A
    print("x1 è: "+str(x1))
    print("x2 è: " + str(x2))
else:
    print("L'equazione non ha soluzioni")

    Ant ti ho spostato in programmazione 🙂

    Pycharm non lo uso, da quanto vedo comunque il codice è corretto. Il diverso problema che riscontri (si chiude a metà? Intendi dire che si apre e chiude oppure che a metà esecuzione, ovvero dopo richiedere l'input, va in crash?) potrebbe essere a livello di librerie (quindi nell'ambiente integrato riconosce la libreria math, che al di fuori invece non è installata correttamente, è un'ipotesi).
    Volendo lo potresti anche verificare (pip list ed eventualmente pip install python-math).

    Ti consiglio comunque di riscrivere il codice in modo "più standard", intendo dire che per le funzioni che hai usato non è necessario includere una libreria extra (math, NumPy o altro che sia) ma usi gli operatori standard di Python. Ovvero:

    • delta=B*B-4*A*C al posto di usare pow()
    • x1 = (-B - delta**0.5) / (2*A) al posto di usare sqrt()

    Prova a renderlo quindi più standard come codice e poi vedi se il problema era dovuto a questo. Altrimenti prova anche un programma di esempio, anche un banale Hello World per vedere se la console si chiude da sola (e quindi è un bug, problema relativo a quella) o se era dovuto solo al precedente, a causa es. della libreria.

    Powered by: FreeFlarum.
    (remove this footer)