HW4 recupero, Problema con studenti_brillanti()

V
Vinz (500 points)
1 2 4
asked Dec 26, 2021 in HW4 by Vinz (500 points)

Spero di Aver scelto la Sezione Giusta per porre la mia Domanda.
Sto avendo problemi con L'HW di Recupero numero 4.
In breve non riesco a capire dove io stia sbagliando.. siccome nel Momento in cui vado a Mettere in ordine Decrescente le mie Matricole in Base al voto.. il risultato che ottengo eseguendo il mio programma è diverso da quello atteso nei test.


Provo ad esprimere nel modo più chiaro possibile cosa ho capito di dover fare. 
-Inizialmente confronto Il voto delle due matricole(31.0 == 31.0). Se Uguale.. confronto l'ordine Lessico Grafico dei Cognomi e Nomi delle due Matricole.. ad Esempio (cognome_Matricola1 = "De Marco") ,(cognome_Matricola2 = "Hamel").. nei Test Matricola1 viene prima di Matricola2. Quindi a parità di Voto, Matricola1 dovrebbe avere il Cognome Maggiore rispetto al Cognome di Matricola2. Ma quando vado a testare nella Console se "De Marco">"Hamel" >>>False.
Quindi sono sicuro di stare sbagliano qualcosa.. Probabilmente ho inteso male il significato di Ordine Lessico Grafico. Vorrei capire qualcosina in più.

Chiedo scusa se ho disturbato durante le festività. Vi auguro un Felice Natale. 
Grazie in anticipo a chiunque mi Aiuti a risolvere questo problemino.

417 views

4 Answers

Matypist (5370 points)
8 16 45
answered Dec 26, 2021 by Matypist (5,370 points)
edited Dec 26, 2021 by Matypist


Non conosco i dettagli dell'Homework 4 di recupero perché non l'ho ancora affrontato, non so se possa entrarci con il tuo problema ma assicurati di aver letto questa nota aggiunta dal professore nella pagina dell'HW:


Come notato in https://q2a.di.uniroma1.it/24359 , il cognome e nome del teacher devono essere scambiati nel metodo print_exam_record


P.S: La sottosezione giusta di Homework per l'HW4 di recupero non esiste a quanto pare, ci sono soltanto quelle per gli HW opzionali e per gli HW obbligatori, quindi per il momento penso vada bene questa

EDIT: un moderatore di Q2A ha rinominato le sottosezioni del tipo "HWx obbligatorio" in semplicemente "HWx", quindi quella da te selezionata si conferma la sottosezione corretta

 

V
Vinz (500 points)
1 2 4
commented Dec 26, 2021 by Vinz (500 points)
Perfetto. ti ringrazio allora per tua disponibilità. Proverò a fare questo scambio e vediamo cosa succede..
Memoli (1840 points)
0 0 14
answered Dec 26, 2021 by Memoli (1,840 points)
Premetto che non ho ancora eseguito l'hw4 di recupero, forse può esserti d'aiuto questa osservazione...

Nota che l'interprete Python quando deve andare a verificare condizioni come "è maggiore di" o "è minore di" tra stringhe, prende in considerazione il valore sulla tabella unicode dei caratteri. Nell'esempio che hai riportato, "De Marco" risulta giustamente minore di "Hamel", perché i caratteri iniziali si codificano rispettivamente in 68 e 72, puoi verificarlo con ord('D') e ord('H').

Spero ti sia utile.
Loriv3 (7970 points)
8 20 84
answered Dec 27, 2021 by Loriv3 (7,970 points)
Cambiando il > con un < la condizione darà True in quanto D ha un valore minore di H
V
Vinz (500 points)
1 2 4
commented Dec 29, 2021 by Vinz (500 points)
Si ma 'DeMarco' Deve stare prima di 'Hamel'.. scambiare > con < non mi risolve il problema.
Giuseppe B. (4370 points)
0 0 8
answered Dec 27, 2021 by Giuseppe B. (4,370 points)
io ho risolto confrontando prima per voto, poi per nome e in caso di nome uguale confronto per matricola in ordine crescente. In questo modo risolvo il caso che c'è nel 'large' in cui ci sono quei due nomi uguali
V
Vinz (500 points)
1 2 4
commented Dec 29, 2021 by Vinz (500 points)
Faccio la stessa cosa io.. Però subito dopo il Nome confronto anche il cognome. Quindi in caso di Nome Uguale, confronto il Cognome. Ma comunque non risolvo il Problema.
angelo.spognardi (4640 points)
37 60 92
commented Dec 29, 2021 by angelo.spognardi (4,640 points)

Vinz, se leggi bene il testo della richiesta della funzione, vedrai: "lista delle matricole... ordinate in modo decrescente per media e, in caso di parità, in ordine lessicografico (ovvero A, B, C, ..., Z) per il cognome e il nome dello studente. In caso di ulteriore parità, si usi il valore numerico dello stud_code in ordine crescente.

Quindi, a parità di media, 'De Marco' viene prima di 'Hamel' proprio perché 'De Marco' < 'Hamel'. Il nome va usato solo in caso di parità di Cognome.

Spero sia più chiaro.