|
|
|
|
Strumenti |
02-05-2009, 19:42 | #101 |
Member
Iscritto dal: Jan 2006
Messaggi: 299
|
Ok, allora questo è il codice completo:
Codice:
class Tempo: pass OraDecollo = Tempo() OraDecollo.Ore = 10 OraDecollo.Minuti = 10 TempoVolo = Tempo() TempoVolo.Ore = 01 TempoVolo.Minuti = 15 TempoSosta = Tempo() TempoSosta.Ore = 01 TempoSosta.Minuti = 15 TempoVolo2 = Tempo() TempoVolo2.Ore = 00 TempoVolo2.Minuti = 15 TempoSosta2 = Tempo() TempoSosta2.Ore = 02 TempoSosta2.Minuti = 30 TempoVolo3 = Tempo() TempoVolo3.Ore = 01 TempoVolo3.Minuti = 30 def OrarioArrivo(OraDecollo, TempoVolo): Somma1 = Tempo() Somma1.Ore = OraDecollo.Ore + TempoVolo.Ore Somma1.Minuti = OraDecollo.Minuti + TempoVolo.Minuti if Somma1.Minuti >= 60: Somma1.Minuti = Somma1.Minuti - 60 Somma1.Ore = Somma1.Ore +1 return Somma1.Ore, Somma1.Minuti def OrarioDecollo(OraDecollo, TempoVolo): Somma2 = Tempo() Somma2.Ore = OraDecollo.Ore + TempoVolo.Ore + TempoSosta.Ore Somma2.Minuti = OraDecollo.Minuti + TempoVolo.Minuti + TempoSosta.Minuti if Somma2.Minuti >= 60: Somma2.Minuti = Somma2.Minuti - 60 Somma2.Ore = Somma2.Ore +1 return Somma2.Ore, Somma2.Minuti def OrarioArrivo2(OraDecollo, TempoVolo): Somma = Tempo() Somma.Ore = OraDecollo.Ore + TempoVolo.Ore + TempoSosta.Ore + TempoVolo2.Ore Somma.Minuti = OraDecollo.Minuti + TempoVolo.Minuti + TempoSosta.Minuti + TempoVolo2.Minuti if Somma.Minuti >= 60: Somma.Minuti = Somma.Minuti - 60 Somma.Ore = Somma.Ore +1 return Somma.Ore, Somma.Minuti OraArrivo2 = OrarioArrivo2(OraDecollo, TempoVolo) print "L'orario di arrivo al Terzo Aeroporto e' previsto alle ore :", OraArrivo2 OraArrivo = OrarioArrivo(OraDecollo, TempoVolo) print "L'orario di Arrivo al Primo aeroporto e' previsto alle ore :", OraArrivo OraDecollo = OrarioDecollo(OraDecollo, TempoVolo) print "L'oraro di Arrivo al Secondo aeroporto e' previsto alle ore:", OraDecollo Codice:
OraArrivo = OrarioArrivo(OraDecollo, TempoVolo) print "L'orario di Arrivo al Primo aeroporto e' previsto alle ore :", OraArrivo OraDecollo = OrarioDecollo(OraDecollo, TempoVolo) print "L'oraro di Arrivo al Secondo aeroporto e' previsto alle ore:", OraDecollo OraArrivo2 = OrarioArrivo2(OraDecollo, TempoVolo) print "L'orario di arrivo al Terzo Aeroporto e' previsto alle ore :", OraArrivo2 Codice:
L'orario di Arrivo e' previsto alle ore : (11, 25) L'oraro di Arrivo al Secondo e' previsto alle ore: (12, 40) Traceback (most recent call last): File "/Users/nuvolare/Python/Elisoccorso.py", line 70, in <module> OraArrivo2 = OrarioArrivo2(OraDecollo, TempoVolo) File "/Users/nuvolare/Python/Esperimento.py", line 52, in OrarioArrivo2 Somma.Ore = OraDecollo.Ore + TempoVolo.Ore + TempoSosta.Ore + TempoVolo2.Ore AttributeError: 'tuple' object has no attribute 'Ore' |
02-05-2009, 20:00 | #102 | |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 4660
|
Quote:
Se tu guardi, qui Codice:
OraArrivo2 = OrarioArrivo2(OraDecollo, TempoVolo)
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito. |
|
02-05-2009, 20:15 | #103 |
Member
Iscritto dal: Jan 2006
Messaggi: 299
|
e si!!!
Ti giuro che ho perso una giornata controllore e ricontrollare la situazione dei nomi, avevo capito che era qualcosa del genere, ma non so perché non lo vedevo... Mi sembra come quando scrivi qualcosa e poi non trovi gli errori perché lo sai a memoria e non leggi più!!!! Mi è bastato correggere il tutto in questo modo: Codice:
OraArrivo = OrarioArrivo(OraDecollo, TempoVolo) print "L'orario di Arrivo al Primo aeroporto e' previsto alle ore :", OraArrivo OraDecollo23 = OrarioDecollo(OraDecollo, TempoVolo) print "L'oraro di Arrivo al Secondo aeroporto e' previsto alle ore:", OraDecollo23 OraArrivo2 = OrarioArrivo2(OraDecollo, TempoVolo) print "L'orario di arrivo al Terzo Aeroporto e' previsto alle ore :", OraArrivo2 Che dire!!! Grazie |
03-05-2009, 12:40 | #104 | |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 4660
|
Quote:
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito. |
|
10-05-2009, 09:37 | #105 |
Member
Iscritto dal: Jan 2006
Messaggi: 299
|
Ho iniziato a fare l'ereditarietà, ed al capito 16.4 mi dice di provare mi da un errore se scrivo questo:
Codice:
class Carta: ListaSemi = ["Fiori", "Quadri", "Cuori", "Picche"] ListaRanghi = ["impossibile", "Asso", "2", "3", "4", "5", "6", "7", "8",\ "9", "10", "Jack", "Regina", "Re"] def __init__(self, Seme=0, Rango=0): self.Seme = Seme self.Rango = Rango def __str__(self): return (self.ListaRanghi[self.Rango] +" di "+ self.ListaSemi[self.Seme]) def __cmp__(self, Altro): #controlla il seme if self.Seme > Altro.Seme: return 1 if self.Seme < Altro.Seme: return -1 #se i semi sono uguali controlla Rango if self.Rango > Altro.Rango: return 1 if self.Rango < Altro.Rango: return -1 #se anche i semi sono uguali allora ritorna 0 return 0 Carta1 = Carta(1, 1) Carta2 = Carta(1, 13) print Carta1 > Carta2 Carta1 = Carta(3, 11) print Carta1 Carta2 = Carta(1, 3) print Carta2 class Mazzo: def __init__(self): self.Carte = [] for Seme in range(4): #listaSemi sono 4 for Rango in range(1,14): #ListaRanghi va da 1 a 14 self.Carte.append(Carta(Seme, Rango)) def StampaMazzo(self): for Carta in self.Carte: print Carta def __str__(self): s="" for i in range(len(self.Carte)): s=s+str(self.Carte[i]) +"\n" return s def Mescola(self): import random NumCarte = len(self.Carte) for i in range(NumCarte): j = random.randrange(i, NumCarte) self.Carte[i], self.Carte[j] = self.Carte[j], self.Carte[i] def RimuoviCarta(self, Carta): if Carta in self.Carte: self.Carte.remove(Carta) return 1 else: return 0 def PrimaCarta(self): return self.Carte.pop() def EVuoto(self): return(len(self.Carte) == 0) def Distribuisci(self, ListaMani, NumCarte=999): NumMani = len(ListaMani) for i in range(NumCarte): if self.EVuoto(): break Carta = self.PrimaCarta() Mano = ListaMani[i % NumMani] Mano.AggiungiCarta(Carta) class Mano(Mazzo): def __init__ (self, nome=""): self.Carte= [] self.Nome = Nome def AggiungiCarta(self, Carta): self.Carte.append(Carta) def RimuoviCarta(self, Carta): if Carta in self.Carte: self.Carte.remove(Carta) return 1 else: return 0 Mazzo1 = Mazzo() Mazzo1.Mescola() Mano1 = ("Pippo") Mazzo1.Distribuisci([Mano1], 5) print Mazzo1 Codice:
Traceback (most recent call last): File "/Users/nuvolare/Python/Carta.py", line 103, in <module> Mazzo1.Mescola() AttributeError: Mazzo instance has no attribute 'Mescola' Ultima modifica di nuvolare : 10-05-2009 alle 09:48. |
10-05-2009, 09:58 | #106 | |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 4660
|
Quote:
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito. |
|
11-05-2009, 18:35 | #107 | |
Member
Iscritto dal: Jan 2006
Messaggi: 299
|
Quote:
Ma l'ereditarietà è importante nel contesto python? Perché il libro parla come se su altri linguaggi di programmazione sia più importante che su Python. Nel caso in cui questo sia vero preferirei andare avanti, poi magari ritornare ad approfondire perché non ho molto ben capito questo capitolo. Se invece è indispensabile per la prosecuzione allora lo devo rivedere meglio. |
|
11-05-2009, 18:39 | #108 | |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 4660
|
Quote:
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito. |
|
19-05-2009, 06:41 | #109 |
Member
Iscritto dal: Jan 2006
Messaggi: 299
|
Ciao, dovrei scrivere delle cose con la necessità che il programma mi chieda quello che voglio scrivere. Sono quindi ritornato al cap 4.12, ma non mi ricordo come facevo e non trovo gli esercizi fatti.
Questi sono in gli esempi del libro: Codice:
Prompt = "Qual'e' il tuo nome? " prova = input(Prompt) Inserimento = raw_input() print Inserimento Io invece vorrei che lui mi chiedesse cosa scrivere prima del mio intervento e poi mi stampasse il valore da me richiesto, Ottenendo : Qual'è il tuo nome? Nuvolare Così io ho poi la possibilità di prendermi quel numero o lettera e gestirmeli come meglio credo Ultima modifica di nuvolare : 19-05-2009 alle 06:46. |
19-05-2009, 13:15 | #110 | |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 4660
|
Quote:
Codice:
nome = raw_input("Quale è il tuo nome?") print nome
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito. |
|
19-05-2009, 18:18 | #111 | |
Member
Iscritto dal: Jan 2006
Messaggi: 299
|
Quote:
Io vorrei che appena faccio "RUN" oppure "Esegui" qualsiasi sia il comando di esecuzione, lui mi chieda quello che io gli imposto, esempio in questo caso "Quale è il tuo nome?" Quindi se io sono l'utente utilizzatore e sono davanti al pc devo rispondere alle domande che il programmatore ha impostato, Esempio: Il tuo nome? ..... Il tuo Cognome? .... Dove abiti? .... I dati immessi poi li utilizzerò per farci quello che mi serve. Spero di essere stato un pò più chiaro adesso... |
|
19-05-2009, 19:22 | #112 | |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 4660
|
Quote:
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito. |
|
20-05-2009, 08:47 | #113 |
Member
Iscritto dal: Jan 2006
Messaggi: 299
|
Si in effetti è proprio un problema dell'IDE, infatti ho scritto
Codice:
nome = raw_input("Quale e il tuo nome?") print nome Se invece faccio la stessa cosa con Komodo, non ho nessuna risposta dall'IDE, quindi in questo caso non visualizzo la domanda e non appena inserisco il nome la risposta che ottengo è: Codice:
Nuvolare Quale e il tuo nome?Nuvolare |
20-05-2009, 12:57 | #114 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
|
Non so, perché ormai sono passato a Eclipse, e anche con Komodo ho usato pochissimo la shell interattiva integrata (ho sempre una shell Python da command line aperta).
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
20-05-2009, 23:37 | #115 |
Member
Iscritto dal: Jan 2006
Messaggi: 299
|
Ok, allora continuo poi perfezionerò anche questa parte...
Una volta che ci siamo mi dite la differenza tra Komodo ed Eclipse? perché usare uno e non l'altro? |
21-05-2009, 06:49 | #116 |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 4660
|
Non li ho mai usati, però credo proprio che Eclipse sia più completo e con più funzionalità. Ma comunque al momento non farti tutti questi problemi, puoi benissimo usare anche l'IDLE o PyScripter.
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito. |
21-05-2009, 07:25 | #117 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
|
Concordo: non è il momento di pensare agli IDE.
Io ho cominciato con la command line e l'interprete Python aperto. E usavo un semplice editor di testo per scrivere le prime applicazioni.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
29-05-2009, 20:34 | #118 |
Member
Iscritto dal: Jan 2006
Messaggi: 299
|
Ciao, sto facendo le pile, ed a pag 170 mi spiega il funzionamento del Push, Pop, EVuota.
Poi mi fa un esempio: Codice:
class Pila: def __init__(self): self.Lista = [] def Push(self, Prova): self.Lista.append(Prova) def Push(self, Prova2): self.Lista.append(Prova2) def Push(self, Prova3): self.Lista.append(Prova3) def Pop(self): return self.Lista.pop() def EVuota(self): return (self.Lista == []) Codice:
P=Pila() P.Push(54) P.Push(45) P.Push("+") while not P.EVuota(): print P.pop(), La classe Pila, del primo esempio la devo usare? |
29-05-2009, 21:27 | #119 | |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 4660
|
Quote:
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito. |
|
29-05-2009, 21:37 | #120 |
Member
Iscritto dal: Jan 2006
Messaggi: 299
|
L'esempio 2 che riporta il libro.
Non so come applicarlo al primo esempio e se non si applica al primo, non capisco come funziona da solo... |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:19.