2013-06-19 3 views
1

Я создаю программу, в которую вы говорите, чтобы дать ей команду, которую она запускает. Проблема в том, что когда я запускаю программу, и я общаюсь с ней, она может загладить некоторые буквы, которые у меня нет в записях кода, поэтому она не будет запускать эту команду. Есть ли способ заставить python не беспокоиться о том, являются ли слова капитализированными? Я уже пробовал заглавные буквы, но, кажется, они капитализируют их, когда захотят. Код:Отмена капитализации в python

import speech 
words = {"test1", "hello"} 
test = speech.input("test: ") 
tokens = test.split() 
if words.intersection(tokens): 
    print 'hi' 
else: 
    print 'test' 
+0

Вы можете запускать '.lower()' на все, чтобы капитализации просто не было? –

+0

@ RyanSaxe Благодарим за отзыв – user2458048

ответ

4

Вот идея: превратить вход в нижний регистр перед тем делает любые сравнения:

tokens = test.lower().split() 

И убедитесь, что все элементы в words в нижнем регистре, тоже:

words = { e.lower() for e in words } 

Выполняя вышеуказанное, мы сравниваем только символы нижнего регистра на всей программе, поэтому капитал ization не должно быть проблемой.

+0

Большое спасибо – user2458048