Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,965

    Python, celsius - farhenheit

    Volevo realizzare un programma in python di conversione di gradi fahreneheit in celsius e viceversa. Solamente che ho incontrato un problema. Quando l'utente digita 1] o 2] per la scelta dell'esecuzione, alla fine mi salta le condizioni IF e mi porta all'uscita del programma.
    Premetto che il python lo conosco da stamattina e ho letto solamente qualche esempio - in pochi minuti - della guida. Per il resto non ho letto praticamente nulla, perche' ormai i linguaggi sono tutti uguali

    codice:
    # PROGRAMMA DI CONVERSIONE GRADI CELSIUS-FAHRENHEIT E VICEVERSA
    choos = 0
    def scelta(choos):
                     print "1] Conversione Celsius in Fahrenheit"
                     print "2] Conversione Fahrenheit in Celsius"
                     choos = input()
    scelta(choos)
    
    celsius = 0
    cel = 0 
    ch = 0
    ch2 = 0
    def celtofa(celsius,cel):
                            print "Digita i gradi Celsius"
                            celsius = input("")
                            cel = celsius * 9
                            cel = cel / 5
                            cel = cel + 32
                            print celsius, " gradi celsius equivalgono a "
                            print cel, " gradi farhenheit"
    
     
    def fatocel(fahr, fa):
                         print "Digita gradi Fahrenheit"
                         fahr = input("")
                         fa = fahr - 32
                         fa = fa / 9
                         fa = fa * 5
                         print fahr, " gradi fahrenheit corrispondono a ", 
                         print fa, " gradi celsius"
    
    
    if choos == 1:
                  celtofa(celsius,cel)
                  print "1] Ripeti"
                  ch = input()
                  if ch == 1: 
                             celtofa(celsius,cel)
    if choos == 2:
                  fatocel(fahr,fa)
                  print "2] Ripeti"
                  ch2 = input()
                  if ch2 == 2:
                             fatocel(fahr,fa)
    
    raw_input("Premi per uscire")

    Grazie a chi mi aiuterà.


  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,965
    Vedo che nesuno riesce a rispondermi. Meglio che vi dia una mano anch'io.

    codice:
    # PROGRAMMA DI CONVERSIONE GRADI CELSIUS-FAHRENHEIT E VICEVERSA
    
    choos = 0
    
    def scelta(choos):
                     print "1] Conversione Celsius in Fahrenheit"
                     print "2] Conversione Fahrenheit in Celsius"
                     choos = input("Scegli la tua opzione: ")
    scelta(choos)
    
    celsius = 0
    cel = 0 
    ch = 0
    ch2 = 0
    
    def celtofa(celsius,cel):
                            print "Digita i gradi Celsius"
                            celsius = input("")
                            cel = celsius * 9
                            cel = cel / 5
                            cel = cel + 32
                            print celsius, " gradi celsius equivalgono a "
                            print cel, " gradi farhenheit"
    
     
    def fatocel(fahr, fa):
                         print "Digita gradi Fahrenheit"
                         fahr = input("")
                         fa = fahr - 32
                         fa = fa / 9
                         fa = fa * 5
                         print fahr, " gradi fahrenheit corrispondono a ", 
                         print fa, " gradi celsius"
    
    
    
    if choose == 1:
                  celtofa(celsius,cel)
                  print "1] Ripeti"
                  ch = input()
                  if ch == 1: 
                             celtofa(celsius,cel)
    
    if choose == 2:
                  fatocel(fahr,fa)
                  print ""
                  print "2] Ripeti"
                  ch2 = input()
                  if ch2 == 2:
                              fatocel(fahr,fa)
    
    
    raw_input("Premi per uscire")
    La parte in grassetto e' quella che scasina il programma, in quanto, choos è settata a 0, e la chiamata alla funzione, diciamo, ignora ciò che viene inserito dall'utente.
    Non so proprio come fare.
    Avrei bisogno di inizializzare la variabile senza dargli valore.
    Non so proprio come fare....

    Help me please.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,965
    Ora ho modificato così:

    codice:
    # PROGRAMMA DI CONVERSIONE GRADI CELSIUS-FAHRENHEIT E VICEVERSA
    
    celsius = 0
    cel = 0 
    ch = 0
    ch2 = 0
    fahr = 0
    fa = 0
    perpetuo = 10
    
    def celtofa(celsius,cel):
                            print "Digita i gradi Celsius"
                            celsius = input("")
                            cel = celsius * 9
                            cel = cel / 5
                            cel = cel + 32
                            print celsius, " gradi celsius equivalgono a "
                            print cel, " gradi farhenheit"
                            repeatctf(choos, ch)
     
    def fatocel(fahr, fa):
                         print "Digita i gradi Fahrenheit"
                         fahr = input("")
                         fa = fahr - 32
                         fa = fa / 9
                         fa = fa * 5
                         print fahr, " gradi fahrenheit corrispondono a " 
                         print fa, " gradi celsius"
                         repeatftc(choos, ch2)
    
    choos = 0
    
    
    def repeatctf(choos, ch):
                            if choos == 1:
                                          celtofa(celsius,cel)
                                          print "1] Ripeti"
                                          print "2] Termina" 
                                          ch = input()
                                          if ch == 1: 
                                                     celtofa(celsius,cel)
                                          if ch == 2:
                                                      print "Esci"
    def repeatftc(choos, ch2):
                              if choos == 2:
                                            fatocel(fahr,fa)
                                            print ""
                                            print "1] Ripeti"
                                            print "2] Termina"
                                            ch2 = input()
                                            if ch2 == 1:
                                                        fatocel(fahr,fa) 
                                            if ch2 == 2:
                                                        print "Esci"       
    def scelta(choos):
                     print "1] Conversione Celsius in Fahrenheit"
                     print "2] Conversione Fahrenheit in Celsius"
                     choos = input("Scegli la tua opzione: ")
                     if choos == 1:
                                  while perpetuo == 10:
                                                       repeatctf(choos,ch)
                     if choos == 2:
                                  while perpetuo == 10:
                                                       repeatftc(choos,ch2)
    scelta(choos)
    
    
    raw_input("Premi per uscire")
    ho solo bisogno di sapere come far terminare il programma cliccando su "2"

  4. #4
    prova così:

    codice:
    def scelta():
        while 1:
            try:
                print """
    1] Conversione Celsius in Fahrenheit
    2] Conversione Fahrenheit in Celsius"""
                inp = int(raw_input("Scegli la tua opzione: "))
                if inp <= 2:
                    return inp
            except ValueError:
                pass
        
    def celtofa():
        celsius = "undef"
        while celsius == "undef":
            celsius = input("Digita i gradi Celsius:\n")
        cel = (celsius * 9) / 5 + 32
        print "%s gradi celsius corrispondono a %s gradi farhenheit" %(celsius,cel)
     
    def fatocel():
        fahr  = "undef"
        while fahr == "undef":
            fahr = input("Digita i gradi Farhenheit:\n")
        fa = ((fahr - 32) /9) * 5
        print "%s gradi fahrenheit corrispondono a %s gradi celsius" %(fahr,fa)
    
    exit = 0
    while 1:
        choose = scelta()
        if choose == 1:
            celtofa()
        elif choose == 2:
            fatocel()
        print """
    1] Continua
    2] Esci
        """
        if int(raw_input("")) == 2:
            break
    eXtending-Php.net coming soon ...

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,965
    Grazie!!!
    Funziona che e' una meraviglia!!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,965
    p.s.: come si fa a far sì che quando cerco di eseguire il file .py, se c'è errore, la finestra di dos non si cancelli impedendomi di vedere il tipo d'errore?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.