Найти - Пользователи
Полная версия: Без согласных
Начало » Python для новичков » Без согласных
1 2
BG
Доброго времени суток!
Друзья, как выполнить такую задачу?

Программа должна спрашивать у пользователя русские слова до тех пор, пока он не введёт пустое слово. После этого распечатать все введённые слова, оставив в них только гласные.

Могу написать для одного слова/предложения, а вот для цикла нет

И еще такая штука: нужно чтобы все распечатывалось как реальное предложние, то есть вариант
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

Нужно получить такой же результат, только для нескольких слов/предложений. Каждое - на отдельной строке
s0rg
Вложенные циклы?
dimy44
Этот код, что вы привели, вложите в тело цикла while True:. После ввода слова проверяйте содержимое строки, если оно удовлетворяет условию прекращения цикла (скажем, пустая строка будет if not word), то break.
4kpt
А если пользователь введет число???
Предварительно необходимо отследить, что ввел пользователь…
Рекомендую исопльзовать
if word.isalpha() != False: # В word только слова
sergeek
4kpt
вылезьте из криокамеры наконец
if word.isalpha():
4kpt
sergeek
Привычка явно указывать значение…
Я знал, что так можно….
sergeek
С тем учетом, что Вы рекомендуете втуливать global…
Вылезаем вместе…:)
BG
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
Но тут две проблемы:
1) Первое вводимое слово не фильтруется
2) Весь результат идет сплошной строкой
FishHook
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
pyuser
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'Введите слово ')
BG
FishHook, пишет UnicodeDecodeError: ‘utf8’ codec can't decode byte 0xe4 in position 0: invalid continuation byte
меняю на кодировку cp1251 и вылезает syntax error, подсвечивая not
Что может быть?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB