Вопрос по python – Как сравнить ввод с клавиатуры на строку в Python?

2

Я пытаюсь сравнить ввод с клавиатуры на строку:

import sys

# read from keyboard
line = sys.stdin.readline()
if line == "stop":
    print 'stop detected'
else:
    print 'no stop detected'

Когда я печатаю «стоп» на клавиатуре и введите, я хочу, чтобы программа напечатала «обнаруженная остановка»; но он всегда печатает «стоп не обнаружен». Как я могу это исправить?

это работает, спасибо Django
Реальные уроки, которые можно извлечь из этого: (a) сравнения строк являются буквальными и точными ... они чувствительны к пробелам, пунктуации, заглавным буквам и даже не печатаются, возможно, «скрытые» персонажи; и (b) такие методы, как deadline (), могут иметь тонкости в своих возвращаемых значениях. Например тамmight быть \ n (новой строкой) в конце входной строки ... но возможно, что входной поток может возвратить строку в EOF без завершающего символа новой строки. (Так что не думайте, что каждая строка, возвращаемая readline (), обязательно заканчивается \ n). Jim Dennis
Пытатьсяif line.strip() == "stop" C2H5OH

Ваш Ответ

1   ответ
5

sys.stdin.readline() включает в себя завершающий символ новой строки. Либо использоватьraw_input()или сравнитьline.rstrip("\n") на строку, которую вы ищете (или дажеline.strip().lower()).

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