這是輸入價格的 tkinter gui。它將價格添加到空串列中并告訴用戶串列的總和。但是現在我想在 for 回圈之外使用資料,但是我能想到使用它的任何版本的串列總是顯示為空串列。
EXTRAS = []
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)
# 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)`
我試過了
print(EXTRAS)outcome = []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.
uj5u.com熱心網友回復:
import tkinter as tk
from tkinter import *
window = Tk()
window.title("Test Window")
window.geometry('300x300')
EXTRAS = []
EXTRAS_SUM = 0
def add():
global EXTRAS_SUM
EXTRAS.append(float(user_input1g.get()))
entry_label1g.config(text=str(sum(EXTRAS)))
user_input1g.delete(0, 10)
EXTRAS_SUM = sum(EXTRAS)
# 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) #output: [12.0, 2.0, 5.5]
print(EXTRAS_SUM) #output: 19.5
uj5u.com熱心網友回復:
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)
uj5u.com熱心網友回復:
您可以使用以關鍵字 開頭的函式global。在這種情況下,它參考了 use EXTRAS 和 EXTRAS_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)
嘗試呼叫另一個列印串列的函式,它應該列印更新的值。祝你好運 :)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/536576.html
