Forum >> Principianti >> Buona sera! Mi vedreste cosa non va con questo esercizio?

Pagina: 1

def trova(stringa, carattere):
while indice<len(stringa):
indice=0
if stringaindice== carattere
return indice
indice=indice+1
return -1

L'obiettivo dovrebbe essere che se carattere si trova in stringa mi restituisca il valore di indice, altrimenti -1. Il problema è che se nio faccio ad esempio trova(casa, a) mi da :

Traceback (most recent call last):

File "<pyshell#12>", line 1, in <module>

trova(casa, a)

NameError: name 'casa' is not defined





P.S. L'esercizio è preso da "Pensare da informatico".
P.P.S. Non ho sbagliato le indentazioni, è solo che sul forum stranamente non me le mantiene, neanche dopo che ho modificato il post.

--- Ultima modifica di senegal98 in data 2017-01-01 21:24:58 ---
def trova(stringa, carattere):
    while indice<len(stringa):
        indice=0
        if stringaindice== carattere
            return indice
        indice=indice+1
        return -1
L'obiettivo dovrebbe essere che se carattere si trova in stringa mi restituisca il valore di indice, altrimenti -1. Il problema è che se nio faccio ad esempio trova(casa, a) mi da :

Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
trova(casa, a)
NameError: name 'casa' is not defined
Prova con
trova("casa", "a")

P.S. L'esercizio è preso da "Pensare da informatico".
P.P.S. Non ho sbagliato le indentazioni, è solo che sul forum stranamente non me le mantiene, neanche dopo che ho modificato il post.

Devi usare l'iconcina

Ciao e buon divertimento,


THE 🍺-WARE LICENSE (Revision ㊷):
<carlo@🐍.it> wrote this post. As long as you retain this notice you
can do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝
def trova(stringa, carattere):
    while indice<len(stringa):
        indice=0
        if stringaindice== carattere
            return indice
        indice=indice+1
        return -1
L'obiettivo dovrebbe essere che se carattere si trova in stringa mi restituisca il valore di indice, altrimenti -1. Il problema è che se nio faccio ad esempio trova(casa, a) mi da :

Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
trova(casa, a)
NameError: name 'casa' is not defined
Prova con
trova("casa", "a")

P.S. L'esercizio è preso da "Pensare da informatico".
P.P.S. Non ho sbagliato le indentazioni, è solo che sul forum stranamente non me le mantiene, neanche dopo che ho modificato il post.

Devi usare l'iconcina

Ciao e buon divertimento,



Ciao cm, ho tentato come hai detto tu,ma ora mi da un errore diverso da primo:





Traceback (most recent call last):

File "<pyshell#3>", line 1, in <module>

trova("casa", "a")

File "<pyshell#2>", line 2, in trova

while indice<len(stringa):

UnboundLocalError: local variable 'indice' referenced before assignment





Altre idee? Che io le provate tutte :(.
Ciao cm, ho tentato come hai detto tu,ma ora mi da un errore diverso da primo:

Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
trova("casa", "a")
File "<pyshell#2>", line 2, in trova
while indice<len(stringa):
UnboundLocalError: local variable 'indice' referenced before assignment

Altre idee? Che io le provate tutte :(.
Confronta bene quanto hai scritto con il codice presente sul libro: hai invertito due righe...


THE 🍺-WARE LICENSE (Revision ㊷):
<carlo@🐍.it> wrote this post. As long as you retain this notice you
can do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝
Ciao cm, ho tentato come hai detto tu,ma ora mi da un errore diverso da primo:

Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
trova("casa", "a")
File "<pyshell#2>", line 2, in trova
while indice<len(stringa):
UnboundLocalError: local variable 'indice' referenced before assignment

Altre idee? Che io le provate tutte :(.
Confronta bene quanto hai scritto con il codice presente sul libro: hai invertito due righe...



Ciao cm, avevi ragione, stupidamente ho invertito due righe.

Ora il programmino funziona (diciamo) per metà, ovvero mi ritorna sempre -1, sia che ci sia o meno il carattere ricercato. Ho l'impressione che si fermi solo al primo giro di ciclo del while.

P.S. Scusa se riesumo questa conversazione dopo tanto tempo, ma ho avuto da studiare per la scuola nel frattempo.





def trova(stringa, carattere):
	indice=0
	while indice<len(stringa):
		if stringaindice==carattere:
			return (indice)
		indice=indice+1
		return -1


Ciao cm, avevi ragione, stupidamente ho invertito due righe.

Ora il programmino funziona (diciamo) per metà, ovvero mi ritorna sempre -1, sia che ci sia o meno il carattere ricercato. Ho l'impressione che si fermi solo al primo giro di ciclo del while.

P.S. Scusa se riesumo questa conversazione dopo tanto tempo, ma ho avuto da studiare per la scuola nel frattempo.

def trova(stringa, carattere):
	indice=0
	while indice<len(stringa):
		if stringaindice==carattere:
			return (indice)
		indice=indice+1
		return -1
Controlla bene le indentazioni, ne hai sbagliata una.



THE 🍺-WARE LICENSE (Revision ㊷):
<carlo@🐍.it> wrote this post. As long as you retain this notice you
can do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝


Pagina: 1



Esegui il login per scrivere una risposta.