循环返回输入

时间:2019-04-02 19:40:09

标签: python

所以我一直试图在一个循环中返回所有输入,但是由于某种原因,这是行不通的,它只返回最后一个输入。

很高兴看到您在协助我。

def boogiewoogie(lineinfile,speechpart):
    y = lineinfile.count(speechpart)
    for i in range(y):
        askuser = input('Enter '+speechpart+': ')
    return askuser

实际结果:-

> boogiewoogie('The NOUN VERB past the ADJECTIVE NOUN.','NOUN')

> Enter NOUN:  dog
> Enter NOUN:  duck
> 'duck'

3 个答案:

答案 0 :(得分:1)

您在循环的每一轮都在写askuser。尝试将所有值存储在列表中:

def boogiewoogie(lineinfile,speechpart):
    y = lineinfile.count(speechpart)
    askuser = []
    for i in range(y):
        askuser.append(input('Enter '+speechpart+': '))
    return askuser

答案 1 :(得分:0)

您只返回最后一个,所以一切正常。您应该拥有列表,将数据追加到列表中,然后返回该列表,例如:

def boogiewoogie(lineinfile, speechpart):
    y = lineinfile.count(speechpart)
    history = []
    for i in range(y):
        history.append(input('Enter '+speechpart+': '))
    return history

会产生预期的结果:

Enter NOUN: dog
Enter NOUN: food
['dog', 'food']

出于可读性原因,我还将放弃使用format()的连接:

     history.append(input('Enter {}: '.format(speechpart)))

答案 2 :(得分:0)

由于没有存储值的数组或方法,因此将删除先前的值。创建一个空数组,然后将其附加到for循环中。

List = []
for i in range(y):
       askuser = input('Enter '+speechpart+': ')
       List.append(askusr)
print List