Вкладені списки. Складання програм на повторення. Шкала вибору
Завдання. Знайдіть зайвий клас у домівці праворуч.
Завдання 1. Створити візерунок , використовуючи команди цикла.
Побудова узору передбачає використання циклу, в якому буде малюватись елемент цього узору .
Розглянемо простий узор, що складається з вертикальних ліній, розміщених по всій ширині полотна побудови.
Лінія створюється командою canvas.create_line(x1,y1,x2,y2), де x1,y1 вказують на координати початку, а x2,y2 - на координати її кінця.
Згідно з умовою, лінія повинна починатись нагорі полотна побудови, де y1=0 і закінчуватись внизу, де y2=500
Тож, наприклад, перша лінія матиме таку команду побудови:
canvas.create_line(0,0,0,500)
Наступна:
canvas.create_line(10,0,10,500)
Ще наступна:
canvas.create_line(20,0,20,500)
Таким чином, якщо створити цикл, у якому значення x буде змінюватися в діапазоні від 0 до 500 з кроком 10, можна записати таку загальну команду побудови:
for x in range (0,500,10):
canvas.create_line(x,0,x,500, width=2)
Крім того ці лінії - різних кольорів, щоб створити випадковий колір, створимо список можливих кольорів,
kolory=["black","red","green","blue","cyan","yellow","magenta","azure",
"brown","coral","grey","khaki","olive","orange","lavender","ivory","navy","orchid","plum"]
і за допомогою команди: random.choice(kolory) ,будемо обирати колір k
import random
from tkinter import*
root=Tk()
canvas=Canvas(root,width=500,height=500)
kolory=["black","red","green","blue","cyan","yellow","magenta","azure","brown","coral","grey","khaki","olive","orange","lavender","ivory","navy","orchid","plum"]
for x in range (0,500,10):
k=random.choice(kolory)
canvas.create_line(x,0,x,500,width=2,fill=k)
canvas.pack()
Як створити шкалу вибору?
У вікні проєкту можна використати елемент керування — шкала вибору,
за допомогою якої користувач може обрати значення з певного діапазону.
Шкала — це горизонтальна чи вертикальна смужка з розміткою,
по якій можна рухати повзунком, здійснюючи вибір.
Наприклад, горизонтальна та вертикальна шкала задається командами:
Властивості:
• orient — визначає напрям;
• length — довжина шкали в пікселях;
• from_=,to= — з якого значення шкала починається і яким закінчується (так званий діапазон значень);
• tickinterval — інтервал, через який відображаються мітки на шкалі;
• anchor — розташування на екрані;
• resolution — мінімальна довжина відрізка, на яку можна пересунути повзунок;
•variable — змінна, яка містить або надає значення.
Щоб отримати значення зі шкали, використовують метод get().
Наприклад, нехай у вікні, що містить вертикальну шкалу за замовчуванням (від 0 до 100, з кроком 1),
кнопку Отримати значення
напис Величина,
після натиснення кнопки буде додано значення зі шкали
Приклад. Розробіть проєкт у середовищі програмування з використанням елементів керування, у якому знаходять:
а) суму послідовних чисел від 0 до числа, обраного на шкалі (розміри шкали за замовчуванням);
from tkinter import*
def sel():
s=0 #відкрили змінну для суми
m=int(var.get()) #зчитали число на шкалі і перетворили його у ціле число
selection="величина="+str(var.get()) #створили зміну для тексту, в txt вписують змінні
txt.config(text=selection) #змінили напис тут буде відповідь на зміст selection
for i in range (0,m+1): #перебирати в циклі будемо всі числа від о до того, що на шкалі
s=s+i #і на кожному кроці -додаємо нове число до суми
txt2.config(text="сума="+str(s)) #змінили напис тут буде сума на суму переведену у текст
window=Tk()
var=DoubleVar()
scala=Scale(window,variable=var)
scala.pack()
kn=Button(window,text="отримати значення",command=sel)
kn.pack()
txt=Label(window,text="тут буде відповідь")
txt.pack()
txt2=Label(window,text="тут буде сума")
txt2.pack()
window.mainloop()