Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
REDMI Note 17 Pro porta in fascia media una batteria da 8.340 mAh con ricarica HyperCharge a 67W, un display AMOLED da 6,83 pollici capace di picchi di luminosità molto elevati e una struttura certificata TÜV SÜD contro cadute e infiltrazioni d'acqua, il tutto racchiuso in una scocca da 223 grammi. Lo abbiamo provato per diversi giorni tra fotocamera, prestazioni, autonomia e prezzo sul mercato italiano
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-06-2008, 23: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, 00: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, 07: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, 10: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, 10: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, 10: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


Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
SpaceX ritirerà ''a breve'' il Fa...
La Luna ha un nuovo cratere di grandi di...
ROG Cronox: ASUS alza l'asticella dei ca...
Lenovo annuncia nuovi sistemi per la vir...
M6 e M5 Ultra, i primi benchmark conferm...
La nuova falla della cybersecurity &egra...
The Blood of Dawnwalker, il sequel potre...
Colpiti i data center Amazon: irrecupera...
Google Wallet, nuova interfaccia in arri...
iPhone Duo, problemi di produzione per i...
Firefox diventa più veloce con PDF e JPE...
WhatsApp, arriva su iOS la nuova scorcia...
Snap presenta Specs: realtà aumentata, c...
SteamOS verso un cambiamento epocale: ar...
Recensione HUAWEI FreeBuds Neo, piccoli ...
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: 19:50.


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