使用多个用户输入来创建一个字符串

时间:2019-12-25 15:41:37

标签: python

我正在开发一个程序,需要用户的很多输入,

,如果他正在写/end,程序将结束并使用他的输入打印一个字符串。 我还补充说,如果用户的字符串以疑问词开头,它将自动在字符串中添加问号。

现在,我的问题是我不知道如何将所有字符串放在一起,我只用append尝试过,但是没有用。

程序:

def stringCreator(mySTR):
    capitalized = mySTR.capitalize()
    questions = ('what', 'how', 'can', 'why')
    if mySTR.startswith(questions):
        return '{}?'.format(capitalized)
    else:
        return '{}.'.format(capitalized)


result = # What should I use there ?
while True:
    userInput = input('Say something: ')
    if userInput == '/end':
        break
    else:
        # Connect all string together with result


print(' '.join(stringCreator(result)))

编辑:

沃尔夫的帮助下,我得到了这个结果。

首先,我用result变量创建了一个列表,其次,我将else条件result.append(userInput)添加到了列表中,

然后我从{p>

printprint(' '.join(stringCreator(result)))

最终程序:

print(stringCreator(''.join(result)))

2 个答案:

答案 0 :(得分:4)

您可以这样操作:

def user_input():
    final=""
    input_str=""
    while(input_str!="/end"):
        final+=input_str+" "
        input_str=input("enter string and /end to stop : ")
    return final[1:]
print(user_input())

输出

enter string and /end to stop : hey
enter string and /end to stop : what
enter string and /end to stop : are
enter string and /end to stop : you
enter string and /end to stop : doing?
enter string and /end to stop : /end
hey what are you doing? 

答案 1 :(得分:3)

这里有很多选项。效率最低,但最简单的方法可能是直接附加到字符串:

result = ''
...
     result += userInput  # optionally + '\n'

更好的方法是将其追加到列表中,然后再加入:

result = []
...
    result.append(userInput)
...
result = ' '.join(result)  # or '\n'

最好的方法可能是使用更加专业化的数据结构,例如collections.deque,以使附加效率更高:

from collections import deque
...
result = deque()
...

deque的界面与列表的界面非常相似,但是不能非常有效地进行直接索引编制。