Forum >> Principianti >> Aiuto

Pagina: 1

Salve a tutti, sono un novellino, sto facendo pratica con python 2.7.6, e mi sono imbattuto in un grosso problema al capitolo 9.7 (del manuale How to Think) :):
Innanzitutto questa è la funzione che ho copiato dal manuale in precedenza e mi sono trovato bene:

def NellIntervallo (Lista,LimiteInferiore,LimiteSuperiore):
                  Conteggio = 0
     for Numero in range(Lista):
                                if LimiteInferiore < Numero < LimiteSuperiore:
             Conteggio = Conteggio + 1
            print Conteggio,LimiteInferiore,Lista,LimiteSuperiore


in seguito:

NumIntervalli = 8
AmpiezzaIntervallo = 1.0 / NumIntervalli
for i in range(NumIntervalli):
           LimiteInferiore = i * AmpiezzaIntervallo
           LimiteSuperiore = LimiteInferiore + AmpiezzaIntervallo
print "da", LimiteInferiore, "a", LimiteSuperiore


e anche qui nessuno problema

Poi quando devo modificare quest'ultima (cioè memorizzare 8 interi con una sola variabile) io copio tale e quale al manuale:

NumIntervalli = 8
Conteggio = 0 * NumIntervalli
AmpiezzaIntervallo = 1.0 / NumIntervalli
for i in range(NumIntervalli):
LimiteInferiore = i * AmpiezzaIntervallo
LimiteSuperiore = LimiteInferiore + AmpiezzaIntervallo
Conteggio = NellIntervallo(Lista, LimiteInferiore, \
LimiteSuperiore)
print Conteggio

ma poi quando vado ad eseguire mi fa l'errore: name 'Lista' is not defined
Sono 3 ore che mi sto lambiccando il cervello per trovare una soluzione :)




--- Ultima modifica di ㎝ in data 2016-05-15 20:47:41 ---
ma poi quando vado ad eseguire mi fa l'errore: name 'Lista' is not defined
Python ti parla, ascoltalo.... ;)

Che cosa è Lista, stai cercando di passare qualcosa alla funzione che non esiste. Per ovviare all'errore potresti aggiungere un semplice:
Lista = [] 
ma certamente non avrebbe senso, devi rivedere concettualmente il tuo codice.

Cya
Comunque questo non è un esercizio ma un esempio del manuale how to think Python 2.x che ho copiato e incollato.
Secondo me ci deve essere proprio un errore nel manuale da pagina 112 a 114. Poi non so :thinking:
Ho scritto anche il valore della lista: per esempio Lista = 1000, ma qualsiasi valore scrivo il risultatto è sempre zero; ad esempio con la variabile NumIntervalli = 8 e con Lista = 1000 dovrebbe uscire questo risultato: [138, 124, 128, 118, 130, 117, 114, 131], e invece esce sempre : [0, 0, 0, 0, 0, 0, 0, 0] :(
Ciao caro, l'esempio funziona, l'ho appena copiato ed incollato e mi restituisce quanto deve. Sei sicuro di aver seguito alla lettera quanto scritto? Ad esempio non devi creare:
Lista = [ 1000 ] #Gli spazi intorno al numero sono solo per la visualizzazione
come dici in precedenza, ma seguendo il testo: Con una lista di 1000 valori questo programma produce una lista di conteggi di questo tipo:
[138, 124, 128, 118, 130, 117, 114, 131]
Cosa ben diversa non trovi? Ti consiglio un'attenta lettura e di seguire passo passo la guida.

Proprio sulla guida un'ultima considerazione è d'obbligo. Si tratta di un testo piuttosto datato (anche se non so a quale release fai riferimento esattamente). Forse, partendo da python.org, potresti avere un maggior beneficio utilizzando guide più recenti e pensate per il linguaggio 3.x che se parti da zero è fortemente consigliato.

Cya
Ho fatto tutto passo passo, e nonostante ciò non mi trovo...ho provato come dici tu ma niente.
Potresti postarmi il codice che tu hai copiato e incollato cosi ho le idee ancora più chiare :) solo per titoli informativi, per pura curiosità xD grazie in anticipo
Potresti postarmi il codice che tu hai copiato e incollato cosi ho le idee ancora più chiare :) solo per titoli informativi, per pura curiosità xD grazie in anticipo

In che senso potresti postarmi il codice, è quello che hai scritto tu, gli ho solo messo una formattazione decente. :question:

L'unica differenza col tuo, oltre alla formattazione, è che ho creato una lista di mille elementi e non Lista = 1000 (che poi non è nemmeno una lista così) come dicevi in precedenza.

Cya


Perdona la mia ignoranza: come faccio a creare una lista con mille elementi? quale algoritmo devo utilizzare? comunque riguardo al manuale che sto studiando...siccome sono alle prime armi con la programmazione ho scelto di studiare la versione 2.x per iniziare il mio viaggio nel mondo dell'informatica
per prendere confidenza con la programmazione e poi mi è stato consigliato di iniziare con questa versione, poi subito dopo passerò alle 3.x. :)
Perdona la mia ignoranza: come faccio a creare una lista con mille elementi? quale algoritmo devo utilizzare?
Ci sono molti modi in cui puoi crearla. Io ad esempio ho usato random per avere un po' di valori casuali, ma puoi usare davvero quello che ti pare.
>>> from random import random
>>> Lista = [random() for n in range(1000)]
>>> len(Lista)
1000

comunque riguardo al manuale che sto studiando...siccome sono alle prime armi con la programmazione ho scelto di studiare la versione 2.x per iniziare il mio viaggio nel mondo dell'informatica per prendere confidenza con la programmazione e poi mi è stato consigliato di iniziare con questa versione, poi subito dopo passerò alle 3.x. :)

Il consiglio che ti hanno dato non mi trova d'accordo.

Se non hai esigenze specifiche, come ad esempio un framwork per il quale non esiste il porting alla versione 3.x o la necessità di tenere/sviluppare codice specifico scritto alla versione 2.x, meglio iniziare a studiare quello che è il presente ed il futuro del linguaggio. Il ramo 2.x prima o poi verrà abbandonato.

Cya


Pagina: 1



Esegui il login per scrivere una risposta.