Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici
DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici
DJI porta un importante aggiornamento alla sua linea di gimbal camera tascabili con Osmo Pocket 4: sensore CMOS da 1 pollice rinnovato, gamma dinamica a 14 stop, profilo colore D-Log a 10 bit, slow motion a 4K/240fps e 107 GB di archiviazione integrata. Un prodotto pensato per i creator avanzati, ma che convince anche per l'uso quotidiano
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori
Il primo headset open-back della linea INZONE arriva a 200 euro con driver derivati dalle cuffie da studio MDR-MV1 e un peso record di soli 199 grammi
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA
Al .NEXT 2026 di Chicago, Nutanix ha mostrato quanto sia cambiata: una piattaforma software che gestisce VM, container e carichi di lavoro IA ovunque, dall’on-premise al cloud pubblico. Con un’esecuzione rapidissima sulle partnership e sulla migrazione da VMware
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


DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici DJI Osmo Pocket 4: la gimbal camera tascabile cr...
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori Sony INZONE H6 Air: il primo headset open-back d...
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA Nutanix cambia pelle: dall’iperconvergenza alla ...
Recensione Xiaomi Pad 8 Pro: potenza bruta e HyperOS 3 per sfidare la fascia alta Recensione Xiaomi Pad 8 Pro: potenza bruta e Hyp...
NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abb...
L'Iran avrebbe acquistato un satellite p...
VivaTech compie dieci anni e raddoppia p...
Le vendite di CPU si sono ridotte di 25 ...
Starship: SpaceX ha completato lo static...
Huawei FusionSolar Roadshow 2026: l'inno...
Nuovo trailer per Street Fighter: un fil...
Sovranità sui dati: arriva la pri...
Schede video NVIDIA e AMD di nuovo su Ma...
Robot aspirapolvere, TV OLED, iPhone 17 ...
EUREKA J15 Pro Ultra super interessante ...
Intel porta l'AI nei notebook entry-leve...
6000 mAh, 5G e 108MP a meno di 200€: ecc...
FRITZ!Mesh Set 2700: Wi-Fi 7 in tutta la...
Amazfit Cheetah 2 Pro: lo smartwatch per...
Intel, focus su GPU workstation e datace...
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: 17:52.


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