Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Qrevo Curv 2 Flow è l'ultima novità di casa Roborock per la pulizia di casa: un robot completo, forte di un sistema di lavaggio dei pavimenti basato su rullo che si estende a seguire il profilo delle pareti abbinato ad un potente motore di aspirazione con doppia spazzola laterale
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Abbiamo guidato per diversi giorni la Alpine A290, la prima elettrica del nuovo corso della marca. Non è solo una Renault 5 sotto steroidi, ha una sua identità e vuole farsi guidare
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Abbiamo provato a fondo il nuovo Magic 8 Lite di HONOR, e per farlo siamo volati fino a Marrakech , dove abbiamo testato la resistenza di questo smartphone in ogni condizione possibile ed immaginabile. Il risultato? Uno smartphone praticamente indistruttibile e con un'autonomia davvero ottima. Ma c'è molto altro da sapere su Magic 8 Lite, ve lo raccontiamo in questa recensione completa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 23-06-2008, 00:32   #1
theUser
Member
 
Iscritto dal: Jul 2007
Messaggi: 108
[Python]Pensare da informatico: esercizio della sezione 7.8

mi sono praticamente bloccato su questo...
Quote:
Esercizio: riscrivi la funzione ContaLettera in modo che invece di
elaborare completamente la stringa faccia uso della versione a tre
parametri di Trova.
trova ricerca una lettera in una stringa
Quote:
def Trova(Stringa, Carattere, Inizio):
if Inizio<len(Stringa):
Indice = Inizio
while Indice < len(Stringa):
if Stringa[Indice] == Carattere:
return Indice
Indice = Indice + 1
return -1
ContaLettere invece conta quante volte una lettera è presente in una stringa
Quote:
def ContaLettera(stringa,lettera):
i = 0
for lettera in stringa:
if lettera == 'a':
i=i + 1
print i
Il mio problema sta nel fatto che devo modificare ContaLettere...avevo pensato di inserire una variablile globale, ma non so se sia "corretto"...
questo è quello che sono riuscito a fare fino ad ora
Quote:
def Trova(Stringa, Carattere, Inizio):
if Inizio<len(Stringa):
Indice = Inizio
while Indice < len(Stringa):
if Stringa[Indice] == Carattere:
return Indice
Indice = Indice + 1
return -1

def ContaLettera(stringa,lettera):
i = 0
conta=0
while i<len(stringa):
Trova(stringa,lettera,i)
conta=?
i=i+1
print conta
theUser è offline   Rispondi citando il messaggio o parte di esso
Old 23-06-2008, 01:37   #2
Torav
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 558
Ti basta fare solamente un controllo su quello che ritorna Trova e riaggiornare la i in modo che al prossimo ciclo l'analisi della stringa riparta dopo la lettera trovata (e così non conti più di una volta una stessa lettera). E' tardi e non so se sono stato abbastanza chiaro, questo è il codice che userei io

Codice:
def ContaLettera(stringa,lettera):
  i = 0
  conta=0
  while i<len(stringa):
    posLettera = Trova(stringa, lettera, i)
    if(posLettera != -1):
      conta += 1
      i = posLettera + 1
    else:
      i=i+1
print conta
Torav è offline   Rispondi citando il messaggio o parte di esso
Old 23-06-2008, 08:52   #3
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da theUser Guarda i messaggi
avevo pensato di inserire una variablile globale, ma non so se sia "corretto"...
Non provarci nemmeno: stai ancora imparando, ed è meglio cominciare col piede giusto.

Niente variabili globali per un bel po'.

Quando sarai maturato come programmatore e avrai acquisito i pregi, ma soprattutto i DIFETTI, dell'uso delle variabili globali, allora potrai EVENTUALMENTE farne uso.
__________________
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
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 23-06-2008, 11:41   #4
theUser
Member
 
Iscritto dal: Jul 2007
Messaggi: 108
Quote:
def ContaLettera(stringa,lettera):
i = 0
conta=0
while i<len(stringa):
posLettera = Trova(stringa, lettera, i)
if(posLettera != -1):
conta += 1
i = posLettera + 1
else:
i=i+1
print conta
grazie, non ci avevo completamente pensato
Quote:
Non provarci nemmeno: stai ancora imparando, ed è meglio cominciare col piede giusto.

Niente variabili globali per un bel po'.

Quando sarai maturato come programmatore e avrai acquisito i pregi, ma soprattutto i DIFETTI, dell'uso delle variabili globali, allora potrai EVENTUALMENTE farne uso.
seguirò il tuo consiglio

P.S. SPE è buonissimo...grazie!
theUser è offline   Rispondi citando il messaggio o parte di esso
Old 23-06-2008, 11:51   #5
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Di niente, figurati.

Comunque un altro consiglio: quando devi postare del codice nel forum, usa il tag CODE.
__________________
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
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 23-06-2008, 11:55   #6
theUser
Member
 
Iscritto dal: Jul 2007
Messaggi: 108
ecco perchè non è venuta l'indentazione...!
theUser è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Roborock Qrevo Curv 2 Flow: ora lava con un rullo Roborock Qrevo Curv 2 Flow: ora lava con un rull...
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite Alpine A290 alla prova: un'auto bella che ti fa ...
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile Recensione HONOR Magic 8 Lite: lo smartphone ind...
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Missione Artemis II diretta verso la Lun...
Toy Story 5 arriva al cinema: è l...
Intel cambia rotta su Linux? Nuove assun...
Samsung aggiorna Bixby con One UI 8.5: p...
L'Etiopia vieta le auto a combustione: a...
Pirateria audiovisiva: la Guardia di Fin...
Ubisoft conferma due nuovi Far Cry in sv...
Chi vincerà il Festival di Sanrem...
G42 e Cerebras portano in India un super...
Offerte aggiornate del weekend Amazon: 7...
4 MacBook Air in offerta e scende a 939€...
Chrome cambia il tuo modo di lavorare: o...
Minimo storico iPhone 17 su Amazon: 909€...
USA, incriminati tre ingegneri della Sil...
Xbox: Phil Spencer lascia dopo 38 anni, ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 18:17.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v