逐字输入并输出一个句子

时间:2019-07-09 12:37:36

标签: python

我正在尝试编写一个程序,将键盘上的句子逐字地输入到列表中。该程序应输出以下内容。

  1. 完整的句子,第一个单词(如果尚未存在的话)首字母大写,每个单词之间加一个空格,并在末尾加句点。

  2. 句子中单词数的计数。

例如,如果输入为:

the

cat

ran 

home

quickly

您的程序应输出:

猫很快就跑回家了。 句子中有5个字。

listMessage = []

message = input('Enter first word of your message: ')

while message != 'done!':
        listMessage.append(message)
        message = input('Please enter the next word of your message or type done! when complete ')
return listMessage

4 个答案:

答案 0 :(得分:2)

鉴于您已经拥有listMessage,您可以简单地进行以下操作:

' '.join(listMessage).capitalize() + '.'

答案 1 :(得分:1)

def function():

    listMessage = []
    message = input('Enter first word of your message: ').strip()

    while message != 'done!':
        listMessage.append(message)
        message = input('Please enter the next word of your message or type done! when complete ')

    text = ' '.join(listMessage).capitalize()+'.'

    return text

答案 2 :(得分:1)

根据问题描述,您可能需要在此处检查几件事。

如果您希望每个单词之间都留有空格,则可能需要检查以确保单词本身在输入后不要已经有前导或尾随空格。在您的输入上使用.strip(),以确保确实如此。

如果要大写句子的第一个字母,可以检查是否为listMessage[0][0].isupper() == True。这会检查第一个单词的首字母是否大写。

如果您希望在连接每个字符串时给它们添加空格,则可以尝试使用范围内的for循环:

finalStr = ""
for str in listMessage:
  finalStr += (str + " ")

(这将在末尾留一个空格,请记住.strip()。)

将所有内容放在一起,就可以得到代码。 Try a working solution here!

答案 3 :(得分:0)

您可以尝试以下方法:

word = ""
sentence = ""

while True:
    word = input("Enter a word: ")
    if word == 'done!':
        break

    sentence = sentence + word + " "

print(sentence)