Forum >> Programmazione Python >> Scripting >> esercizio banale che non mi viene

Pagina: Indietro 1 2

def conta_caratteri(movies, escludiRiga):
	film=open(movies, 'r').read()
	film=film.split('\r\n')
	#escludiRiga= True
	conteggi=[]
	#print(conteggi)
	for record in film:
		if escludiRiga == True:
			
			movie=record.split(';', 1)
			id=movie0
			text=movie1
			text.replace('\r',' ')
			conteggi.append({id:len(text)})
			#escludiRiga = False
			#continue
		

	print (conteggi)
	
print ("primo giro!!!!")
print("occhio al valore true o false di escludiRiga ora lo passo uguale a FALSE")
conta_caratteri("movies.csv", False)
print ("secondo giro!!!1!")
print("occhio al valore true o false di escludiRiga ora lo passo uguale a TRUE")
conta_caratteri("movies.csv", True)
risultato:
[]
secondo giro!!!1!
[{'id': 394068}]




--- Ultima modifica di Orsogrizzly in data 2017-04-07 12:14:50 ---

--- Ultima modifica di Orsogrizzly in data 2017-04-07 12:16:01 ---
Grazie mille!
Riusciresti a spiegarmi come funziona escludi riga= true/false?

è una cosa a cui proprio logicamente non ci arrivo
Come credo tu sappia già è una variabile boleana 1/0, I/O, vero/falso, si/no, true/false.
Nel caso specifico,
if escludiRiga == True:

la inserisci in testa a un if, quindi è come se tu dicessi:
se il valore di escludiRiga è vero, (oppure se il valore di escludiRiga è si ecc.. ecc..)
fai questa cosa,
nel caso specifico andrà ad eseguire il codice scritto di seguito la condizione:
movie=record.split(';', 1)
			id=movie[ 0 ]
			text=movie[ 1 ]
			text.replace('\r',' ')
			conteggi.append({id:len(text)})

eventualmente oltre a quella condizione puoi aggiungerne delle altre con
elif
else
ovviamente nel caso specifico il valore per il confronto viene immesso alla chiamata della funzione:
conta_caratteri("movies.csv", False)
questo False scritto in rosso è il valore che assume escludiRiga e che viene confrontato con True nella riga:

if escludiRiga == True:
se tu in questa riga scrivevi:
if escludiRiga == False:
confrontavi il valore con falso e se la condizione era vera (cioè il dato immesso in escludiRiga era false),
il codice continua alla riga successiva come prima.


quindi in questo caso specifico se voglio chiamare la funzione su file che ha la prima riga da saltare per qualsiasi ragione ad escludi riga do valore true, se il file invece non ha la prima riga da saltare gli do valore false.



sembrerò un po' stupida, ma faccio una fatica infinita a capire la logica dietro la programmazione...
ti faccio un esempio eseguilo e ragionaci su un pochino vedrai che non è così difficile come sembra:
#----------------------------------------------------------------------
def provaIf(variabileDaPassare):
	""""""
	if variabileDaPassare == True:
		print ("la variabile passata è uguale a", str(variabileDaPassare))
		print("quindi eseguo questo codice")
		print("la somma è ", int(1) + int(1))
	else:
		print("spiacente ma il valore della variabile variabileDaPasssare è:", str(variabileDaPassare))
		print("quindi invece di eseguire l'altro codice esguo questo di seguito")
		print("la somma è ", int(2) + int(3))
		
print("facciamo un esempio semplice")
#impostiamo variabileDaPassare a true
provaIf(True)
print("********" * 20)
print("ora impostiamo variabileDaPassare a false")
#impostiamo variabileDaPassare a false
provaIf(False)
il risultato sarebbe questo:

facciamo un esempio semplice
la variabile passata è uguale a True
quindi eseguo questo codice
la somma è  2
****************************************************************************************************************************************************************
ora impostiamo variabileDaPassare a false
spiacente ma il valore della variabile variabileDaPasssare è: False
quindi invece di eseguire l'altro codice esguo questo di seguito
la somma è  5

poi per dare risposta completa alla situazione precedente devi aver ben chiaro come è strutturato il file csv e quindi scrivere una o più condizioni che devono essere sodissfatte per eseguire il codice che a te interessa.....

--- Ultima modifica di Orsogrizzly in data 2017-04-07 16:31:19 ---

--- Ultima modifica di Orsogrizzly in data 2017-04-07 16:33:35 ---

--- Ultima modifica di Orsogrizzly in data 2017-04-07 16:35:53 ---
quindi in questo caso specifico se voglio chiamare la funzione su file che ha la prima riga da saltare per qualsiasi ragione ad escludi riga do valore true, se il file invece non ha la prima riga da saltare gli do valore false.



sembrerò un po' stupida, ma faccio una fatica infinita a capire la logica dietro la programmazione...

da questa tua risposta mi viene da pensare che il problema stia nel fatto che tu pensi che la variabile escludiRiga sia un comando o un'istruzione,
quando invece le o la istruzione che farà saltare la lettura o l'elaborazione della prima riga viene dopo l'istruzione:
if escludiRiga == True:
sono le righe di codice scritte dopo questa che determinano il salto alla riga non vuota o contenente qualcos'altro .
Non so se mi sono spiegato.


--- Ultima modifica di Orsogrizzly in data 2017-04-07 17:41:18 ---
sisi questo è chiaro!
comunque grazie mille per l'aiuto, non ce l'avrei mai fatta :)


Pagina: Indietro 1 2



Esegui il login per scrivere una risposta.