Добавление к переменной в цикле. Переменная продолжает сбрасываться в 0 ⇐ Python
-
Гость
Добавление к переменной в цикле. Переменная продолжает сбрасываться в 0
Я работаю над небольшой викториной, которая добавляет 5 баллов за каждый правильный вопрос. У меня есть функция, в которой есть цикл, в котором она задает вам вопрос. Если ответ правильный, он добавляет 5 баллов и печатает ваш результат вместе с сообщением, а затем возвращается, чтобы задать вам вопрос. В противном случае он выведет правильный ответ и выдаст вам окончательную оценку.
Моя проблема заключается в том, что при создании цикла значение PlayerPoints устанавливается на 0 каждый раз, когда цикл перезапускается. Таким образом, пока очки добавляются, значение PlayerPoints на каждой итерации становится равным 0.
Вот мой код:
из случайного импорта randrange МЦД = ((2023, «Макс Ферстаппен»), (2022, «Макс Ферстаппен»), (2021, «Макс Ферстаппен»), (2020, «Льюис Хэмилтон»), (2019, «Льюис Хэмилтон»), (2018, «Льюис Хэмилтон»), (2017, «Льюис Хэмилтон»), (2016, «Нико Росберг»), (2015, «Льюис Хэмилтон»), (2014, «Льюис Хэмилтон»), (2013, «Себастьян Феттель»), (2012, «Себастьян Феттель»), (2011, «Себастьян Феттель»), (2010, «Себастьян Феттель»), (2009, «Дженсон Баттон»), (2008, «Льюис Хэмилтон»), (2007, «Кими Райкконен»), (2006, «Фернандо Алонсо»), (2005, «Фернандо Алонсо»), (2004, «Михаэль Шумахер»), (2003, «Михаэль Шумахер»), (2002, «Майкл Шимахер»), (2001, «Михаэль Шумахер»), (2000, «Михаэль Шумахер»), (1999, «Майк Хаккинен»), (1998, «Мика Хаккинен»), (1997, «Жак Вильнёв»), (1996, «Дэймон Хилл»), (1995, «Михаэль Шумахер»), (1994, «Михаэль Шумахер»), (1993, «Ален Прост»), (1992, «Найджел Мэнселл»), (1991, «Айртон Сенна»), (1990, «Айртон Сенна»), (1989, «Ален Прост»), (1988, «Айртон Сенна»), (1987, «Нельсон Пике»), (1986, «Ален Прост»), (1986, «Ален Прост»), (1985, «Ален Прост»), (1984, «Ники Лауда»), (1983, «Нельсон Пике»), (1982, «Кеке Росберг»), (1981, «Нельсон Пике»), (1980, «Алан Джонс»), (1979, «Джоди Шектер»), (1978, «Марио Андретти»), (1977, «Ники Лауда»), (1976, «Джеймс Хант»), (1975, «Ники Лауда»), (1974, «Эмерсон Фиттипальди»), (1973, «Джеки Стюарт»), (1972, «Эмерсон Фиттипальди»), (1971, «Джеки Стюарт»), (1970, «Йохен Риндт»), (1969, «Джеки Стюарт»), (1968, «Грэм Хилл»), (1967, «Денни Халм»), (1966, «Джек Брэбэм»), (1965, «Джим Кларк»), (1964, «Джон Сёртиз»), (1963, «Джим Кларк»), (1962, «Грэм Хилл»), (1961, «Фил Хилл»), (1960, «Джек Брэбэм»), (1959, «Джек Брэбэм»), (1958, «Джек Хоторн»), (1957, «Хуан Мануэль Фанхио»), (1956, «Хуан Мануэль Фанхио»), (1955, «Хуан Мануэль Фанхио»), (1954, «Хуан Мануэль Фанхио»), (1953, «Альберто Аскари»), (1952, «Альберто Аскари»), (1951, «Хуан Мануэль Фанхио»), (1950, «Джузепе Фарина») ) определенно вопроситель(): Очки игрока = 0 LocalWDC = ((WDCs[randrange(73)])) print(f"Кто выиграл чемпионат мира в {LocalWDC[0]}? ") PlayerResponse = вход (str()) если PlayerResponse == LocalWDC[1]: Очки игрока = Очки игрока + 5 print("Это правильно!") print(f"Ваш счет – {PlayerPoints}!") вернуть вопросителя() еще: print(f"Неправильно! Чемпионом того года был {LocalWDC[1]}.") print(f"Ваш окончательный результат – {PlayerPoints}!") создатель вопросов() Наверное, это что-то очень простое, но я в тупике и не могу понять, как это сделать правильно. Я пробовал выполнить вложенную функцию и использовать цикл while, но безрезультатно.
Я знаю, что Python не поддерживает функцию перехода, поэтому не знаю, что делать.
Я работаю над небольшой викториной, которая добавляет 5 баллов за каждый правильный вопрос. У меня есть функция, в которой есть цикл, в котором она задает вам вопрос. Если ответ правильный, он добавляет 5 баллов и печатает ваш результат вместе с сообщением, а затем возвращается, чтобы задать вам вопрос. В противном случае он выведет правильный ответ и выдаст вам окончательную оценку.
Моя проблема заключается в том, что при создании цикла значение PlayerPoints устанавливается на 0 каждый раз, когда цикл перезапускается. Таким образом, пока очки добавляются, значение PlayerPoints на каждой итерации становится равным 0.
Вот мой код:
из случайного импорта randrange МЦД = ((2023, «Макс Ферстаппен»), (2022, «Макс Ферстаппен»), (2021, «Макс Ферстаппен»), (2020, «Льюис Хэмилтон»), (2019, «Льюис Хэмилтон»), (2018, «Льюис Хэмилтон»), (2017, «Льюис Хэмилтон»), (2016, «Нико Росберг»), (2015, «Льюис Хэмилтон»), (2014, «Льюис Хэмилтон»), (2013, «Себастьян Феттель»), (2012, «Себастьян Феттель»), (2011, «Себастьян Феттель»), (2010, «Себастьян Феттель»), (2009, «Дженсон Баттон»), (2008, «Льюис Хэмилтон»), (2007, «Кими Райкконен»), (2006, «Фернандо Алонсо»), (2005, «Фернандо Алонсо»), (2004, «Михаэль Шумахер»), (2003, «Михаэль Шумахер»), (2002, «Майкл Шимахер»), (2001, «Михаэль Шумахер»), (2000, «Михаэль Шумахер»), (1999, «Майк Хаккинен»), (1998, «Мика Хаккинен»), (1997, «Жак Вильнёв»), (1996, «Дэймон Хилл»), (1995, «Михаэль Шумахер»), (1994, «Михаэль Шумахер»), (1993, «Ален Прост»), (1992, «Найджел Мэнселл»), (1991, «Айртон Сенна»), (1990, «Айртон Сенна»), (1989, «Ален Прост»), (1988, «Айртон Сенна»), (1987, «Нельсон Пике»), (1986, «Ален Прост»), (1986, «Ален Прост»), (1985, «Ален Прост»), (1984, «Ники Лауда»), (1983, «Нельсон Пике»), (1982, «Кеке Росберг»), (1981, «Нельсон Пике»), (1980, «Алан Джонс»), (1979, «Джоди Шектер»), (1978, «Марио Андретти»), (1977, «Ники Лауда»), (1976, «Джеймс Хант»), (1975, «Ники Лауда»), (1974, «Эмерсон Фиттипальди»), (1973, «Джеки Стюарт»), (1972, «Эмерсон Фиттипальди»), (1971, «Джеки Стюарт»), (1970, «Йохен Риндт»), (1969, «Джеки Стюарт»), (1968, «Грэм Хилл»), (1967, «Денни Халм»), (1966, «Джек Брэбэм»), (1965, «Джим Кларк»), (1964, «Джон Сёртиз»), (1963, «Джим Кларк»), (1962, «Грэм Хилл»), (1961, «Фил Хилл»), (1960, «Джек Брэбэм»), (1959, «Джек Брэбэм»), (1958, «Джек Хоторн»), (1957, «Хуан Мануэль Фанхио»), (1956, «Хуан Мануэль Фанхио»), (1955, «Хуан Мануэль Фанхио»), (1954, «Хуан Мануэль Фанхио»), (1953, «Альберто Аскари»), (1952, «Альберто Аскари»), (1951, «Хуан Мануэль Фанхио»), (1950, «Джузепе Фарина») ) определенно вопроситель(): Очки игрока = 0 LocalWDC = ((WDCs[randrange(73)])) print(f"Кто выиграл чемпионат мира в {LocalWDC[0]}? ") PlayerResponse = вход (str()) если PlayerResponse == LocalWDC[1]: Очки игрока = Очки игрока + 5 print("Это правильно!") print(f"Ваш счет – {PlayerPoints}!") вернуть вопросителя() еще: print(f"Неправильно! Чемпионом того года был {LocalWDC[1]}.") print(f"Ваш окончательный результат – {PlayerPoints}!") создатель вопросов() Наверное, это что-то очень простое, но я в тупике и не могу понять, как это сделать правильно. Я пробовал выполнить вложенную функцию и использовать цикл while, но безрезультатно.
Я знаю, что Python не поддерживает функцию перехода, поэтому не знаю, что делать.
Мобильная версия