Задать вопрос
@babydick_danilko

Почему if text == line не срабатывает, хотя на выходе text = а, line = а?

Если писать код вот так, то все хорошо.
for line in phrases_read:
    if text in line.lower():
        ...

Но если за место text = а, line = а, окажется text = а, а в line = автомобиль?
В случае если "автомобиль" будет первой линией, а буква "а" второй, то код посчитает что "автомобиль" подходит под if

Если пишу
if text == line.lower():
    ...

И если text = а, line = а, код просто игнорит данное совпадение
(text и line в строку переводил, все аналогично. Чтение идет из txt файла построчно с помощью разрешения "r")
  • Вопрос задан
  • 136 просмотров
Подписаться Простой Комментировать
Решения вопроса 1
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Если у оператора `in` оба аргумента строки, то этот оператор возвращает вхождение подстроки в строку. Буква "а" есть в слове "автомобиль" и тут ничего удивительного нет. Вы очень небрежно и неаккуратно формулируете вопрос. Наверняка не понимаете как работают операторы и не знаете, что при чтении из файла в строках остаются символы абзацев.

Приводите значение строк полностью. Вы можете не заметить абзаца, если печатаете строку. печатайте repr(text), там будет видно непечатные символы.
И если text = а, line = а, код просто игнорит данное совпадение

Вот это поведение скорее всего обусловлено либо непечатными символами, либо буква у вас на разных языках написана.

Приводите код полностью. В текущем виде вы, сами того не понимая (как, гапример в случае с непечатными символами), можете не придать значения важным вещам. Вы, вон, даже кавычки ставить ленитесь.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы