это графический интерфейс tkinter для ввода цен. Он добавит цены в пустой список и сообщит пользователю сумму списка. но теперь я хочу использовать данные вне цикла 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.
Да, у каждого списка есть своя кнопка, и да, это то, что я хочу. Извините за формулировку вопроса, я все еще очень новичок во всем этом.
Это делает это хрестоматийным определением проблемы XY. Опубликуйте фактический код для своей программы или создайте минимальный воспроизводимый пример, если ни один из ответов до сих пор не помог вам
Хорошо, я еще раз подумаю
Какой смысл использовать цикл for, если цикл for имеет только одну итерацию?
Ну видимо ничего. если бы я просто пытался что-то придумать, я научился в учебниках, чтобы сделать что-то для себя
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)
Это также не дает мне значение списка. вне цикла for
вы можете использовать функции, начинающиеся с ключевого слова 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)
Попробуйте вызвать другую функцию, которая печатает ваши списки, она должна печатать обновленные значения. Удачи :)
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
Для лучшего ответа вам нужно объяснить, что вы изменили, чтобы решить проблему OP.
Ваш ответ может быть улучшен с помощью дополнительной вспомогательной информации. Пожалуйста, отредактируйте , чтобы добавить дополнительные сведения, такие как цитаты или документация, чтобы другие могли подтвердить правильность вашего ответа. Вы можете найти больше информации о том, как писать хорошие ответы в справочном центре.
Справедливое спасибо за документ, я не знал, что это вещь. у меня есть около 7 списков, где пользователь может добавить свои расходы. Я хочу показать общую сумму всех списков расходов, сложенных вместе. Тогда у меня есть один список для их доходов. Я хочу вычесть сумму всех расходов из списка доходов.