尝试在列表函数中附加输入数字不返回任何结果

时间:2018-12-31 01:26:37

标签: python python-3.x

我需要返回用户输入的数字列表。

我试图插入一个空列表,然后使用.append函数将输入值附加到列表中。

def ask_a_number():
    trials = []
    playernumber = int(input('Guess a number: '))
    trials = trials.append(playernumber)
    return playernumber, trials
ask_a_number()

让我说我想输入5。 因此,我希望函数返回5以及列表trials = [5]。 下次输入10时,该函数应返回trials = [5,10]

3 个答案:

答案 0 :(得分:1)

更改

trials = trials.append(playernumber)

trials.append(playernumber)

由于list.append返回None(相反,它更改了trials的状态),并且您将其返回值重新分配给trials,因此您得到了None返回元组。

答案 1 :(得分:1)

 def ask_a_number():
       trials = []
       while True:
           playernumber = int(input('Guess a number: '))
           trials.append(playernumber)
           if playernumber==0:
             break
       print(playernumber, trials)
       return 
 ask_a_number()

答案 2 :(得分:0)

append()不返回任何内容。它旨在进行就地修改。因此,请执行以下操作:

def ask_a_number(trials=None):
    trials = trials or []
    playernumber = int(input('Guess a number: '))
    trials.append(playernumber)
    return playernumber, trials
ask_a_number()

我还为trials添加了默认值,因此,如果您想循环执行此操作,可以这样:

trials = []

for i in range(6):
    player, trials = ask_a_number(trials)