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))
Вернуться на верх