Форум сайта python.su
0
Доброго времени суток!
Друзья, как выполнить такую задачу?
Программа должна спрашивать у пользователя русские слова до тех пор, пока он не введёт пустое слово. После этого распечатать все введённые слова, оставив в них только гласные.
Могу написать для одного слова/предложения, а вот для цикла нет 
И еще такая штука: нужно чтобы все распечатывалось как реальное предложние, то есть вариант
for i in new_word:
print i,
word = raw_input (u'Введите слово ').decode('cp1251')
new_word = ''
CONSTANTS = u'цкнгшщзхфвпрлдчсмтб'
for letter in word:
if letter.lower() not in CONSTANTS:
new_word += letter
print new_wordОтредактировано BG (Ноя. 19, 2012 17:07:33)
Офлайн
25
Вложенные циклы?
Офлайн
Этот код, что вы привели, вложите в тело цикла while True:. После ввода слова проверяйте содержимое строки, если оно удовлетворяет условию прекращения цикла (скажем, пустая строка будет if not word), то break.
Офлайн
63
А если пользователь введет число???
Предварительно необходимо отследить, что ввел пользователь…
Рекомендую исопльзовать
if word.isalpha() != False: # В word только слова
Офлайн
43
4kpt
вылезьте из криокамеры наконец 
if word.isalpha():
Офлайн
63
sergeek
Привычка явно указывать значение…
Я знал, что так можно….
sergeek
С тем учетом, что Вы рекомендуете втуливать global…
Вылезаем вместе…:)
Отредактировано 4kpt (Ноя. 19, 2012 23:19:13)
Офлайн
0
4kpt
По умолчанию пользователь вводить должен слово, так что это не обязательно 
dimy44
Если я вас правильно понял, то выходит следующая штука:
new_word = ''
word = raw_input (u'Введите слово ').decode('cp1251')
CONSTANTS = u'цкнгшщзхъфвпрлдчсмтьб'
while True:
word = raw_input (u'Введите слово ').decode('cp1251')
if not word:
break
for letter in word:
if letter.lower() not in CONSTANTS:
new_word += letter
print new_word
Отредактировано BG (Ноя. 20, 2012 00:17:38)
Офлайн
568
CONSTANTS = u'бвгджзйклмнпрстфхцчшщъь' result=[] while True: word = raw_input (u'Введите слово ').decode('utf-8') if not word: break tmp='' for letter in word: if letter.lower() not in CONSTANTS: tmp+=letter result.append(tmp) print result
Офлайн
36
CONSTANTS = u'бвгджзйклмнпрстфхцчшщъь' word = raw_input (u'Введите слово ') while word: print(u"".join(_ for _ in word.decode("utf-8") if _ not in CONSTANTS)) word = raw_input (u'Введите слово ')
Офлайн
0
FishHook, пишет UnicodeDecodeError: ‘utf8’ codec can't decode byte 0xe4 in position 0: invalid continuation byte
меняю на кодировку cp1251 и вылезает syntax error, подсвечивая not
Что может быть?
Офлайн