Помогите найти ошибку (Windows, Python 3.9.5)

TellMeWhoIAm

Новичок
Пользователь
Фев 23, 2022
8
0
1
Python:
user_city = input().lower()
user_cityX = list(user_city)
points = 0

while True:
    if points == 0:
        if user_city in cities_of_russia:
            cities_of_russia.remove(user_city)
            if user_cityX[-1] == 'ы' or user_cityX[-1] == 'ь' or user_cityX[-1] == 'ъ' or user_cityX[-1] == 'ё':
                last_letter = user_cityX.pop(-2)
            else:
                last_letter = user_cityX.pop()

            for citiy in cities_of_russia:
                citiyX = list(citiy)
                if citiyX[0] == last_letter:
                    print(citiy)
                    cities_of_russia.remove(citiy)
                    points = points + 1
                    print(points)
                    break
        else:
            print('Я не знаю такого города.\n Пожалуйста введите другой город)')

    else:
        user_city1 = input().lower()
        user_cityX1 = list(user_city1)
        if user_city1 in cities_of_russia:
            citiyX1 = list(citiy)
            if user_cityX1[0] == citiyX1[-1]:
                cities_of_russia.remove(user_city1)
                if user_cityX1[-1] == 'ы' or user_cityX1[-1] == 'ь' or user_cityX1[-1] == 'ъ' or user_cityX1[-1] == 'ё':
                    last_letter1 = user_cityX1.pop(-2)
                else:
                    last_letter1 = user_cityX1.pop()
                for citiy1 in cities_of_russia:
                    citiyX1 = list(citiy1)
                    if citiyX1[0] == last_letter1:
                        print(citiy1)
                        cities_of_russia.remove(citiy1)
                        points = points + 1
                        print(points)
                        break
            else:
                print('Город не подходит(')

        else:
            print('Я не знаю такого города')
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
973
220
43
21
Москва
Всегда пиши в чем выражается ошибка. Код вообще не запускается? Вряд ли. Значит python выводит какую-то ошибку? Укажи её. Или код работает не так как ты ожидаешь? Напиши чего ты ждал от кода, и что получилось не так
 
  • Мне нравится
Реакции: TellMeWhoIAm

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
973
220
43
21
Москва
Меня уже цитируют...)
 
  • Мне нравится
Реакции: TellMeWhoIAm

TellMeWhoIAm

Новичок
Пользователь
Фев 23, 2022
8
0
1
Идея была написать игру в города. пользователь называет город, код проверяет есть ли такой город в списке, если есть он его из него удаляет. После этого ищет в списке город начинающийся на последнюю букву города пользователя после его выводит и также удаляет из списка с городами. дальше всё тоже самое, но уже добавляется проверка тово что пользователь ввёл город начинающийся на последнюю букву города который вывел код .
И да код запускается и с начало всё нормально, но когда пользователь вводит второй город он выводит 'Город не подходит'
 

TellMeWhoIAm

Новичок
Пользователь
Фев 23, 2022
8
0
1
Меня уже цитируют...)
Не обольщайся, это всего лишь случайность )
 
Последнее редактирование:

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
973
220
43
21
Москва
У тебя есть строка
if user_cityX1[0] == citiyX1[-1]:
Но если программа вывела например Астрахань, то она будет проверять что мы в ответ написали город, который начинается с мягкого знака, а это не подходит

P.s. чтобы брать срез у слова, не надо приводить его к списку
Python:
text = 'мир'
text_l = list(text)
print(text_l[0])  # м
# выведет тоже, что и
print(text[0])  # м
 

TellMeWhoIAm

Новичок
Пользователь
Фев 23, 2022
8
0
1
Дак у меня там есть отдельная проверка на то что если город занчиваеться на 'ы', 'ь' и т.д то берётся вторая буква с конца
 

TellMeWhoIAm

Новичок
Пользователь
Фев 23, 2022
8
0
1
Дак у меня там есть отдельная проверка на то что если город занчиваеться на 'ы', 'ь' и т.д то берётся вторая буква с конца
Python:
if user_cityX[-1] == 'ы' or user_cityX[-1] == 'ь' or user_cityX[-1] == 'ъ' or user_cityX[-1] == 'ё': last_letter = user_cityX.pop(-2) else: last_letter = user_cityX.pop()
 

TellMeWhoIAm

Новичок
Пользователь
Фев 23, 2022
8
0
1
А всё я нашёл ошибку
 

Форум IT Специалистов