str oggetto non è chiamabile python

è facile commettere errori quando si nominano le variabili. Uno degli errori più comuni è chiamare una variabile "str". Se provi a utilizzare il metodo Python con lo stesso nome nel tuo programma, "errore di digitazione: ‚Äòstr‚Äô l’oggetto non è richiamabile" viene restituito.

In questa guida, parliamo di cosa significa l’errore Python e perché viene generato. Esaminiamo due esempi di questo errore in azione in modo che tu impari a risolverlo.

Il problema: typeerror: ‚Äòstr‚Äô l’oggetto non è chiamabile

Il nostro messaggio di errore è un TypeError. Questo ci dice che stiamo cercando di eseguire un’operazione su un valore il cui tipo di dati non supporta quell’operazione specifica.

Dai un’occhiata al resto del nostro messaggio di errore:

Quando provi a chiamare un string come faresti con una funzione, viene restituito un errore. Questo perché le stringhe non sono funzioni. Per chiamare una funzione, aggiungi () alla fine del nome di una funzione.

Questo errore si verifica comunemente quando assegni una variabile chiamata "str" e poi prova a usare la funzione str(). Python interpreta "str" come stringa e non puoi utilizzare la funzione str() nel tuo programma.

Diamo un’occhiata a due scenari di esempio in cui si è verificato questo errore.

Scenario di esempio: dichiarazione di una variabile chiamata "str"

Scriviamo un programma che calcola quanti anni ha un bambino prima che compia 18 anni. Quindi stampiamo questo valore sulla console.

L’81% dei partecipanti ha dichiarato di sentirsi più sicuro delle proprie prospettive di lavoro nel settore tecnologico dopo aver partecipato a un bootcamp. Fatti abbinare a un bootcamp oggi.

Il laureato medio di un bootcamp ha trascorso meno di sei mesi nella transizione di carriera, dall’inizio di un bootcamp alla ricerca del primo lavoro.

Cominciamo con la raccolta l’età attuale del giovane utilizzando un’istruzione input():

Successivamente, calcoliamo quanti anni mancano a un giovane prima che compia 18 anni. fallo sottraendo il valore che un utente ha dato al nostro programma da 18:

Utilizziamo il metodo int() per convertire l’intero age. Questo ci permette di sottrarre l’età dell’utente da 18 anni.

Successivamente, convertiamo questo valore in una stringa e lo stampiamo sulla console. Convertiamo il valore in una stringa perché dobbiamo concatenarlo in una stringa. fallo, tutti i valori devono essere formattati come una stringa.

Convertiamo il valore di "years_left" e lo stampiamo sulla console:

Questo codice stampa un messaggio che ci informa di quanti anni mancano a un utente prima che compia 18 anni. Esegui il nostro codice e guarda cosa succede:

Il nostro codice restituisce un errore. Abbiamo provato a utilizzare il metodo str() per convertire il valore di "years_left". In precedenza nel nostro programma, abbiamo dichiarato una variabile chiamata "str". Python pensa "str" è una stringa nel nostro programma, non una funzione.

Per risolvere questo errore, rinominiamo la variabile "str" a "età":

Poiché abbiamo rinominato la nostra variabile, Python utilizzerà la funzione str() quando la chiamiamo. Non c’è più una variabile che occupi quel nome. Eseguiamo di nuovo il nostro codice:

Il nostro codice calcola con successo quanti anni mancano a un giovane fino al compimento dei 18 anni.

Scenario di esempio: stringa Formattazione utilizzando %

Questo errore è causato anche da un errore nella formattazione della stringa.

Aggiungiamo alcune nuove funzionalità al nostro ultimo programma. Per prima cosa, chiediamo a un utente il suo nome. In secondo luogo, creeremo il messaggio che indica a un utente quanti anni mancano al compimento dei 18 anni utilizzando la sintassi di formattazione %.

Inizia chiedendo a un utente il suo nome:

Successivamente, rivediamo la nostra istruzione print() per utilizzare la sintassi di formattazione della stringa %. Lo facciamo perché la sintassi % è più facile da leggere quando si formattano più valori in una stringa.Ecco il codice che usiamo per formattare il messaggio che mostreremo a un utente:

Il nostro programma finale assomiglia a questo:

Il nostro codice sostituisce il simbolo del tipo di stringa %s con i valori "name" e "età", rispettivamente. Eseguiamo il nostro codice e vediamo cosa succede:

Il nostro codice restituisce un errore perché abbiamo dimenticato di usare l’operatore % per separare la nostra stringa dai valori che vogliamo aggiungere alla nostra stringa.

Il nostro codice pensa che stiamo cercando di chiamare "%s, hai %s mancano gli anni al compimento dei 18 anni." come funzione perché la stringa è seguita da parentesi.

"Il Karma di carriera è entrato nella mia vita quando ne avevo più bisogno e mi ha aiutato rapidamente ad abbinarmi a un bootcamp. Due mesi dopo la laurea, ho trovato il mio sogno lavoro in linea con i miei valori e obiettivi nella vita!"

Venus, Software Engineer presso Rockbot

Per risolvere questo errore, aggiungiamo un segno di percentuale compreso tra "%s, ti restano %s anni fino al compimento dei 18 anni." e (nome, età) nel nostro codice:



Conclusione

Il "errore di digitazione: ‚Äòstr‚Äô l’oggetto non è richiamabile" viene generato un errore quando si tenta di chiamare una stringa come funzione. Per risolvere questo errore, assicurati di non utilizzare "str" come nome di variabile.

Se questo non risolve il problema, controlla se usi l’operatore % per formattare le stringhe. Dovrebbe apparire un segno % tra una stringa e i valori in cui vuoi aggiungere a una stringa.

Ora sei pronto per risolvere questo errore comune di Python come un professionista!

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method