Я хочу предотвратить дублирование вывода строк - PullRequest
0 голосов
/ 29 мая 2020

Я написал такой код.

sentence = input("문자열 입력 : ")
sentence = sentence.lower()
sentence = sentence.replace(' ','')
def count(string):
    for i in range(0, len(sentence)):
        a = sentence[i]
        b = sentence.count(a)
        i += 1
        print("%s : %s" %(a, b))
    return 
count(sentence)

Но я хочу один раз распечатать его, если уже есть такой же алфавит. Например, если я ввожу слово «ЯБЛОКО, яблоко!», Код, который я написал, напечатает a : 2 p : 4 p : 4 l : 2 e : 2 , : 1 a : 2 p : 4 p : 4 l : 2 e : 2 ! : 2, но я хочу напечатать вот так. a : 2 p : 4 l : 2 e : 2 , : 1 ! : 1

Я думаю, что

for i in range(0, len(sentence)):
  a = sentence[i]
  b = sentence.count(a)
  i += 1 

неверно, но я не знаю, как это исправить.

Что делать ???

1 Ответ

0 голосов
/ 29 мая 2020

Первое, что следует отметить, - это то, что аргумент, который вы передаете функции (строка), и переменная, которую вы обрабатываете внутри функции, отличаются. Итак, аргумент следует заменить на предложение.

затем вы можете использовать словарь для подсчета очков:

def count(sentence):
    count_dictionary = {}
    for character in sentence:
        count_dictionary[character] = sentence.count(character)

    for a, b in count_dictionary.items():
        print(a, ' : ', b)
    return count_dictionary
...