如何重新启动此程序以再次询问用户输入更多信息?我很困惑,因为如果我使用while True:
循环,它只打印出一大堆用户的输入。
userinput = str(input("enter a sentence: \n"))
def reverseinputs(x):
string = []
result = x.split(' ')
string += reversed(result)
print (' '.join(string))
reverseinputs(userinput)
答案 0 :(得分:3)
def reverseinputs(x):
...
是一个定义,因此,不会执行任何操作(通常),并且可以安全地将其排除在循环之外。
您似乎想要反复询问用户输入,然后使用reverseinputs()
处理它。这项任务是通过第一行实现的:
userinput = str(input("enter a sentence: \n"))
和最后一行:
reverseinputs(userinput)
将它们置于while(True)
循环中应该产生所需的结果:
def reverseinputs(x):
string = []
result = x.split(' ')
string += reversed(result)
print (' '.join(string))
while(True):
userinput = str(input("enter a sentence: \n"))
reverseinputs(userinput)
你的问题似乎来自误解userinput
作为一个函数,每次引用时都会执行(使用正确的语法),每次都给出一个新的输入,而不是作为一个变量,简单地给出它最后分配的任何值(在这种情况下,第一个用户输入)。
Sidenote :正如@diligar在评论中所指出的那样,为用户提供一些摆脱无限循环的方法总是一个好主意。这样的事情应该有效:
while(True):
userinput = str(input("enter a sentence: \n"))
if userinput == "": break
...
答案 1 :(得分:2)
简单地说:
while True:
userinput = input("enter a sentence: \n")
if not userinput:
break
print(' '.join(reversed(userinput.split())))
答案 2 :(得分:2)
虽然存在更优雅的方法,但快速而简单的解决方案是在功能结束时添加它:
x = str(input("enter a sentence: \n"))
reverseinputs(x)
基本上,你在这里创建一个递归函数。我认为一个更优雅的解决方案是像你提到的那样使用while循环:
def reverseinputs(x):
string = []
result = x.split(' ')
string += reversed(result)
print (' '.join(string))
while True:
userinput = str(input("enter a sentence: \n"))
reverseinputs(userinput)