2016-01-23 3 views
-2

Я был отмечен сообщением о повторном вопросе. Однако мой вопрос был не таким, как другой кодер спрашивал, как «подсчитать количество вхождений определенных символов в строке». Мой вывод не учитывал появления конкретных символов, но считал общее количество конкретных символов (всех гласных) в строке. Например, другой парень ищет выход, чтобы быть:Подсчет гласных в Python 2.7

A:1 E:6 I:2 

Я также искал в общей сложности чисел, так что мой вывод должен быть: 9 (само собой разумеющееся, мы говорим о той же строки в обоих кодов) «.

Я создал кусок кода, но по какой-то причине он рассчитывает все буквы, а не только гласные. Я не могу понять, какую часть я не заладилось в.

vowels = 'a', 'e', 'i', 'o', 'u' 

ip_str = raw_input("Enter a string: ") 
ans = str(raw_input) 

count = (0) 

for letters in ans: 
    if letters in vowels: 
     count += 1 

print str(count) 
+2

Вам нужно будет указать свой код как текст, а не ссылку на изображение. – shuttle87

+3

Вместо того чтобы опубликовать скриншот, вы должны опубликовать фактический текст – Sayse

+0

ну, вы никогда не используете 'ip_str' – M4rtini

ответ

0

У нас здесь несколько вещей не так. Во-первых, позвольте мне это исправить, а потом я объясню:

vowels = ('a', 'e', 'i', 'o', 'u') 

ans = raw_input("Enter a string: ") 

count = 0 
for letters in ans: 
    if letters in vowels: 
     count += 1 

print str(count) 

raw_input является функцией, а не переменная. Я думаю, что вы имели в виду str(ip_str), но нет необходимости делать это, так как raw_input всегда будет возвращать строку:

Функция затем считывает строку из ввода, преобразует его в строку (зачистки косую новой строки), и возвращает это.

Итак, мы можем прямо установить ans = raw_input("Enter a string: ").

Теперь, для пары вопросов стиля: vowels - это кортеж, и вокруг него () делает это более ясно. Он будет отлично работать в любом случае. count - это просто int и не нуждается ни в одном () вокруг определения.

Короче говоря, единственное, что на самом деле не так с этим, было то, как вы определяли ans.

+0

Я так благодарен за ваш вклад и за то, что вы нашли время, чтобы помочь мне! Это было очень полезно и помогло мне понять, куда я перепутал. Теперь код работает отлично, и я так благодарен! Я продолжал смотреть на него, но «писатели блокировали» и не могли понять, где я ошибаюсь. Я очень новичок в этом, но я стараюсь очень усердно учиться и понимать это. Бесконечно благодарен! Я бы проголосовал за ваш ответ, но, к сожалению, у меня пока нет репутации. Это был мой первый вопрос, размещенный на этом сайте. Еще раз спасибо! – Mackenzie

+0

Я пропустил ваш комментарий раньше, но спасибо! Рад помочь :) – Will

3

Вы храните введите в переменную ip_str, но вы никогда не будете действовать снова используйте эту переменную. Вы хотите использовать эту переменную при итерации. Обратите внимание, что в вашем коде, когда у вас есть:

>>> str(raw_input) 
'<built-in function raw_input>' 

это на самом деле получает имя встроено функции и магазинов, в ans и не введенные данные. Поэтому каждый раз, когда вы запускаете, вы получаете количество гласных в '<built-in function raw_input>' вместо вашего ввода, это всегда будет 9.

+0

Спасибо! Я ценю ваш ответ. Как ни странно, я тестировал код с моим именем «Mackenzie» и у него было 9 букв, поэтому я предположил, что он подсчитывает все буквы. Я бы оценил ваш ответ, но у меня пока нет репутации. Это был мой первый вопрос. Но благодаря миллиону, это объясняло многое! – Mackenzie

0

Я немного изменил ваш код, и это работает отлично для меня.

vowels = 'a', 'e', 'i', 'o', 'u' 

inp = input("Enter a string: ") 

count = 0 

for letters in inp: 
    if letters in vowels: 
     count += 1 


print("Count: " + str(count)) 
+0

Спасибо за помощь! – Mackenzie

0
raw_input("string") 

Это функция, которая принимает строку в качестве параметра, отпечатки строки, получает входные данные от пользователя и затем сохраняет его в окрестностя вы храните всю функцию (например: variable1 = raw_input («string») предложит вам «string», а затем ждет ваш вход, а затем сохранит этот вход в переменной1)

+0

Спасибо за информацию! Я ценю это! – Mackenzie

Смежные вопросы