Python

Оцените первую программу на Python, если не трудно :)

Здравствуйте, оцените пожалуйста первую программу на Python :)
print("Добро пожаловать на контролоьную работу по биологии для 5,6,7 классов.")
print("Каждое слово пиши с большой буквы, варианты ответов тоже пиши большими буквами.")
print("Ответ на каждый вопрос всегда ОДНА буква.")
print("Всё нужно писать только Русскими буквами.")
balll = 0
ball = 0
otvet = 0
bal = 0
name = str(input("Введи своё имя: "))
fam = str(input("Введи свою фамилию: "))
print("5-7")
klas = str(input("Введи цифру своего класса: "))
print("А-Е")
klasb = str(input("Введи букву своего класса: "))
print ((fam + " " + name + "." + " " + klas + klasb))
print("Всё верно?")
v = input("Да или Нет: ")

while v == "Нет":
name = str(input("Введи своё имя: "))
fam = str(input("Введи свою фамилию: "))
print("5-7")
klas = str(input("Введи цифру своего класса: "))
print("А-Е")
klasb = str(input("Введи букву своего класса: "))
print ((fam + " " + name + "." + " " + klas + klasb))
print("Всё верно?")
v = input("Да или Нет: ")

print("Отлично! Первый вопрос:")
print("Фотосинтез происходит:")
print("А) В усьтицах. Б) В межклетниках. В) В хлоропластах.")
otvet1 = input("Ответ: ")
if otvet1 == "В":
print ("Молодец, ты ответил правильно!")
bal += 2
otvet += 1
else:
print ("Ты ответил неверно!")

print("Теперь второй вопрос:")
print("В процессе фотосинтеза происходит:")
print("А) Поглощение кислорода, выделение воды и углекислого газа. Б) Поглощение углекислого газа и образование кислорода. В) Нет првильного ответа")
otvet2 = input("Ответ: ")
if otvet2 == "Б":
print ("Молодец, ты ответил правильно!")
bal += 3
otvet += 1
else:
print("Ты ответил неверно!")

print("Дальше третий вопрос:")
print("Крахмал, образующийся в листьях, в процессе фотосинтеза является")
print("А) Запасным питательным веществом. Б) Побочным продуктом обмена, выделяемым во внешнюю среду. В) Нет правильного ответа.")
otvet3 = input("Ответ: ")
if otvet3 == "А":
print ("Молодец, ты ответил правильно!")
bal += 3
otvet += 1
else:
print ("Ты ответил неверно!")

print("Переходим к третьему вопросу:")
print("Крахмал, образующийся в листьях в процессе фотосинтеза, нужен растению для")
print("А) Выделения его во внешнюю среду. Б) Снабжение всех частей растения. В) Нет правильного ответа.")
otvet4 = input("Ответ: ")
if otvet4 == "Б":
print("Молодец, ты ответил правильно!")
bal += 3
otvet += 1
else:
print("Ты ответил неверно!")

print("Теперь пятый вопрос:")
print("Бактерии способны к фотосинтезу?")
print("А) Способны. Б) Не способны. ")
otvet5 = input("Ответ: ")
if otvet5 == "А":
bal += 2
otvet += 1
else:
print("Ты ответил неверно!")

print("Теперь шестой вопрос:")
print("Основной продукт фотосинтеза")
print("А) Сахар. Б) Кислород. В) Белки. Г) Соли.")
otvet6 = input("Ответ: ")
if otvet6 == "А":
print("Ты ответил правильно!")
bal += 2
otvet += 1
else:
print("Ты ответил неверно!")

print("Теперь седьмой вопрос:")
print("Фотосинтез происходит")
print("А) Только на свету. Б) Только ночью. В) В темноте. Г) Только осенью.")
otvet7 = input("Ответ: ")
if otvet7 == "А":
print("Ты ответил правильно!")
bal += 2
otvet += 1
else:
print("Ты ответил неверно!")

ball = str(otvet)
balll = str(bal)

print(" ")
print("Ты ответил на " + ball + " из 10 " + "вопросов")
print("Ты набрал " + balll + " Из 23 балов")
balll = int(bal)
if balll >= 20:
print("Твоя оценка - 5!")
if balll >= 17 and balll < 20:
print("Твоя оценка - 4!")
if balll >= 14 and balll < 17:
print ("Твоя оценка - 3!")
if balll < 14:
print ("Твоя оценка - 2!")
input("Для завершения работы этой программы нажми на Enter ")

((Вырезал несколько вопросов, не влезло))
Программы обычно пишутся не так громоздко. Этот пример можно сделать вот так:
Maksat Kurgunbaev
Maksat Kurgunbaev
97 235
Лучший ответ
bal, ball, balll = это уже шедевр....
Georg Soprovych
Georg Soprovych
65 777
Ну она хотя бы работает. Из серьезных косяков - Названия переменных. Видя ball, сразу думается про мяч, а не про баллы. Еще, одна и та же процедура повторяется на каждом вопросе, её можно завернуть в функцию, чтобы везде не повторять.

Ну и, писать варианты ответов русскими буквами - опасно. В самой программе можно перепутать русские и латинские `a`, `в`. Числами надежнее.

Перевод, без искажения оригинала (вроде интуитивно понятно):

print("Добро пожаловать на контролоьную работу по биологии для 5,6,7 классов.")
print("Каждое слово пиши с большой буквы.")
print("Ответ на каждый вопрос всегда ОДНО число.")

while True:
    name = input("Введи своё имя: ")
    surname = input("Введи свою фамилию: ")

    _class_ = [
        input("5-7\nВведи цифру своего класса: "),
        input("А-Е\nВведи букву своего класса: ")
    ]

    print(surname + " " + name + ". " + _class_[0] + _class_[1])

    confirm = input("Всё верно? \nДа или Нет: ")
    if confirm.lower() == "да":
        break

data = [
    {
        "msg": "Отлично! Первый вопрос:",
        "question": "Фотосинтез происходит:",
        "versions": "1) В усьтицах. 2) В межклетниках. 3) В хлоропластах.",
        "correct": "3",
        "points": 2
    },
    {
        "msg": "Теперь второй вопрос:",
        "question": "В процессе фотосинтеза происходит:",
        "versions": "1) Поглощение кислорода, выделение воды и углекислого газа. 2) Поглощение углекислого газа и образование кислорода. 3) Нет првильного ответа",
        "correct": "2",
        "points": 3
    },
    {
        "msg": "Дальше третий вопрос:",
        "question": "Крахмал, образующийся в листьях, в процессе фотосинтеза является",
        "versions": "1) Запасным питательным веществом. 2) Побочным продуктом обмена, выделяемым во внешнюю среду. 3) Нет правильного ответа.",
        "correct": "1",
        "points": 3
    },
    {
        "msg": "Переходим к четвертому вопросу:",
        "question": "Крахмал, образующийся в листьях в процессе фотосинтеза, нужен растению для",
        "versions": "1) Выделения его во внешнюю среду. 2) Снабжение всех частей растения. 3) Нет правильного ответа.",
        "correct": "2",
        "points": 3
    },
]

###

correct_answers = 0
points = 0

def ask(obj):
    global correct_answers
    global points

    print(obj["msg"])
    print(obj["question"])
    print(obj["versions"])

    answer = input("Ответ: ").lower()
    if answer == obj["correct"].lower():
        print("Молодец, ты ответил правильно!")
        points += obj["points"]
        correct_answers += 1
    else:
        print("Ты ответил неверно!")

def get_grade(points):
    keys = [20, 17, 14, 0]

    for i, num in enumerate(keys):
        if points >= num:
            return len(keys) + 1 - i

###

for obj in data: ask(obj)

print("\nТы ответил на " + str(correct_answers) + " из 10 вопросов")
print("Ты набрал " + str(points) + " Из 23 балов")

print("Твоя оценка - " + str(get_grade(points)) + "!")

input("Для завершения работы этой программы нажми на Enter ")
Шора Анис
Шора Анис
62 360
У тебя ошибка в 20-й строчке.
Саша Карнавец
Саша Карнавец
4 624
Виталий Жовтилов name = str(input("Введи своё имя: "))
Если я правильно понял эта строчка. А что там не так?