Спадний список
Цикли мовою програмування Python
Які команди використовують для опису циклів мовою програмування Python?
Ми вже складали найпростіші програми для реалізації алгоритмів з розгалуженням мовою програмування Python. Для цього використовували такі команди
Практичне завдання 1. Розгалуження і спадний список (ще один елемент вікна з графічним інтерфейсом)
Привітай друга (подругу) зі святом!.
Протестуй програму і поділиться з викладачем посиланням.
Коли свято не обрали
Коли немає кого вітати. Немає ім'я
from tkinter import* #Підключили модуль tkinter графічний інтерфейс)
from tkinter.ttk import* #Підключили розширення графічного інтерфейсу
import tkinter.messagebox as mbox #Розширення messagebox використаємо у скороченому вигляді
def btnClick():
if edit.get()=="":
mbox.showerror(title="Помилка",message="Немає імені")
else:
if sel.current()>0:
mess=edit.get()+","+sel.get()+"!"
mbox.showinfo(title="Вітання",message=mess)
else:
mbox.showerror(title="Помилка",message="Свято не обране")
root=Tk() #створили вікно класу Tk
root.geometry("360x200") #налаштували (конфігурували) розміри вікна
root.title("вітання зі святом") #налаштували (конфігурували) назву вікна
txt=Label(root,text="Введіть своє ім'я:") #створили віджет Напис у вікні - клас Label
edit=Entry(root) #створили віджет Поле введення у вікні - клас Entry
edit.insert(0,"Ім'я") #відтворити (повернути) текст з Поля введення на вікно
sel=Combobox(root,value=["Оберіть свято","з Різдвом",
"з Великоднем","з останнім дзвоником",
"з першим дзвоником"])#створили віджет Спадний список у вікні - клас Combobox
sel.current(0) #вставити поточне значення
btn=Button(root,text="Привітання",
command=btnClick) #створили віджет Кнопка у вікні - клас Button
txt.place(x=20,y=50) #розмістили (розпакували) віджет Напис у вікні
edit.place(x=150,y=50) #розмістили (розпакували) віджет Поле введення у вікні
sel.place(x=75,y=100,width=200) #розмістили (розпакували) віджет Спадний список у вікні
btn.place(x=75,y=150,width=200) #розмістили (розпакували) віджет Кнопка у вікні
root.mainloop()
Практичне завдання 2. Реалізація команд циклу (цикл з лічильником) у вікні з графічним інтерфейсом.
Створити програму, яку будує діаграму успішності 5 студентів. Система оцінювання, яких від 1 до 100
Протестуй програму і поділиться з викладачем посиланням.
from tkinter import*#Підключили модуль tkinter графічний інтерфейс)
def zadaha():
img.delete("all")
x1=10
x2=30
ocinka=[] #Створили список
ocinka.append(o1.get()) #Послідовно заносимо дані до списку
ocinka.append(o2.get())
ocinka.append(o3.get())
ocinka.append(o4.get())
ocinka.append(o5.get())
for i in range (5): #Запускаємо цикл з лічильником
img.create_rectangle(x1,240-int(ocinka[i])*2,x2,240,fill="red")
x1=x1+50 #Кожного з разу координати збільшуються на 50 рх
x2=x2+50
root=Tk() #створили вікно класу Tk
root.title ("Успішність") #налаштували (конфігурували) назву вікна
root.geometry("600x500") #налаштували (конфігурували) розміри вікна
root.config(bg="#2F4F4F") #налаштували (конфігурували) колір вікна
t=Label(root,text="Графік успішності учнів",font=("arial",24,"bold"),
fg="white",
bg="#2F4F4F") #створили віджет Напис у вікні - клас Label і налаштували (конфігурували його)
t.place(x=150,y=20) #розмістили (розпакували) віджет Напис у вікні
st1=Label(root,text="Студент_1",font=("arial",16),
fg="white",
bg="#2F4F4F") #створили віджет Напис у вікні *5
st1.place(x=10,y=60) #розмістили (розпакували) віджет Напис у вікні*5
o1=Entry(root,font=("arial 16")) #створили віджет Поле введення у вікні *5
o1.place(x=150,y=60,width=100) #розмістили (розпакували) віджет Поле введення у вікні *5 , у+40
st2=Label(root,text="Студент_2",font=("arial",16),
fg="white",
bg="#2F4F4F")
st2.place(x=10,y=100)
o2=Entry(root,font=("arial 16"))
o2.place(x=150,y=100,width=100)
st3=Label(root,text="Студент_3",font=("arial",16),
fg="white",
bg="#2F4F4F")
st3.place(x=10,y=140)
o3=Entry(root,font=("arial 16"))
o3.place(x=150,y=140,width=100)
st4=Label(root,text="Студент_4",font=("arial",16),
fg="white",
bg="#2F4F4F")
st4.place(x=10,y=180)
o4=Entry(root,font=("arial 16"))
o4.place(x=150,y=180,width=100)
st5=Label(root,text="Студент_5",font=("arial",16),
fg="white",
bg="#2F4F4F")
st5.place(x=10,y=220)
o5=Entry(root,font=("arial 16"))
o5.place(x=150,y=220,width=100)
img=Canvas(root,width="250",height="250") #створили вікно Малювання у вікні - клас Canvas і налаштували її
img.place(x=270,y=60) #розмістили (розпакували) вікно Малювання у вікні
kn=Button(text="Виконати розрахунки",
font=("arial",18),
fg="#FFA500",
bg="#800000",
command=zadaha) #створили віджет Кнопка у вікні - клас Button і налаштували її
kn.place(x=270,y=320,width=250) #розмістили (розпакували) віджет Кнопка у вікні
root.mainloop()
Завдання уроку
Вправа 1. Кількість слів у реченні. (стор.176)
Завдання. Розробіть у середовищі програмування проєкт, за допомогою якого можна визначити, скільки слів уведено в текстове поле,якщо відомо, що між словами міститься лише один пропуск.
1. Відкрийте середовище програмування https://replit.com
2. Імпортуйте об’єкти, які потрібні для опису графічного інтерфейсу програми (мал. 18.2).
from tkinter import*
from tkinter import messagebox
5. Запишіть у програмному коді команди для створення вікна window , об’єктів у вікні window та отримання значень змінних.
window=Tk()
window.title ("Кількість слів")
window.geometry("400x300")
t=Label(window,text="Введіть речення")
t.pack()
ed=Entry(window,textvariable=str_var)
ed.pack()
kn=Button(text="Визначити",
font=("arial",16),
command=button_click)
kn.pack()
window.mainloop()
3. Оголосіть імена величин.
window=Tk()
str_var = StringVar()#текст,який вводять у текстове поле
4. Запишіть програмний код опрацювання події натиснення на кнопку Визначити.
def button_click():
s = 0
z =' '
st = str_var.get()
k = len(st)
for i in range(0, k):
if z == st[i]:
s = s + 1
t.config(text="Кількість слів визначена")
messagebox.showinfo("Результат","Кількість слів="+str(s+1))
6. Запишіть команду запуску подій на формі
window.mainloop()
7. Запустіть проєкт на виконання. Перевірте, чи результат для введеного речення відповідає малюнку 18.2.
8. Завершіть роботу з проєктом і середовищем. Прозвітуйте посиланням на проєкт