import tkinter as tk
def add_task():
task = entry.get()
if task:
listbox.insert(tk.END, task)
entry.delete(0, tk.END)
def mark_as_complete():
selected = listbox.curselection()
if selected:
listbox.itemconfig(selected, fg="gray")
def remove_task():
selected = listbox.curselection()
if selected:
listbox.delete(selected)
root = tk.Tk()
root.title("To-Do List App")
root.geometry("300x400")
frame = tk.Frame(root)
frame.pack(pady=10)
entry = tk.Entry(frame, width=25)
entry.pack(side=tk.LEFT)
listbox = tk.Listbox(root, width=40, height=15)
listbox.pack(pady=10)
button_frame = tk.Frame(root)
button_frame.pack(pady=5)
add_button = tk.Button(button_frame, text="Add Task", command=add_task)
add_button.pack(side=tk.LEFT, padx=5)
complete_button = tk.Button(button_frame, text="Mark as Complete",
command=mark_as_complete)
complete_button.pack(side=tk.LEFT, padx=5)
remove_button = tk.Button(button_frame, text="Remove Task", command=remove_task)
remove_button.pack(side=tk.LEFT, padx=5)
root.mainloop()
1 Ұнайды
Первый шаг в отладке — понять суть проблемы. Часто это включает в себя изучение выходных данных программы и поиск ошибок или неожиданного поведения. Можно использовать ведение журналов и операторы print, чтобы вывести информацию о состоянии программы в разных местах кода.
1 Ұнайды
1. Целочисленные значения: целые числа, 1, 2, 3 и т.д. Они представлены с помощью типа данных int.
2. Числа с плавающей точкой: десятичные числа, 9,99 или 3,1415. Они представлены с помощью типа данных float.
3. Строка: последовательность символов, например "робот" или "хозяин". Они представлены с помощью типа данных str.
4. Булевы значения: True или False. Они представлены с помощью типа данных bool.
5. None: специальный тип данных, который представляет отсутствие значения. Он часто используется для представления переменных, которые еще не инициализированы или не имеют значения.
получить доступ к отдельным символам в строке с помощью индексации. Индексация в Python начинается с 0, это означает, что первый символ в строке имеет индекс 0. Следующий код получает доступ ко второму символу в строке:
string3 = "Привет, робот!"
второй_знак = string3[1]
print(second_char) # Вывод: e
• Нарезка: можно извлечь подстроку из строки с помощью нарезки (слайсинга). Нарезка позволяет указать диапазон индексов для извлечения из строки. Следующий код извлекает подстроку из строки:
string4 = "Робот готов!"
substring = string4[0:5]
print(substring) # Вывод: Робот
Конкатенация: можно объединить две строки или более вместе с помощью оператора «плюс» (+). Следующий код объединяет две строки:
first_name = "Петр"
last_name = "Левашов"
full_name = first_name + " " + last_name
print(full_name) # Вывод: Петр Левашов
• Длина: можно найти длину строки с помощью функции len(). Следующий код определяет длину строки:
string2 = "Привет, хозяин!"
length = len(string2)
print(length) # Вывод: 14
• Индексирование: можно
Если вы пишете программу для веб-приложения или сервера, может понадобиться запустить программу с помощью веб-сервера, например Apache или Nginx. В этом случае для обработки запросов и ответов от веб-сервера обычно используется веб-фреймворк, например Django или Flask.
отличие от методов класса, статические методы не принимают никаких аргументов экземпляра или класса. Они определяются в самом классе, но не имеют доступа к переменным уровня класса или другим методам класса.
Атрибуты и методы, которые должны быть приватными (то есть доступными только внутри класса), должны иметь префикс с двумя знаками подчеркивания и суффикс с одним знаком подчеркивания (например, __private_attribute_).
Инкапсуляция данных относится к практике сокрытия внутренних данных и деталей реализации класса от внешнего мира
Полиморфизм — это способность объекта принимать различные формы. В ООП полиморфизм позволяет писать код, который может работать с объектами разных классов, если они имеют общий интерфейс или базовый класс.
- Басты
- ⭐️IT-технологии
- Петр Левашов
- Python с нуля
- 📖Дәйексөздер
