IniziaInizia gratis

La parola chiave non locale e le funzioni annidate

Lavoriamo ancora una volta sulla tua padronanza della portata! In questo esercizio, utilizzerai la parola chiave nonlocal all'interno di una funzione annidata per modificare il valore di una variabile definita nell'ambito che la racchiude.

Questo esercizio fa parte del corso

Introduzione alle funzioni in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Assegna a echo_word la stringa word, concatenata con se stessa.
  • Usa la parola chiave nonlocal per modificare il valore di echo_word nell'ambito che lo circonda.
  • Modifica echo_word in echo_word concatenato con '!!!'.
  • Chiama la funzione echo_shout(), passandole un singolo argomento "hello".

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Define echo_shout()
def echo_shout(word):
    """Change the value of a nonlocal variable"""
    
    # Concatenate word with itself: echo_word
    ____
    
    # Print echo_word
    print(echo_word)
    
    # Define inner function shout()
    def shout():
        """Alter a variable in the enclosing scope"""    
        # Use echo_word in nonlocal scope
        ____
        
        # Change echo_word to echo_word concatenated with '!!!'
        echo_word = ____
    
    # Call function shout()
    shout()
    
    # Print echo_word
    print(echo_word)

# Call function echo_shout() with argument 'hello'
____
Modifica ed esegui il codice