La variabile non può contenere le informazioni del metodo str () con la parola "pura" tra parentesi ... perché?

0

Recentemente mi sono imbattuto in metodi stringa e principalmente

str()
Il metodo

ha catturato il mio interesse perché crea una stringa da ogni tipo di dati? interi, booleani e così via. E se vuoi, possono essere facilmente archiviati in variabili come nuove stringhe:

my_string = str(45161516)

quella variabile terrà automaticamente quel numero come una stringa e lo stesso con il booleano:

my_string = str(True)

ma, quando metti la parola pura "cane", ad esempio:

my_string = str(dog)
La variabile

non la manterrà come una stringa ... Ecco anche un'immagine quando stavo provando questo concetto durante il mio corso Python:

Possochiedertiperchéècosì?

Perchélavariabilenonrestituiscevaloreeperché

str(dog)

noncreaunastringa"cane"?

È perché "cane" non ha un tipo di dati, quindi il metodo non lo riconosce?

O è solo il modo in cui è e non colpire l'alveare. All'inizio pensavo che le variabili non potessero contenere i metodi di stringa, ma è risultato che

my_variable = str(pure word)

è l'unico caso in cui la variabile non contiene e restituisce nulla.

    
posta Jakub Frišo 20.08.2016 - 19:57
fonte

2 risposte

1

Perché non è Python valido. Una stringa letterale deve essere definita in uno dei seguenti modi.

str1 = "test"
str2 = 'test2'
str3 = """test3"""
    
risposta data 20.08.2016 - 20:08
fonte
2

In Python, quando chiami una funzione con un argomento, quell'argomento deve sempre essere un'espressione valida. Le parti di codice 45161516 e True sono espressioni valide, ma dog non è un'espressione valida (se non è stata definita da nessuna parte). Quindi non puoi usare dog in un argomento di funzione se dog non è stato definito.

Probabilmente sembra come il metodo str crea una stringa da qualsiasi testo digitato tra parentesi, ma in realtà non è come funziona str .

Ecco come Python valuta str(45161516) :

  • In primo luogo, Python valuta l'espressione str per ottenere una funzione. La funzione che ottiene è la funzione "str".
  • Quindi, Python valuta l'espressione 45161516 per ottenere un argomento. L'argomento che ottiene è il numero 45161516.
  • Python chiama la funzione (che è la funzione "str") con l'argomento (che è il numero 45161516) e ottiene un risultato. Il risultato è la stringa di caratteri "45161516".

Ed ecco come Python valuta str(True) :

  • In primo luogo, Python valuta l'espressione str per ottenere una funzione. La funzione che ottiene è la funzione "str".
  • Quindi, Python valuta l'espressione True per ottenere un argomento. L'argomento che ottiene è il valore booleano "true".
  • Python chiama la funzione (che è la funzione "str") con l'argomento (che è il valore booleano "true") e ottiene un risultato. Il risultato è la stringa di caratteri "True".

Infine, ecco come Python prova a valutare str(dog) :

  • In primo luogo, Python valuta l'espressione str per ottenere una funzione. La funzione che ottiene è la funzione "str".
  • Quindi, Python tenta di valutare l'espressione dog per ottenere un argomento. Tuttavia, l'espressione dog non ha un valore (se non è stato definito), quindi la valutazione fallisce.

Naturalmente, puoi definire una variabile chiamata dog se vuoi. Puoi eseguire questo codice:

dog = 12345
print str(dog)

Poiché il valore della variabile dog è il numero 12345, quando Python valuta l'espressione dog per ottenere un argomento, l'argomento che ottiene sarà il numero 12345. Quindi il risultato della funzione "str" sarà essere la stringa di caratteri "12345", e questa stringa verrà stampata.

    
risposta data 21.08.2016 - 09:10
fonte

Leggi altre domande sui tag