所以我试图做到这一点,所以我可以输入多个字符串,它将连接所有字符串。但每次只返回一个字符串并且不添加它们。
def addWords():
s = 'a'
while s != '':
s = input( ' I will echo your input until you enter return only: ')
return(s)
a = a + s
return (a)
答案 0 :(得分:3)
以下是我假设你要做的事情:
def add_words():
a = ''
s = 'a'
while s != '':
s = input("I will echo your input until you enter return only: ")
a += s # equivalent to a = a + s
# we exit the code block when they enter the empty string
return a
但实际上你应该这样做:
def add_words():
accumulator = ''
while True: # loop forever
s = input("I will echo your input until you enter return only: ")
if not s: # if s is the empty string...
break # leave the infinite loop
accumulator += s
return accumulator
当你学习itertools魔法时,你可以制造一些东西(不可否认的是丑陋),就像......
def add_words():
return "".join(iter(lambda: input("I will echo your input until you enter return only: "), ''))
答案 1 :(得分:1)
您的代码问题是,您没有输入正确的break
条件,而是在阅读第一个输入项后刚刚返回。
def addWords():
resultant = ''
delimiter = ' '
while True:
user_input = raw_input('I will echo your input until you enter return only:') # use raw_input() for python2
if not user_input:
break
resultant += delimiter + user_input
return resultant
addWords()
答案 2 :(得分:0)
我已经在python 2.7中实现了它
def addwords():
s = 'a'
a = ''
while s != '':
s = raw_input( ' I will echo your input until you enter return only: ') # python 2.7 syntax
a = a + s
return (a)
希望它能起作用!!
答案 3 :(得分:0)
在您的代码中,您始终返回s,即用户输入的字符串。而那次回归将导致这个功能如此说:'嘿,我已经完成了。你现在可以继续。“返回语句之后的所有语句都不会被调用,程序将直接跳出循环。
因此,删除循环中的所有返回,因为您不想在用户仍在输入字符串时结束该功能。你应该考虑使用raw_input(),因为正常的input()将允许输入整数,如下所示:
while ...:
s = raw_input("...")
a += s
您应该注意到,声明a + = s与a = a + s相同。
接下来,当他输入他的字符串时,循环中的输入消息可能会分散用户的注意力。您可以向他打印一条消息,然后在循环中请求输入而不显示消息。但是,显然,这对您的代码来说并不是必需的。这是一个例子:
print "Hey, you can enter strings as long as you dont hit enter directly."
while ...:
s = raw_input()
# go on
最后,优化的一件事是你结束循环的条件。就像现在一样,它将再次添加字符串。 要解决此问题,您可以在while循环中添加一个条件,以检查用户是否输入了空字符串:
if s == '':
break
然后您可以将循环更改为:
while True:
# ...
现在你只需要在while循环之后返回整个字符串。
while True:
# ...
return a
一段代码中的所有这些更改都将如下所示:
def addWords():
print "Hey, you can enter strings as long as you dont hit enter directly."
a = ''
while True:
s = raw_input()
if s == '':
break
a += s
return a
我在手机上回答这个问题,所以请原谅我的错误。
我希望我能帮助你。 1Darco1