-Умовні оператори (коротка та повна форма). Складання програм на розгалуження
-Властивості та методи елементів керування. Прапорець, перемикач
Ви вже знаєте, що для опису алгоритмів з розгалуженням мовою програмування Python використовують команди:
- неповного розгалуження,
-повного розгалуження
-та вибору
Пригадати:
t=int(input("Температура води t ="))
if t<0:
print ("лід")
elif t>100:
print("пара")
else:
print("рідина")
Реалізація цієї задачі у вікні з графічним інтерфейсом
import tkinter
def btnClick():
print("Button pressed...")
t=int(message.get())
txt["text"]="str(t)"
if (t<0):
txt["text"]="При температурі ="+str(t)+"градусів, отримали лід"
elif (t>100):
txt["text"]="При температурі ="+str(t)+"градусів, отримали пару"
else:
txt["text"]="При температурі ="+str(t)+"градусів, отримали рідину"
root=tkinter.Tk()
root.geometry("500x200")
root.title("Агрегатний стан води")
root["bg"]="yellow"
root.resizable(0,0)
txt=tkinter.Label(root,text="Введіть температуру за цельсієм",
font="Arial 16", bg="white")
txt.pack()
message=tkinter.Entry(root,font="Arial 16",
fg="blue",bg="light grey",width=15)
message.pack()
btn=tkinter.Button(root,text="Визначити",
font="Arial 16", bg="light green",command=btnClick)
btn.pack()
root.mainloop()
import tkinter as tk
def btnClick():
print("Button pressed...")
t=int(message.get())
txt["text"]="str(t)"
if (t<0):
txt["text"]="При температурі ="+str(t)+"градусів, отримали лід"
elif (t>100):
txt["text"]="При температурі ="+str(t)+"градусів, отримали пару"
else:
txt["text"]="При температурі ="+str(t)+"градусів, отримали рідину"
root=tk.Tk()
root.geometry("500x200")
root.title("Агрегатний стан води")
root["bg"]="yellow"
root.resizable(0,0)
txt=tk.Label(root,text="Введіть температуру за цельсієм",
font="Arial 16", bg="white")
txt.pack()
message=tk.Entry(root,font="Arial 16",
fg="blue",bg="light grey",width=15)
message.pack()
btn=tk.Button(root,text="Визначити",
font="Arial 16", bg="light green",command=btnClick)
btn.pack()
root.mainloop()
Зміни у програмі можна реалізувати двома способами обирайте на власне розуміння!
Або txt["text"]="str(t)"
Або txt.config(text=str(t))
txt - об'єкт, який змінюємо
text - параметр, який змінюємо
"str(t)" - на що змінюємо
Розглянемо, як реалізувати за допомогою команд розгалуження, ділення на 0.
from tkinter import*
from tkinter import messagebox #під'єднали модуль інформаційних вікон
def btnClick(): #прописуємо функцію btnClick, яка виконується при натисканні ЛКМ
n=int(edit.get()) #прописуємо функцію btnClick, яка виконується при натисканні ЛКМ
if n==0: #застосували команду повного розгалуження
messagebox.showerror("Увага!","На нуль ділити не можна!") #метод підключення вікна - попередження
else:
n=100/n
txt.config(text="Частка="+str(n)) #зміна напису txt другим способом, за допомогою методу .config
messagebox.showinfo("Увага!","Обчислення виконано!") #метод підключення вікна - інформаційного
root=Tk() #під'єднали модуль вікон
root.geometry("500x200") #налаштували розміри вікна
root.title("Діалог про нуль") #назвали вікно
root["bg"]="yellow" #колір вікна
root.resizable(0,0) # вікно не можна розтягувати
txt=Label(root,text="Введіть число", #створили текстовий напис, зміст якого потім змінити за умовою
font="Arial 16", bg="white")
txt.pack() #розмістили текстовий напис у вікні
edit=Entry(root,font="Arial 16", #створили поле введення, в яке введіть дільник
fg="blue",bg="light grey",width=15)
edit.pack() #розмістили поле введення у вікні
btn=Button(root,text="Визначити", #кнопка : до події; при натисканні ЛКМ виконати функцію btnClick
font="Arial 16", bg="light green",command=btnClick)
btn.pack() #розмістили кнопку у вікні
root.mainloop()
Завдання 1.
Визначити чи буде трикутник рівностороннім. Але трикутник не завжди ІСНУЄ!!!
Необхідно передбачити це. Коли користувач вводить не коректні дані потрібне сповіщення: це не трикутник!
Написати цю програму для вікна з графічним інтерфейсом
2202_task
a=int(input("Введіть сторону a = "))
b=int(input("Введіть сторону b = "))
c=int(input("Введіть сторону c = "))
if a>c +b or b>a+c or c>b+a:
print("не є трикутником")
elif a=b and b=c:
print("трикутник рівносторонній")
else:
print("трикутник не рівносторонній")
У програмах з графічним інтерфейсом для роботи з логічними змінними використовують елементи управління прапорець і перемикач.
Завдання 2.
Перефарбувати вікно у будь-які чотири кольори веселки.(4 перемикачі, ще один elif додати і відповідні зміни)
Завдання 3.
Дописати ще слово: Україно!
Дописати коди.
from tkinter import*
from tkinter.ttk import*
def btnPress():
if t.get()==1:
root["bg"]="red"
elif t.get()==2:
root["bg"]="yellow"
else:
root["bg"]="green"
root=Tk()
root.geometry("500x200")
root.title("Кольори")
t=IntVar()
chk1=Radiobutton(root,text="Чекати",variable=t,value=1)
chk2=Radiobutton(root,text="Увага", variable=t,value=2)
chk3=Radiobutton(root,text="Йдіть", variable=t,value=3)
btn=Button(root,text="Визначити",command=btnPress)
chk1.pack()
chk2.pack()
chk3.pack()
btn.pack()
root.mainloop()
Radiobutton, або перемикач, — елемент списку з місцем для мітки за умови можливості виставити лише одну мітку. Перемикач завжди використовують у групі, причому увімкненим може бути лише один перемикач.
Тут:
• variable — властивість, що описує прикріплення до елемента
керування змінної;
• value, значення змінної, якщо обрали саме цю опцію
2202_1_task
from tkinter import*
from tkinter.ttk import*
def btnClick():
show=""
if t1.get():
show+=chk1["text"]+"-"
if t2.get():
show+=chk2["text"]+"-"
if t3.get():
show+=chk3["text"]+"!"
txt.config(text=show)
root=Tk()
root.geometry("360x200")
root.title("Привітання")
t1=BooleanVar()
t2=BooleanVar()
t3=BooleanVar()
chk1=Checkbutton(root,text="Щіро",variable=t1)
chk2=Checkbutton(root,text="Вітаю", variable=t2)
chk3=Checkbutton(root,text="зі святом", variable=t3)
btn=Button(root,text="Привітання",command=btnClick)
txt=Label(root,text="Нічого не обрано.")
chk1.pack()
chk2.pack()
chk3.pack()
btn.pack()
txt.pack()
root.mainloop()
Checkbutton, або прапорець, — елемент списку з місцем для мітки.
Значення кожної мітки (прапорця) пов’язане зі своєю змінною. Значення цієї змінної визначається властивістю onvalue (ввімкнено) і off value (вимкнено). При використанні кількох елементів списку потрібно для кожного використати свою змінну.
2202_task_2