我正在开发一个程序,需要用户的很多输入,
,如果他正在写/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>
print
至print(' '.join(stringCreator(result)))
。
最终程序:
print(stringCreator(''.join(result)))
答案 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
的界面与列表的界面非常相似,但是不能非常有效地进行直接索引编制。