Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

Domanda su un codice dell'eserciziario

a
alex_andrei13 (3800 points)
15 41 53
in Eserciziario d'esame by (3.8k points)
closed by

Buonasera a tutti!

Stavo svolgendo alcuni esercizi ma non riesco a capire come funziona get() in questo caso:

def ricorsione(path, m, M, prof):
    
    for elemento in os.listdir(path):
        if '.' == elemento[0]:
            continue
        p = path + '/' + elemento
        if os.path.isdir(p):
            ricorsione(p, m, M, prof+1)
        else:
            estensione = elemento[-3:]
            m[estensione] = min(m.get(estensione, prof), prof)
            M[estensione] = max(M.get(estensione, prof), prof)

Premetto che m è un dizionario,

Ringrazio in anticipo

223 views
closed with the note: Il get() prende il valore associato a estensione altrimenti prende prof. Infine min() il minore dei due. Grazie!

2 Answers

Best answer
marcofelici (3160 points)
2 2 20
by (3.2k points)
selected by
Praticamente i parametri del metodo GET() sono una chiave obbligatoria e un valore opzionale (in questo caso p) che viene restituito in caso non esiste un valore nel dizionario associato alla chiave specificata nel get(). Potresti indicarmi il numero dell'esercizio in questione
a
alex_andrei13 (3800 points)
15 41 53
by (3.8k points)
Quindi, get prende l'estensione e nel caso non esiste prende la prof. E poi con min() si prende il minimo tra prof e l'altro valore. Però estensione è una stringa, come fa min a comparare?
marcofelici (3160 points)
2 2 20
by (3.2k points)
Con il get() ricerca nel dizionario il valore associato alla chiave "estensione" e se lo trova, confronta il valore con la variabile "prof" per trovare il più piccolo tra i due. Invece se la chiave "estensione" non è presente nel dizionario allora considera come valore la variabile "prof" e quindi ammesso che siano uguali il più piccolo tra le due variabili "prof" è ovviamente "prof". Infine aggiorna questo valore minimo trovato associandolo sempre alla chiave "estensione" del dizionario.
federico_fiorelli (9960 points)
2 5 15
by (10.0k points)
Praticamente assegni all'elemento [e] del dizionario il minimo valore tra il valore [e] se già presente nel dizionario (sennò p), e p... non riesco a dirti di più con quello che vedo
a
alex_andrei13 (3800 points)
15 41 53
by (3.8k points)
Ho aggiornato il codice così può essere più chiaro