В python 3 как я могу правильно вернуть переменную в функцию?

#python-3.x

#python-3.x

Вопрос:

В настоящее время я учусь в школе, изучаю python, и у меня есть вопрос. Я работаю над среднесрочным проектом, который должен принимать входные данные, присваивать их списку, если первая буква не является заглавной, заглавной… и подсчитывать количество слов в предложении.

Пока мой код работает.. Я не могу не думать, что я совершенно неправильно обработал аргументы в функциях. Если бы вы могли взглянуть на это и помочь мне в том, как я мог бы это очистить, это было бы превосходно. Пожалуйста, помните — я new..so объясни это так, как будто мне 5 лет!

 
    sentence_list = sentList()
    sentence = listToString(sentence_list)
    sentence = is_cap(sentence)
    sentence = fix(sentence)
    sentence = count_words(sentence)

def sentList():
    sentence_list = []
    sentence_list.append(input('Please enter a sentence: '))
    return sentence_list

def listToString(sentence_list):
    sentence = ""
    sentence = ''.join(sentence_list)
    return sentence

def is_cap(sentence):
    sentence = sentence.capitalize()
    return sentence

def fix(sentence):
    sentence = sentence   "." if (not sentence.endswith('.')) and (not sentence.endswith('!')) and 
     (not sentence.endswith('?')) else sentence
    return sentence


def count_words(sentence):
    count = len(sentence.split())
    print('The number of words in the string are: '  str(count))
    print(sentence)



main()```
 

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

1. Я знаю, вы сказали, что это домашнее задание, поэтому бессмысленные требования могут быть не вашей виной. Но есть ли какая-либо причина помещать ваше однострочное предложение в одноэлементный список только для того, чтобы сразу же превратить его обратно в одну строку? Можно sentList ли ожидать, что цикл будет содержать несколько записей?

2. вы правы, что это домашнее задание… и он хотел, чтобы входные данные хранились в списке. Проблема, с которой я столкнулся, заключалась в изменении списка в смысле добавления «.» в конце его, заглавной буквы первого слова и подсчета слов. Хотя теперь, когда я думаю об этом, я, вероятно, могу сделать это, просто добавив в список правильно? опять же, я знал, поэтому я просто делал то, что имело для меня смысл.

Ответ №1:

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

 def sentList():
    sentence_list = []
    sentence_list.append(input('Please enter a sentence: '))
    return sentence_list

def listToString(sentence_list):
    sentence = ""
sentence = ''.join(sentence_list)
return sentence

def is_cap(sentence):
    sentence = sentence.capitalize()
    return sentence

def fix(sentence):
    sentence = sentence   "." if (not sentence.endswith('.')) and (not sentence.endswith('!')) and  (not sentence.endswith('?')) else sentence
    return sentence


def count_words(sentence):
    count = len(sentence.split())
    print('The number of words in the string are: '  str(count))
    print(sentence)

sentence_list = sentList()
sentence = listToString(sentence_list)
sentence = is_cap(sentence)
sentence = fix(sentence)
sentence = count_words(sentence)
 

Я думаю, что это. если у вас есть еще один вопрос. это сообщество всегда будет здесь

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

1. Большое вам спасибо. Я приобрел на udemy программу coding bootcamp и имею НЕБОЛЬШОЙ опыт работы с javascript и другими вещами.. это, хотя и совершенно другое, я чувствую, что они похожи и, что более важно, подвергли меня переполнению стека и тому подобному. Так что мои ресурсы есть, если я в чем-то не уверен 🙂 Я ценю ваше руководство! В основном я не был уверен, что постоянный вызов «sentence = ….» был правильным способом справиться с этим. Я соответствующим образом настрою свой: D

2. рад это слышать. продолжайте, потому что у вас все отлично <br> также, если мой ответ может вам помочь, пожалуйста, подтвердите мой ответ <br> хорошего дня