Більшість задач із програмування передбачають введення даних користувачем, над даними виконуються деякі операції., після чого виводиться результат опрацювання:  введення → опрацювання → виведення.
Введення та виведення даних у консольному режимі
У консольному режимі ви користувалися для введення і виведення даних функціями input() і print(). 

Функція input() призначена для введення даних із клавіатури:
<змінна> = input(<підказка>)

Функція print() потрібна, щоб вивести текст у вікно консолі: 
print(<список виведення>)

У програмі з графічним інтерфейсом ми також можемо використовувати функції input() і print(). 
Компоненти Тkinter для введення та виведення даних
Результати обчислень, повідомлення програми про стан об’єктів тощо можна вивести за допомогою віджетів класу Label. Для введення даних можна використати відомі вам віджети класу Entry.
Компонент Entry — це поле для введення і виведення тексту.
Синтаксис створення об’єкта класу Entry такий:
[змінна = ]Entry([батьківський_віджет, ][властивість = значення])

Для налаштування вигляду віджета Entry слід задати значення властивостей, спільних із віджетами класів Button і Label: ширина і висота у знакомісцях (width, height), колір фону і символів (bg, fg), параметри шрифту (font). 

Створити об’єкт en1 у вікні програми з графічним інтерфейсом (рис.1).

23.png
Рис.1

Вигляд вікна зображено на рис.2:
167.PNG
Рис.2
Методи Entry
Метод
Призначення
Приклад виклику
get() Отримати значення, що міститься в текстовому полі Змінній а цілого типу присвоїти значення, що міститься в полі entry1:
a = int(entry1.get())
insert(index, str)  Вивести в текстове поле рядок, починаючи зі знакомісця з номером index Вивести до поля еntry1 значення змінної х:
entry1.insert(0, х)
delete(first, last)  Вилучити символи, починаючи зі знакомісця з номером first до знакомісця з номером last (нумерація символів з 0) Очистити текстове поле перед виведенням. Щоб вилучити весь текст, як другий параметр потрібно указати END:
entry1.delete(0, END)
Приклад:
Увести число до поля об’єкта entry1 і вивести квадрат числа до поля об’єкта entry2. Зчитування значення з текстового поля, піднесення до квадрата і виведення результату в поле entrу2 виконує функція b1_click()— обробник події Натискання на кнопку b1 (рис.3).
 
23.png

22.png
Рис.3
Багаторядкове текстове поле
Багаторядкове текстове поле є об’єктом класу Text. Цей віджет часто зустрічається при заповненні веб-форм. За замовчуванням висота створюваного віджета дорівнює 24 знакомісцям, ширина — 80 знакомісцям, але значення цих властивостей, як і інших, спільних з елементами класів Label і Entry, можна задати при створенні об’єкта. Значення WORD властивості wrap дозволяє переносити слова в полі на новий рядок цілком, а не по буквах.

Якщо в текстове поле вводиться більше ліній тексту, ніж його висота, то воно саме буде прокручуватися вниз. При перегляді прокручувати вгору-вниз можна за допомогою колеса миші і стрілками на клавіатурі.

Основні методи у Text такі ж як у Entry get (), insert (), delete (). Однак, якщо в разі однорядкового текстового поля було достатньо вказати один індекс елемента при вставці або видаленні, то в разі багаторядкового треба вказувати два — номер рядка і номер символу в цьому рядку (іншими словами, номер стовпця), через крапку.
 
Зверни увагу!
У віджеті Text нумерація рядків починається з одиниці, а стовпців — з нуля.
Щоб вивести в поле об’єкта text1 декілька рядків вірша, слід додати в код оператор присвоєння значення змінній s і викликати для об’єкта text1 метод insert(). Щоб вірш виводився по рядках, слід додати в початок кожного рядка символ перенесення рядка "\n" (рис.4).
from tkinter import *
root = Tk()
text1 = Text(width=35, height=6, bg="green", fg='white', wrap=WORD)
text1.pack()
s = "Вірш про дружбу \nВ житті усім потрібна дружба: \nІ для розваг, і для журби, \nй для служби. \n Вікторія Остапчук"
text1.insert(1.0, s)
root.mainloop()

24.png
Рис.4

Методи Text
  • insert(index, string)  Вставка тексту під час роботи програми. Приклади: 
    • text1.insert("1.0", "Привіт!\n") # Вставити на початку
    • text1.insert(END, "Це кінець.\n") # Вставити в кінець. END– це особливий індекс для кінця тексту. 
  • get(start_index, end_index)  Отримання тексту або частини тексту з текстового поля.
    • s=text1.get(1.0, END) #Отримати весь текст з поля Text
    • сontent = text1.get("1.0", "end-1c") # Отримати весь текст (end-1c, щоб ігнорувати останній перенос рядка
    • Параметр"end-1c" (від кінця мінус 1 символ) є типовим для отримання всього чистого тексту, тому що get("end") зазвичай включає зайвий символ переносу рядка.
    • first_line = text1.get("1.0", "1.0 lineend") # Отримати перший рядок
    • аvtor = text1.get(5.1, 5.18) # avtor = 'Вікторія Остапчук'
    • Якщо треба відкинути в кінці рядка К символів, слід до другого параметру додати "-Кс".
      s=ext1.get(2.0, "2.0 lineend - 2c") # відкинуто символи ": "
  • delete(start_index, end_index=None): Очищення поля або видалення певних частин тексту.
    • text1.delete("1.0", END) # Видалити весь текст
    • text1.delete("1.0", "1.5") # Видалити перші 5 символів першого рядка
Джерела:
Інформатика : підруч. для 8 кл. закл. загал. серед. освіти / [О. О. Бондаренко, . В. Ластовецький, О. П. Пилипчук, Є. А. Шестопалов]. — Харків : Вид-во Ранок», 2025
Інформатика : підруч. для 8-го кл. закл. заг. серед.освіти / Й. Ривкінд та ін. — Київ : Генеза, 2025.