#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> хорошего дня