@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")
  • Вопрос задан
  • 135 просмотров
Решения вопроса 1
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Если у оператора `in` оба аргумента строки, то этот оператор возвращает вхождение подстроки в строку. Буква "а" есть в слове "автомобиль" и тут ничего удивительного нет. Вы очень небрежно и неаккуратно формулируете вопрос. Наверняка не понимаете как работают операторы и не знаете, что при чтении из файла в строках остаются символы абзацев.

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

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

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

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

Войти через центр авторизации
Похожие вопросы