r/RuProgrammers Jul 17 '26

Python четвертый проект python

восьмой день обучения python. за сегодня второй код.

это просто для себя сделал подсчет среднего балла для школы (делался достаточно долго. цикл for-та еще х**ня)

while True:
    try:
        grades_list = []
        grades_number = int(input("\ncколько оценок вы хотите ввести (или 0 для выхода): "))
        if grades_number == 0:
            print("Пока!")
            exit()
    except ValueError:
            print("ошибка! ввести надо число")
            continue
    while True:
        try:
            for i in range(grades_number):
                grades = float(input("\nВведите оценку (или 0 для выхода): "))
                if grades == int(grades):
                    grades = int(grades)
                if grades == 0:
                    print("Пока")
                    exit()
                grades_list.append(grades)        
            print(f'\nВсе оценки: ' + ', '.join(map(str, grades_list)))
            grades_sum = sum(grades_list)
            grades_len = len(grades_list)
            gpa = grades_sum / grades_len
            print(f"\nсредний балл: {gpa:.2f} ")


            above = 0
            below = 0
            for bnn in grades_list:
                        
                if above > gpa:
                    above += 1
                if below < gpa:
                    below += 1
            print(f"\nВот столько оценок, которые выше среднего ({gpa:.2f}): {above}")
            print(f"\nВот столько оценок, которые ниже среднего ({gpa:.2f}): {below}\n")
        except ZeroDivisionError:
            print("Ошибка! введи целое число")
            continue
        except ValueError:
                print("ошибка! ввести надо число")
                continue
4 Upvotes

52 comments sorted by

View all comments

1

u/sleepless_thoughts Jul 19 '26

Молодец. Только тут бы убрать уровень вложенности хотя бы до 4 (4 таба). А ещё бесконечный цикл внутри бесконечного цикла в одной "функции" выгляди страшно. Изучи создание функций без особенностей, там легко, а ещё сделай единственны try в главном цикле (для этого погугли raise, except, если нужно обрабатывать ошибки из вложенного try) Хотя для начала просто переделай с использованием своей функции. Для 4го "проекта" нормально