L'obiettivo è costruire un programma per convertire i punteggi da un sistema '0 a 1' in un sistema 'F in A':
- Se
score >= 0.9
stampasse 'A' - Se
score >= 0.8
stampasse 'B' - 0.7, C
- 0.6, D
- E qualsiasi valore al di sotto di quel punto, stampa F
Questo è il modo di costruirlo e funziona sul programma, ma è in qualche modo ripetitivo:
if scr >= 0.9:
print('A')
elif scr >= 0.8:
print('B')
elif scr >= 0.7:
print('C')
elif scr >= 0.6:
print('D')
else:
print('F')
Vorrei sapere se esiste un modo per creare una funzione in modo che le istruzioni composte non siano così ripetitive.
Sono un principiante assoluto, ma farei qualcosa del genere:
def convertgrade(scr, numgrd, ltrgrd):
if scr >= numgrd:
return ltrgrd
if scr < numgrd:
return ltrgrd
Essere possibile?
L'intenzione qui è che in seguito possiamo chiamarlo solo passando scr, scrutinio numerico e voto in lettere come argomenti:
convertgrade(scr, 0.9, 'A')
convertgrade(scr, 0.8, 'B')
convertgrade(scr, 0.7, 'C')
convertgrade(scr, 0.6, 'D')
convertgrade(scr, 0.6, 'F')
Se fosse possibile passare meno argomenti, sarebbe ancora meglio.