@laspo

Как исправить ошибку в программе на python?

Начал изучать ООП
Решил переделать свою одну из первых программ
И вот незадача выдаёт ошибку в которой я разорбраться не могу
Вот код:
class ProgrammForTest():
    def __init__(self,a, b, c, ball):
        self.a = a
        self.b = b
        self.c = c
        self.ball = ball
    def enter(self):
        self.a = int(input("Введи количество вопросов\n>"))
        self.b = int(input("Введи количество правильных ответов\n>"))
        self.ball = int(input("Какая у вас система оценивания вводите цифрой(5, 12)\n>"))
        c = int(((self.b/self.a)*100))
        if self.ball == 12: #Если система двенадцатибальная обрабатывается данный кусок кода
            if 100 >= c >= 92: #Если процент равен диапазону от 100 до 92, то выводится оценка которая была рассчитана на калькуляторе 
                print("Ваша оценка: 12") #Следующие условия делают тоже самое: Диапазон, оценка
            elif 92 >= c >= 84:
                print("Ваша оценка: 11")
            elif 84 >= c >= 79:
                print("Ваша оценка: 10")
            elif 79 >= c >= 67:
                print("Ваша оценка: 9")
            elif 67 >= c >= 62:
                print("Ваша оценка: 8")
            elif 62 >= c >= 58:
                print("Ваша оценка: 7")
            elif 58 >= c >= 46:
                print("Ваша оценка: 6")
            elif 46 >= c >= 41:
                print("Ваша оценка: 5")
            elif 41 >= c >= 33:
                print("Ваша оценка: 4")
            elif 33 >= c >= 25:
                print("Ваша оценка: 3")
            elif 25 >= c >= 16:
                print("Ваша оценка: 2")
            elif c < 16:
                print("Ваша оценка: 1")

        elif self.ball == 5: #Если пятибальная система, то производится всё тоже самое: Диапазон, оценка
            if 100 >= c >= 84:
                print("Ваша оценка: 5")
            elif 84 >= c >= 67:
                print("Ваша оценка: 4")
            elif 67 >= c >= 50:
                print("Ваша оценка: 3")
            elif 50 >= c >= 0:
                print("Ваша оценка: 2")

a = ProgrammForTest()
a.enter()
dont_exit = input("Press 'Enter' to exit")

Вот ошибка:
ProgrammForTest.__init__() missing 4 required positional arguments: 'a', 'b', 'c', and 'ball'
File "C:\Users\Никита\Documents\#программа для расчёта оценок.py", line 50, in
a = ProgrammForTest()
^^^^^^^^^^^^^^^^^
TypeError: ProgrammForTest.__init__() missing 4 required positional arguments: 'a', 'b', 'c', and 'ball'

В том прикол что если место __init__() я напишу простое название метода , то всё работает.
Но мне нужно именно с __init__
  • Вопрос задан
  • 344 просмотра
Пригласить эксперта
Ответы на вопрос 1
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
А вы пробовали читать текст ошибки?
Вот смотрите, тут указано в какой строке и конкретно где в этой строке ошибка. А ниже написано в чем заключается ошибка.
File "C:\Users\Никита\Documents\#программа для расчёта оценок.py", line 50, in
a = ProgrammForTest()
^^^^^^^^^^^^^^^^^
TypeError: ProgrammForTest.__init__() missing 4 required positional arguments: 'a', 'b', 'c', and 'ball'

Вот вонкретное пояснение: "missing 4 required positional arguments: 'a', 'b', 'c', and 'ball'"

Мне кажется вам следует взять любую книгу по питону с нуля и пееречитать ее внимательно.

О каком ООП речь, если вы основных концепий еще не освоили?
Просто доверьтесь хорошей книге. пусть, например это будет Луц. Но не перескакивайте главы, выполняйте упражнения и всё у вас получится.
Сейчас же, даже если закрыть глаха на ошибки, вы написали полнейшую чушь. Бессмысленную и беспощадную.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
20 нояб. 2024, в 18:14
5000 руб./за проект
20 нояб. 2024, в 17:49
5000 руб./за проект
20 нояб. 2024, в 17:34
20000 руб./за проект