Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Identità vs Uguaglianza | Boolean e Confronti
Tipi di Dati in Python

bookIdentità vs Uguaglianza

Questo capitolo distingue tra identità e uguaglianza. L'identità determina se due variabili fanno riferimento allo stesso oggetto in memoria; l'uguaglianza determina se due oggetti hanno lo stesso valore. Comprendere questa distinzione è essenziale per scrivere condizionali, validazioni e logiche di elaborazione dati corrette.

Che cos'è is?

  • is verifica l'identità dell'oggetto — se due variabili puntano allo stesso oggetto in memoria;
  • == verifica l'uguaglianza dei valori — se due oggetti hanno gli stessi contenuti.
1234567
a = [1, 2] b = [1, 2] c = a print(a == b) # True - same contents print(a is b) # False - different list objects print(a is c) # True - c refers to the very same list as a
copy

Quando usare is e quando evitarlo

  • Utilizzare is nel confronto con singleton come None;
123
value = None if value is None: print("No value")
copy
  • is not è il controllo di identità negato;
123
var = 64 if var is not None: print("var has a value: ", var)
copy
  • Evitare l'uso di is per verificare l'uguaglianza tra numeri o stringhe. A causa del caching/interning interno, l'identità può sembrare "funzionare" a volte, ma non è affidabile tra diverse esecuzioni e ambienti; utilizzare invece ==;
123456789
x = 256 y = 256 print(x == y) # True (same value) print(x is y) # May appear True; do not rely on identity here s1 = "hello" s2 = "he" + "llo" print(s1 == s2) # True print(s1 is s2) # Implementation detail; avoid using is here
copy
  • Per i booleani, preferire i controlli di veridicità.
123
flag = True if flag: # clearer than: if flag is True print("flag is True")
copy

1. Completa gli spazi con is o ==:

2. Qual è il modo corretto per verificare l'assenza di "valore"?

3. Quale affermazione è raccomandata?

question-icon

Completa gli spazi con is o ==:

Use to check if two variables point to the same object.
Use
to check if two values have the same contents.

Click or drag`n`drop items and fill in the blanks

question mark

Qual è il modo corretto per verificare l'assenza di "valore"?

Select the correct answer

question mark

Quale affermazione è raccomandata?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 3

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Suggested prompts:

Can you explain more about why using `is` with numbers or strings is unreliable?

When should I use `==` instead of `is` in my code?

Can you give more examples of identity vs equality in Python?

Awesome!

Completion rate improved to 5

bookIdentità vs Uguaglianza

Scorri per mostrare il menu

Questo capitolo distingue tra identità e uguaglianza. L'identità determina se due variabili fanno riferimento allo stesso oggetto in memoria; l'uguaglianza determina se due oggetti hanno lo stesso valore. Comprendere questa distinzione è essenziale per scrivere condizionali, validazioni e logiche di elaborazione dati corrette.

Che cos'è is?

  • is verifica l'identità dell'oggetto — se due variabili puntano allo stesso oggetto in memoria;
  • == verifica l'uguaglianza dei valori — se due oggetti hanno gli stessi contenuti.
1234567
a = [1, 2] b = [1, 2] c = a print(a == b) # True - same contents print(a is b) # False - different list objects print(a is c) # True - c refers to the very same list as a
copy

Quando usare is e quando evitarlo

  • Utilizzare is nel confronto con singleton come None;
123
value = None if value is None: print("No value")
copy
  • is not è il controllo di identità negato;
123
var = 64 if var is not None: print("var has a value: ", var)
copy
  • Evitare l'uso di is per verificare l'uguaglianza tra numeri o stringhe. A causa del caching/interning interno, l'identità può sembrare "funzionare" a volte, ma non è affidabile tra diverse esecuzioni e ambienti; utilizzare invece ==;
123456789
x = 256 y = 256 print(x == y) # True (same value) print(x is y) # May appear True; do not rely on identity here s1 = "hello" s2 = "he" + "llo" print(s1 == s2) # True print(s1 is s2) # Implementation detail; avoid using is here
copy
  • Per i booleani, preferire i controlli di veridicità.
123
flag = True if flag: # clearer than: if flag is True print("flag is True")
copy

1. Completa gli spazi con is o ==:

2. Qual è il modo corretto per verificare l'assenza di "valore"?

3. Quale affermazione è raccomandata?

question-icon

Completa gli spazi con is o ==:

Use to check if two variables point to the same object.
Use
to check if two values have the same contents.

Click or drag`n`drop items and fill in the blanks

question mark

Qual è il modo corretto per verificare l'assenza di "valore"?

Select the correct answer

question mark

Quale affermazione è raccomandata?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 3
some-alt