python 如何在for循环外存储appended list的值?

qybjjes1  于 2022-11-21  发布在  Python
关注(0)|答案(2)|浏览(119)

这是一个输入价格的图形用户界面。它会将价格添加到空列表中,并告诉用户列表的总和。但现在我想使用for循环之外的数据,但无论我能想到使用什么版本的列表,它总是显示为空列表。
第一个
我试过了

  • print(EXTRAS)``print(EXTRAS)
  • print(ETRRAS_int),但它不存在于循环之外。
def add():
    for x in range(1):
        EXTRAS.append(user_input1g.get())
        EXTRAS_int = [float(x) for x in EXTRAS]
        entry_label1g.config(text=str(sum(EXTRAS_int)))
        user_input1g.delete(0, 10)
        EXTRAS_SUM = sum(EXTRAS_int)

print(EXTRAS_SUM) but that doesnt work either.
kx7yvsdv

kx7yvsdv1#

import tkinter as tk
from tkinter import *

window = Tk()

window.title("Test Window")
window.geometry('300x300')

EXTRAS = []

def add():
    for x in range(1):
        EXTRAS.append(float(user_input1g.get()))
        entry_label1g.config(text=str(sum(EXTRAS)))
        user_input1g.delete(0, 10)
        

# Entry
user_input1g = tk.Entry(window, width=5)
user_input1g.grid(row=5, column=1)
# Add button
add_button1g = tk.Button(window, text="Add", command=add)
add_button1g.grid(row=5, column=2)
# Empty label
entry_label1g = tk.Label(window, text="")
entry_label1g.grid(row=5, column=4, pady=10)
# $
entry_label2g = tk.Label(window, text="$")
entry_label2g.grid(row=5, column=3, pady=10)
# Description
entry_label3g = tk.Label(window, text="EXTRAS")
entry_label3g.grid(row=5, column=0, pady=10)

window.mainloop()
print(EXTRAS)
fykwrbwg

fykwrbwg2#

您可以使用以关键字global开头的函数。在这种情况下,它引用useEXTRASEXTRAS_int的值,因此它也会在函数外部更改它们的值。
它如下所示:

def add():
    global EXTRAS_int
    global EXTRAS
    for x in range(1):
        EXTRAS.append(user_input1g.get())
        EXTRAS_int = [float(x) for x in EXTRAS]
        entry_label1g.config(text=str(sum(EXTRAS_int)))
        user_input1g.delete(0, 10)

尝试调用另一个打印列表的函数,它应该会打印更新后的值。祝你好运:)

相关问题