Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python列表不添加,只替换_Python - Fatal编程技术网

Python列表不添加,只替换

Python列表不添加,只替换,python,Python,我正试着这样做,当你按下按钮1时,它会在列表中添加“1”。因此,按下按钮两次应产生[1][1]的输出。但它只打印[1]。注意,我对python非常陌生 def addnumber(a): numbers = [] numbers.append(a) print(numbers) button1 = Button(bottomFrame, text="1", command=lambda: addnumber(1)) button2 = Button(bottomFrame, t

我正试着这样做,当你按下按钮1时,它会在列表中添加“1”。因此,按下按钮两次应产生[1][1]的输出。但它只打印[1]。注意,我对python非常陌生

def addnumber(a):
   numbers = []
   numbers.append(a)
   print(numbers)
button1 = Button(bottomFrame, text="1", command=lambda: addnumber(1))
button2 = Button(bottomFrame, text="2", command=lambda: addnumber(2))

问题是您正在重新初始化
数字
,使其成为函数中的空列表。因此,每次调用该函数时,都会创建一个空列表
numbers
,因此先前附加的值将丢失。您需要将
numbers=[]
移动到函数外部。通过这种方式,您只需将其定义为一个空列表,然后在每次函数调用期间,这些项就会一直追加/添加到该列表中

numbers = []

def addnumber(a):
   numbers.append(a)
   print(numbers)

button1 = Button(bottomFrame, text="1", command=lambda: addnumber(1))
button2 = Button(bottomFrame, text="2", command=lambda: addnumber(2))

问题是您正在重新初始化
数字
,使其成为函数中的空列表。因此,每次调用该函数时,都会创建一个空列表
numbers
,因此先前附加的值将丢失。您需要将
numbers=[]
移动到函数外部。通过这种方式,您只需将其定义为一个空列表,然后在每次函数调用期间,这些项就会一直追加/添加到该列表中

numbers = []

def addnumber(a):
   numbers.append(a)
   print(numbers)

button1 = Button(bottomFrame, text="1", command=lambda: addnumber(1))
button2 = Button(bottomFrame, text="2", command=lambda: addnumber(2))

这里的问题是,每当按下该按钮时,控件就会转到def ADDNAME(a),您在其中写入数字=[],然后进行追加。数字的范围仅在addnumbers定义中,因此每次都像是创建一个新变量,然后分配给它。尝试全局声明它,然后使用它

number=[]
def地址编号(a):
全球数字
数字。附加(a)
打印(数字)
button1=按钮(底部框架,text=“1”,命令=lambda:addnumber(1))
button2=按钮(底部框架,text=“2”,命令=lambda:addnumber(2))

这里的问题是,每当按下按钮时,控件就会转到def ADDNAME(a),在那里您已经写入了数字=[],然后您正在追加。数字的范围仅在addnumbers定义中,因此每次都像是创建一个新变量,然后分配给它。尝试全局声明它,然后使用它

number=[]
def地址编号(a):
全球数字
数字。附加(a)
打印(数字)
button1=按钮(底部框架,text=“1”,命令=lambda:addnumber(1))
button2=按钮(底部框架,text=“2”,命令=lambda:addnumber(2))