Python вычисляет рейтинг по проценту завершенности
Допустим, если студент закончил курс, то он получит процент его окончания.
Затем мы вводим максимальную оценку в 5 звезд, следуя следующим правилам:
- 0%-4% => 0 звезда
- 5%-19% => 1 звезда
- 20%-39% => 2 звезды
- 40%-59% => 3 звезды
- 60%-79% => 4 звезды
- 80%-100% => 5 звезд
Итак, на основании оценки студента:
- 0% процент выполнения получит 0 рейтинговую звезду.
- 10% процент выполнения получит 1 рейтинговую звезду.
- Кроме того, еще одним условием может быть 30% процентное выполнение получит 2.5 рейтинговых звезд.
ПРИМЕЧАНИЕ: Максимальные 5 звезд - это динамическая величина, она может быть и 10 звезд.
как мы можем этого добиться?
Вот что я бы сделал:
Для идеальных звездных расчетов
while True:
students_score = int(input("Enter the students score as a percentage: "))
if students_score >= 0 and students_score <= 4:
print("This student got 0 stars")
print("")
if students_score >= 5 and students_score <= 19:
print("This student got 1 star")
print("")
if students_score >= 20 and students_score <= 39:
print("This student got 2 stars")
print("")
if students_score >= 40 and students_score <= 59:
print("This student got 3 stars")
print("")
if students_score >= 60 and students_score <= 79:
print("This student got 4 stars")
print("")
if students_score >= 80 and students_score <= 100:
print("This student got 5 stars")
print("")
Для десятичных звездных расчетов
while True:
students_score = int(input("Enter the students score as a percentage: "))
star_score = 5/100 * students_score
print("This student got ",star_score," stars")
print("")
Вопрос неясен, и я не понял условного требования, но вот мой код:
def percent_to_stars(percentage: int, ranges=None):
if ranges is None:
ranges = [(0, 4), (5, 19), (20, 39), (40, 59), (60, 79), (80, 100)]
for i, r in enumerate(ranges):
if r[0] <= percentage <= r[1]:
return i
return -1
print(percent_to_stars(11))
print(percent_to_stars(99))
print(percent_to_stars(30))