2015-07-01 8 views
-2

Я пытаюсь вызвать функцию cleanse во время функции word_counter, и я запутался в том, как это сделать.Вызов функции в другой функции

Как работает эта программа, строка проходит через функцию очистки, все, что содержит строка в удаленных_характеристиках, удаляется, а затем в нижней части. Оттуда мне нужно «позвонить» очищенное сообщение в word_counter, но это то место, где я застрял. Я попытался это сделать.

#how to call this function? 
def cleanse(message): 
    cleansed_message = '' 
    remove_characters = "+-=[]"  
    for i in message: 
      if i not in remove_characters: 
       cleansed_message = cleansed_message + i 
      cleansed_message = cleansed_message.lower() 
    return cleansed_message 

def word_counter(message): 
     # I tried calling the cleansed message here 
     message = cleanse(message) 
     count = 0 
     for i in message:  
      count = len(message.split()) 
     return count 
+2

Вы вызываете, что отлично. Однако вам нужно явно называть функцию 'word_counter' –

+0

Что вы подразумеваете явно? От основной функции? –

+0

Вот рабочий код http://dpaste.com/1E3C7YN .. Закрытие вопроса как обман –

ответ

0
def word_counter(message): 
     message = cleanse(message) 
     count = 0 
     for i in message:  
      count = len(message.split()) 
     return count 

Просто поместите message = cleanse(message) в верхней части определения функции (или, по крайней мере, до return count). Ваша функция выйдет, когда она вернет значение, поэтому весь код после этого не будет выполнен. (Обратите внимание, что есть некоторые исключения из этого правила, но и для ваших целей это безопасно думать о нем, как это.) Тогда просто позвоните word_counter в теле вашей программы, например, так:

print(word_counter("This is my super awesome message!"))

Лучшие удачи!

0
def cleanse(message): 
    cleansed_message = '' 
    remove_characters = "+-=[]"  
    for i in message: 
     if i not in remove_characters: 
      cleansed_message = cleansed_message + i 
      cleansed_message = cleansed_message.lower() 
    return cleansed_message 


def word_counter(message): 

    message = cleanse(message) 
    print(message) 
    count = 0 
    for i in message:  
     count = len(message.split()) 
    return count 

if __name__ == "__main__": 
    msg = "Hello + Hye = Hello Hey. Your string has unnecessary characters - so please remove them" 
    print(word_counter(msg)) 

Комментарии:

Ваш word_counter называется строкой сообщения, как показано в разделе:

if __name__ == "__main__": 
    msg = "Hello + Hye = Hello Hey. Your string has unnecessary characters - so please remove them" 
    print(word_counter(msg)) 

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

ВЫВОД

msg = "Hello + Hye = Hello Hey. Your string has unnecessary characters - so please remove them" 
    print(word_counter(msg)) 
+0

Спасибо за форматирование кода. – qkhan

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