2014-09-30 3 views
-3

Я:настройка цикла для подсчета

  1. получения пользовательского ввода в виде строки.
  2. , используя цикл вложенных циклов, чтобы подсчитать количество раз, когда появится каждая буква.

На данный момент, предположим, что все в нижнем регистре.

Это желаемый результат, который я ищу.

please enter a sentence: this is a test 

a : 1 

e : 1 

h : 1 

i : 2 

s : 3 

t : 3 

До сих пор в Python, я могу получить это далеко:

sentence = input("Please enter a sentence: ") 

Я знаю, что ответ будет нужен счетчик и вложенный цикл.

for alpha in 

['a','b','c',........,'z']: 
+0

В качестве побочного примечания вы можете «импортировать строку», а затем просто «для альфы» в string.ascii_lowercase: '. – abarnert

+1

В любом случае, вот подсказка: внутри этого цикла вы хотите узнать, сколько раз '' появляется в 'предложение', правильно? Итак, вы можете сделать 'для alpha2 в предложении:', а затем сравнить 'if alpha == alpha2:'. Что вы можете сделать оттуда? – abarnert

+0

Большое спасибо, что на самом деле помогает мне много. это для проекта компьютерного программирования, это не полный вопрос, поэтому не стоит беспокоиться. но я не смог понять, как структурировать цикл for, мы только говорили о циклах с целыми числами и плаваем не столько с строками, а буквами и т. д. – trenten

ответ

1

Не можете использовать встроенный в Counter функции в модуле сбора.

просто импортировать счетчик из модуля коллекций, а затем сделать это:

cString = Counter(SomeString) 
#return the cString object 

#returns the object in order of occurrence. 
cString.most_common 

Edit:

Однако, если это, как я полагаю, для выполнения домашних заданий, и вы должны сделать это в самый простой способ (и не давая вам ответа) - это те шаги, которые вам нужно предпринять.

  1. Построить функцию, которая принимает строку как пары
  2. Есть массив, который содержит все символы алфавита
  3. Для каждого элемента в альфа-массиве сравнить элемент для каждого элемента строки ввода в получить количество вхождений
  4. Добавить пару ключей значение символов и подсчитывать в словарь
  5. Возврат/печать словарь
+0

Это не соответствует требованию "больно базовый », особенно без объяснения того, как это работает. Он также не обеспечивает спроектированный вывод, который явно находится в алфавитном порядке, но не самый общий для наименее, и трудно представить, что ОП будет определять, как это сделать без посторонней помощи. – abarnert

+1

Я бы назвал это основным, но я также предположил, что это было для какой-то домашней работы. Таким образом, я дал ответ, как бы я это сделал. Да, это из спецификации, но я дал это на случай, если ошибаюсь, и это не для домашней работы. –

+0

спасибо, ребята, мне нужна помощь, структурируя его. это вопрос для школьного проекта, но это не полный вопрос, это всего лишь очень небольшая часть вопроса. Я просто не уверен, как структурировать цикл for. Я могу получить вход (легко), тогда я не уверен как использовать альфа в ['a', 'b', ...., 'z'] в цикле for, чтобы отображать вывод в алфавитном порядке вниз, не показывая тех, у кого нет символов. Я думаю, что буду нужен цикл for, чтобы подсчитать его, но мы не можем использовать строку импорта или любой метод подсчета. просто базовый для петель. о котором мы почти не говорили. – trenten

0
sentence = input("Enter the sentence: ") 
count = 0 

sentence = sentence.lower() 

for letters in ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']: 
    for letter in sentence: 
      if letters == letter: 
       count += 1 
    if (count != 0): 
     print (letters,":",count) 
     count = 0 
Смежные вопросы