Domanda Calcolatrice in PY

Stato
Discussione chiusa ad ulteriori risposte.

.Gemini.

Utente Gold
29 Settembre 2011
825
18
207
302
Ultima modifica:
Sto da poco studiando il python e per esercitarmi ho creato questa calcolatrice, il mio primo programma!

Codice:
import math




NO=0
SI=1
Addizione=2
Sottrazione=3
Moltiplicazione=4
Divisione=5
RadiceQuadrata=6
ElevamentoAPotenza=7




print "Calcolatrice in PY by Chaos"
print
print "Con questa calcolatrice potrai eseguire:"
print
print "-Addizione"
print "-Sottrazione"
print "-Moltiplicazione"
print "-Divisione"
print "-RadiceQuadrata"
print "-ElevamentoAPotenza"
print




inizio=input("Vuoi iniziare?SI/NO(Se vuoi uscire digita NO)=")
print




while inizio==1:
 scelta = input ("Che cosa vuoi fare?")
 if scelta==2:
  x=input ("Primo numero =")
  y=input ("Secondo numero =")
  print x,"+",y,"=",x+y
  print
 elif scelta==3:
  x=input ("Primo numero =")
  y=input ("Secondo numero =")
  print x,"-",y,"=",x-y
  print
 elif scelta==4:
  x=input ("Primo numero =")
  y=input ("Secondo numero =")
  print x,"x",y,"=",x*y
  print
 elif scelta==5:
  x=float(input ("Primo numero ="))
  y=float(input ("Secondo numero ="))
  print int(x),":",int(y),"=",x/y
  print
 elif scelta==6:
  x=input ("Numero =")
  print "Radice quadrata di",x,"=",math.sqrt(x)
  print
 elif scelta==7:
  x=input ("Numero da elevare a potenza =")
  y=input ("Esponente =")
  print x,"alla",y,"=",x**y
  print

Ditemi che ne pensate, accetto critiche COSTRUTTIVE :D
 
Beh, stando sul tuo modello:

- al posto di un while ("MENTRE"), metterei un if ("SE"), elif e else.

- alla fine metterei
Codice:
else: 
                     print "Inserisci un numero compreso tra 2 e 7"

Questi due accorgimenti fanno si che, se per esempio digito 8, il programma non crashi, oltre ad essere più eleganti.


Poi ti consiglio di creare la funzione RigaVuota, dato che molte volte usi print per saltare una riga.
Il codice è così:
Codice:
def RIgaVuota ():
            return print

Oltretutto mi sembra molto incasinato il codice e potresti semplificarlo e accorciarlo usando funzioni.
Per l'addizione per esempio:
Codice:
def Add (n1, n2):
return n1 + n2

------------------------------------

[/FONT][/SIZE][FONT=courier new]if scelta == 2:[/FONT]
[FONT=courier new] x=input ("Primo numero =")  y=input ("Secondo numero =")
Add (x, y)[/FONT][SIZE=2][FONT=courier new]

[/FONT][/SIZE]


Oppure puoi far chiedere gli addendi nella funzione stessa...

Se infine sei già arrivato ai dizionari puoi utilizzarlo e fare la calcolatrice in 4 righe ;)

Spero di averti aiutato... Se hai dubbi chiedi pure :)
 
  • Mi piace
Reazioni: Cracker1992
Ultima modifica:
Il primo codice che hai messo non capisco a che servo.. cioè, per avviare un'operazione devo scrivere "Addizione", "Sottrazione" ecc e non i numeri...
La definizione per la riga vuota serve a poco... un print è molto più comodo e non devi aggiungere le righe per la definizione... (e poi se metti un print e un RigaVuota() cambia poco), per le defenizioni per le addizioni è la stessa cosa, creo righe inutili per la definizione e scrivere Add(x, y) o print x,"-",y,"=",x-y è circa la stessa cosa (anzi col tuo ti complichi la vita perchè devi scrivere altre cose e devi mettere sempre un print per stampare l'operazione)...
 
Stato
Discussione chiusa ad ulteriori risposte.