-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path03-listworking_common_tk.py
More file actions
59 lines (49 loc) · 2.31 KB
/
03-listworking_common_tk.py
File metadata and controls
59 lines (49 loc) · 2.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# Импортируем tkinter
import tkinter as tk
# Объявляем окно
main = tk.Tk()
main.title("Количество одинаковых элементов в списке")
main.geometry("300x300")
# Создаём и отображаем на нём Listbox
box = tk.Listbox(main)
box.pack()
# Поле ввода
entry = tk.Entry(main)
entry.pack()
# И текст Label
quantity = tk.Label(main)
quantity.pack()
# Копируем функцию добавления элемента в Listbox
# из предыдущего урока
def add_item():
box.insert(tk.END, entry.get())
entry.delete(0, tk.END)
# Создаём функцию, которая будет считать количество элементов в Listbox,
# которые равны самому первому элементу
def count_equal_elements():
# Создаём список
array = []
# Циклом заполняем его всеми элементами Listbox'а
for item in box.get(0, tk.END):
array.append(item)
# Создаём переменную подсчёта
# Ставим 1, так как мы будем приравнивать все элементы к первому,
# который у нас уже имеется
k = 1
# Создаём цикл со счётчиком в диапазоне от нуля до максимального индекса в нашем списке
# (так как элементы считаются с нуля, максимальный индекс будет на 1 меньше длины списка)
for i in range(len(array) - 1):
# Если взятый элемент равен первому
if array[i + 1] == array[0]:
# Прибавляем 1 к переменной-счётчику
k += 1
# Обращаясь к полю лейбла 'text',
# вставляем туда полученное количество
quantity['text'] = str(k)
# Создаём кнопки
addButton = tk.Button(main, text="Добавить", command=add_item)
addButton.pack()
countButton = tk.Button(main, text="Посчитать", command=count_equal_elements)
countButton.pack()
# Вызываем непрерывное отображение окна
main.mainloop()