Amaç, skorları '0'dan 1'e' sistemden 'F'den A'ya' sistemine dönüştürmek için bir program oluşturmaktır:
- Eğer
score >= 0.9
'A' basacaktır - Eğer
score >= 0.8
'B' basacaktır - 0.7, C
- 0.6, D
- Ve bu noktanın altındaki herhangi bir değer, F
Bu onu oluşturmanın yolu ve program üzerinde çalışıyor, ancak biraz tekrarlı:
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')
Bileşik ifadeler tekrarlayan olmayacak şekilde bir işlev oluşturmak için bir yol olup olmadığını bilmek istiyorum.
Ben tam bir acemi değilim, ama satırında bir şey olurdu:
def convertgrade(scr, numgrd, ltrgrd):
if scr >= numgrd:
return ltrgrd
if scr < numgrd:
return ltrgrd
mümkün mü?
Buradaki amaç, daha sonra sadece scr, numbergrade ve letter notlarını argümanlar olarak ileterek arayabileceğimizdir:
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')
Daha az argüman iletmek mümkün olsaydı, daha da iyi olurdu.