четвер, 29 квітня 2021 р.

Кількість елементів у масиві (Інформатика - 9 кл.)

 Обчислення кількості елементів з заданим значенням 
в двовимірному масиві

Алгоритм обчислення кількості заданого елемента у двовимірному масиві відрізняється від аналогічного алгоритму для одновимірного масиву лише тим, що пошук елемента виконується не в одному. а в кількох рядках.

Розглянемо, наприклад програму пошуку кількості елементів, що дорівнюють заданому числу у квадратній матриці з N^2 елементів

# Створення 2-вимірного масиву випадкових цілих чисел

import random
n=int(input('Який розмір матриці? N= '))
mas=[]
for j in range(n):
    mas1=[]
    for i in range(n):
        x=random.randint(1,100)
        mas1.append(x)
    mas.append(mas1)
    print(mas1)

# Обчислення кількості заданого елемента в масиві

print()
c = int(input('Скільки в масиві елементів С = '))
k = 0
for j in range(n):
    for i in range(n):
        if c == mas [i][j]:
            k = k + 1
print()
if k == 0:
    print('Таких чисел немає')
else:
    print('Таких чисел ', k)


Завдання для самостійного виконання:
1. Напишіть програму пошуку кількості парних (непарних) елементів у двовимірному масиві
2. Напишіть програму пошуку різниці між кількістю парних та непарних елементів двовимірного (не квадратного) масиву

Після виконання практичної роботи надішліть файл програма (*.py) або копію екрану (скрін-шот) з вікном тексту програми та результатів її виконання на електронну адресу kab11.gimnazia@gmail.com або на Viber №0953262513

середа, 28 квітня 2021 р.

Вкладені повторення (Інформатика - 6 кл.)

 

Запишіть у зошиті число і тему уроку

Прочитайте матеріал параграфу

Виконайте у середовищі програмування Python вправу 6


Після виконання практичної роботи надішліть копію екрану (скрін-шот) з вікном тексту програми на електронну адресу kab11.gimnazia@gmail.com або зробіть фото екрану і надішліть на Viber №0953262513

понеділок, 26 квітня 2021 р.

Пошук у матрицях (Інформатика - 9 кл.)

 Пошук елементів з певними властивостями
у двовимірних масивах

Алгоритм пошук елеменів двовимірного масиву з певними властивостями аналогічний пошуку таких елементів у одновимірному масиві. Різниця полягає лише в тому, що після перебору елементів одного рядка продовжується перебір елементів наступного і так до останнього.

Розглянемо це на прикладі стандартної задачі пошуку найбільшого та найменшого елементів масиву:

# Створення 2-вимірного масиву випадкових цілих чисел

import random
n=int(input('Який розмір матриці? N= '))
mas=[]
for j in range(n):
    mas1=[]
    for i in range(n):
        x=random.randint(1,100)
        mas1.append(x)
    mas.append(mas1)
    print(mas1)

# Пошук найбільшого та найменшого елементів

max = mas [0][0]
min = mas [0][0]
for j in range(n):
    for i in range(n):
        if mas [i][j] > max:
            max = mas [i][j]
        if mas [i][j] < min:
            min = mas [i][j]
print()
print('Найбільший елемент ', max)
print('Найменший елемент ', min)

Завдання для самостійного опрацювання:

Створити програму обчислення суми найбільших (найменших) елементів кожного рядка двовимірного масиву (не квадратної матриці)

Після виконання практичної роботи надішліть файл програма (*.py) або копію екрану (скрін-шот) з вікном тексту програми та результатів її виконання на електронну адресу kab11.gimnazia@gmail.com або на Viber №0953262513

неділя, 25 квітня 2021 р.

ЗАКОН ЗБЕРЕЖЕННЯ ЕНЕРГІЇ (Фізика - 9 кл.)

 Тема: Застосування законів збереження енергії та імпульсу для розв'язування задач

Перегляньте пункт 1 параграфу 38 підручника (стор. 235)

Цей пункт називається "Згадуємо про механічну енергію". Згадувати потрібно фізику 7-го класу. З тих часів ви повинні пам'ятати:

1. Що таке механічна робота та як її обчислювати. Хто не пам'ятає цього - переглядає наступне відео:


2. Що таке механічна енегрія, які є її види та як цю енергію обчислювати. Хто не пам'ятає цього - переглядає наступне відео:


3. Закон збереження енергії та як його застосовувати. Хто не пам'ятає - переглядає відео:

Хто не має часу переглядати всі ці відео, переглядає підручник з фізики 7-го класу (§§ 30, 32, 33 = стор 200 - 220) ось тут:

ФІЗИКА, 7 клас


Після того, як ви все згадаєте, можна приступати до вивчення нового матеріалу.

Для цього спочатку можна переглянути наступний відеоурок:

ЗАСТОСУВАННЯ ЗАКОНІВ ЗБЕРЕЖЕННЯ


середа, 21 квітня 2021 р.

Вкладені розгалуження (Інформатика - 6 кл.)

Запишіть у зошиті число і тему уроку

Прочитайте матеріал параграфу

Виконайте у середовищі програмування Python завдання, виділені червоними рамками






Після виконання практичної роботи надішліть копію екрану (скрін-шот) з вікном тексту програми на електронну адресу kab11.gimnazia@gmail.com або зробіть фото екрану і надішліть на Viber №0953262513

понеділок, 19 квітня 2021 р.

Опрацювання 2-вимірних масивів (Інформатика - 9 кл.)

Знаходження суми елементів масиву


З двовимірними масивами (таблицями) ми можемо виконувати ті ж операції, що вже робили з одновимірними масивами:

  • Знаходили суму елементів;
  • Визначали кількість елементів певного типу;
  • Знаходили найменший чи найбільший елементи;
  • Сортували елементи у масиві.
Розглянемо по черзі ці операції: 

І. Обчислення суми елементів 2-вимірного масиву:

# Створення 2-вимірного масиву випадкових цілих чисел
import random
n=int(input('Який розмір матриці? N= '))
mas=[]
for j in range(n):
    mas1=[]
    for i in range(n):
        x=random.randint(1,100)
        mas1.append(x)
    mas.append(mas1)
    print(mas1)

# Ообчислення суми елементів

S=0
for j in range(n):
    for i in range(n):
        S = S + mas[i][j]
print()
print('Сума S = ',S)


ІІ. Завдання для самостійної роботи:
  1. Ствріть програму знаходження середнього арифметичного елементів 2-вимірного масиву.
  2. Складіть програму створення масиву сум елементів по рядкам (по стовпцям) таблиці та їх середніх арифметичних.

неділя, 18 квітня 2021 р.

РЕАКТИВНИЙ РУХ (Фізика - 9 кл.)

 Реактивний рух. Розв'язування задач.


1. Повторення.

Імпульс тіла. Закон збереження імпульсу. (§36)

Перегляньте відповідне відео:

ІМПУЛЬС ТІЛА

2. Вивчення нового матеріалу.

Запишіть у зошитах число і тему уроку. 

Перегляньте відповідне відео:

РЕАКТИВНИЙ РУХ

Перегляньте параграф 37 та зробіть у зошиті конспект прочитаного.

3. Розв'язування задач.

Перегляньте відповідне відео:

РОЗВ'ЯЗУВАННЯ ЗАДАЧ

4. Домашнє завдання: розв'яжіть задачу 2 із вправи 37 (стор. 234)


четвер, 15 квітня 2021 р.

СТВОРЕННЯ МАТРИЦІ (Інформатика - 9 кл.)

 Алгоритм створення 2-вимірного масиву (матриці)


Згадаємо як ми створювали одновимірний масив

# Створення масиву N випадкових цілих чисел

import random
n=int(input('Скільки чисел створити? N= '))
mas=[]
for i in range(n):
    x=random.randint(1,100)
    mas.append(x)

 

Аналогічно створимо 2-вимірний масив – квадратну матрицю з однаковою кількістю рядків і стовпців - N

 

# Створення 2-вимірного масиву випадкових цілих чисел

import random
n=int(input('Який розмір матриці? N= '))
mas=[]
for j in range(n):
    mas1=[]
    for i in range(n):
        x=random.randint(1,100)
        mas1.append(x)
    mas.append(mas1)
    print(mas1)

Тут ми використали вкладені цикли: зовнішній по j та внутрішній по i.

 

Завдання для самостійної роботи: створити 2-вимірний масив (матрицю) з довільною кількістю рядків та стовпців (не квадратну)

Результати виконання роботи (файли *.py та копії екрану з результатами роботи програми) надсилати на електронну адресу kab11.gimnazia@gmail.com або на Viber №0953262513)

вівторок, 13 квітня 2021 р.

ОРГАНІЗАЦІЯ ДІАЛОГУ (Інформатика - 6 кл.)

Організація діалогу з користувачем

Згадайте: Ми вже вміємо...

Створювати вікна - використовуючи клас Tk()
Створювати у вікні написи - використовуючи клас Label()
Створювати кнопки - використовуючи клас Button()
Створювати обробники подій - використовуючи функцію def

Тепер ми маємо навчитися вводити у вікні певні дані та виводити певні результати.

Для введення-виведення інформації у вікні слугує клас Entry (його ще називають текстовим полем) 
Тобто Entry — це поле для введення тексту, також його можна використовувати і для виведення.
Щоб створити об’єкт класу Entry потрібно написати:

змінна = Entry(атрибути)

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

Наприклад, створимо об’єкт pole1 із такими атрибутами:
• назва вікна у якому буде міститися текстове поле - root
• текст, уведений у текстове поле, зберігається у змінній s;
• ширина текстового поля — 14 знаків;
• параметри шрифту — Arial, розміром 18 пунктів.
Для цього ми повинні написати рядок:

pole1 = Entry(root, text = s, width = 14, font = 'Arial 18')

Щоб ввести у поле певне значення використовують метод insert()

Наприклад, щоб у поле po;e1 ввести значення змінної х, потрібно написати:

pole1.insert(0, х)

Метод get() дозволяє отримати значення, що міститься в текстовому полі.
Наприклад, щоб отримати з текстового поля значення змінної s (цілого типу), потрібно написати:

s = int(pole1.get())


Виконайте практичне завдання - створити невеличкий "калькулятор", що обчислює квадрат числа:


ХІД РОБОТИ:

1. Відкриваємо середовище програмування Python (IDLE)
2. Створюємо новий програмний проект (File à New file)
3. Вводимо текст програми (його подано на малюнку вище)
4. Зберігаємо текст програми у файлі (File à Save As à Вправа-6 à Save)
5. Компілюємо програму (F5)
6. Аналізуємо текст програми (виправляємо, якщо потрібно, помилки і знову тиснемо F5).


Після виконання практичної роботи надішліть копію екрану (скрін-шот) зі створеним вікном і вікном тексту програми на електронну адресу kab11.gimnazia@gmail.com або зробіть фото екрану і надішліть на Viber №0953262513


Двовимірні масиви даних (Інформатика - 9 кл.)

 Двовимірні масиви даних у Python

Масив — це структурований тип даних, усі елементи якого мають лише один тип, наприклад  int, char  тощо.

У мові Python використовуються й інші структуровані типи даних, які безпосередньо вбудовані в мову. Але масиви досить ефективно використовуються для розв'язування математичних та інших задач практично в кожній мові програмування. Тому доцільно розпочати опис структурованих типів даних саме з опису масивів.

Масиви в мові Python подібні до вбудованого в мову структурованого типу «списки». Принципова різниця між ними полягає в тому, що в списках елементи можуть бути будь-якого типу, а в масивах — тільки одного. Попри це, для свідомого розуміння способів і методів опрацювання масивів користувачеві доцільно самому вміти розробляти ці алгоритми й реалізовувати відповідною програмою. Тому тут описані класичні засоби опрацювання масивів, які застосовуються й у багатьох інших мовах програмування.

Одновимірний масив можна уявити як таблицю, що містить один рядок або стовпець даних. Однак нам часто доводиться працювати з таблицями, у яких кілька рядків і кілька стовпців. Для опрацювання даних таких таблиць зручно використовувати двовимірний масив. Кожний елемент такого масиву визначається двома індексами.

Структура масиву може бути одновимірною (лінійною), двовимірною (табличною) та багатовимірною.

Як двовимірний масив можна уявити стільці в залі кінотеатру, де кожний стілець визначається двома індексами — номером ряду і номером стільця в ряду. У вигляді двовимірного масиву легко подати поле шахівниці або популярної комп’ютерної гри Сапер. Матриця екрана вашого монітора також є двовимірним масивом пікселів.

Двовимірний масив — це прямокутна таблиця, у якій N рядків і М стовпців. Елемент, розташований на перетині і-го рядка і j-го стовпця масиву А, позначають А[і][j].

Двовимірний масив, як і одновимірний, може містити елементи будь-якого типу, але лише одного. Масив складається з фіксованої кількості рядків і стовпців. У побуті масиви часто називають таблицями, а в математиці — матрицями. Далі наведено приклад масиву цілих чисел із трьома рядками та чотирма стовпцями (рис. 1):

У мові Python нумерація рядків і стовпців починається з нуля. Наведений тут масив у мові Python має такий вигляд: [[34, 23, 6, 9], [35, 11, 54, 23], [15, 40, 3, 44]]. Але для наочності краще подавати його в такому вигляді:

[[34,23,  6,  9],

[35, 11, 54, 23],

[15, 40,  3, 44]]

Із прикладу видно, що елементи двовимірного масиву беруться у квадратні дужки, елементи кожного рядка теж беруться у квадратні дужки, які відокремлюються комою. Усередині рядка його елементи також відокремлюються комою. Звернення до елемента масиву здійснюється за такою формою:

<ім'я масиву>[номер рядка][номер стовпця]

>>> mas=[[34,23,6,9],[35,11,54,23],[15,40,3,44]]

>>> mas[1][2]

54.

Над елементами двовимірних масивів можуть виконуватися ті самі операції, що й над елементами одновимірних масивів. Далі розглянемо приклади деяких із них.



Перетворення типів диних (Інформатика - 8 кл.)

 Перетворення типів даних у Python


Перетворення типів

Часто виникає необхідність перейти від одного типу даних до іншого. Наприклад,  число, яке виводиться на екран, спочатку може знадобитися перетворити в текст. Цю операцію за вас виконує команда print, але бувають ситуації, коли потрібно поміняти тип без виведення інформації на екран або здійснити перетворення рядка в число (таке перетворення команда print виконувати не вміє). Ця операція називається перетворенням типів (type conversion). Яким чином вона реалізується? Насправді інтерпретатор Python не «перетворює» типи один в одного. Він створює з вихідного елемента новий елемент потрібного вам типу. Ось ряд функцій, які вміють виконувати цю операцію: 

  • float () створює нове число з плаваючою точкою (десяткове) з рядка або цілого числа. 
  • int () створює нове ціле число з рядка або числа з плаваючою крапкою. 
  • str () створює новий рядок з числа (або значення будь-якого іншого типу).

Дужки в кінці вказують, що перед нами не команди мови Python (такі як print), а вбудовані в нього функції. Детально функції будуть розглянуті трохи пізніше, а на даному етапі вам досить знати, що значення яке підлягає перетворенню вказується в дужках. Найкраще помітно це на прикладах. Розглянемо їх в інтерактивному режимі оболонки IDLE.

Перетворення цілого в десяткове

Візьмемо ціле число і за допомогою функції float () створимо на його основі число з плаваючою точкою:

>>> a = 12
>>> b = float(a)
>>> a
12
>>> b
12.0

Зверніть увагу на десяткову точку і завершальний 0 при виведенні змінної b. Саме за цими ознаками ми бачимо, що перед нами не ціле, а десяткове число. При цьому змінна a не змінюється, так як на початкове значення функція float () не впливає - вона створює нове значення. В інтерактивному режимі досить ввести ім'я змінної (без команди print), і інтерпретатор Python виведе на екран її значення. (Ви вже робили так) Однак в програмах це не працює. 

Перетворення десяткового в ціле 

Тепер спробуємо зробити зворотний перехід - візьмемо десяткове число і за допомогою функції int () отримаємо з нього ціле:

>>> c = 36.6
>>> d = int(c)
>>> c
36.6
>>> d
36

 Ми створили нову змінну d, яка представляє собою цілу частину змінної c.

Розглянемо ще один приклад:

>>> e = 99.98
>>> f = int(e)
>>> e
99.98
>>> f
99

Незважаючи на те що 99.98 - це майже 100, відповідь буде 99. Функція int() не виконує округлення, а просто відкидає дробову частину. Тому вона дає нам не найближче ціле, а менше з двох цілих.

Перетворення рядків у числа з плаваючою точкою

Отримати з рядка число можна наступним чином:

>>> a = '36.6'
>>> b = float(a)
>>> a
'36.6'
>>> b
36.6

 Зверніть увагу, що змінна a виводиться в лапках. Так інтерпретатор Python показує, що це рядок. А для змінної b виводиться значення з плаваючою точкою. 

Отримуємо додаткову інформацію 

Раніше, за наявністю лапок ми визначали, що саме перед нами - число або рядок. Але це можна дізнатися і іншим способом. В Python існує функція type (), що повідомляє в явному вигляді тип змінної. Подивимося, як вона працює:

>>> a = '36.6'
>>> b = 36.6
>>> c = 36
>>> type(a)
<
class 'str'>
>>> type(b)
<
class 'float'>
>>> type(c)
<
class 'int'>

 Функція type () для змінної a виводить class 'str', що відповідає рядку, для змінної b - class 'float', а , для змінної c - class 'int'. Вам більше не потрібно нічого вгадувати! 

Помилки при перетворенні типів 

Якщо дати функції int () або float () щось відмінне від числа, вона не спрацює. Переконайтеся самі:

>>> print(float('Hello!'))
Traceback (most recent call last):
  File "<pyshell#30>", line 1, in <module>
    print(float('Hello!'))
ValueError: could not convert string to float: 'Hello!'

 Ми отримали повідомлення про помилку, в якому говориться, що інтерпретатор Python не знає, як перетворити рядок "Hello!" в число. А ви знаєте? 


(Джерело: http://nikolay.in.ua/navchaemos/python-3/612-tipi-danikh-funktsiji-peretvorennya-tipiv-operatsiji-z-chislovimi-tipami)

понеділок, 12 квітня 2021 р.

Знайомство з INKSCAPE (Інформатика - 11 кл.)

 ВЕКТОРНИЙ ГРАФІЧНИЙ РЕДАКТОР

Сьогодні ми починаємо вивчати нову тему - "Векторний графічний редактор як інструмент для дизайну"

Спочатку, звичайно, потрібно встановити програму такого редактора на свій комп'ютер. Ми працюватимемо з редактором Inkscape. Ця програма розповсюджується безкоштовно, тому її можна отримати з офіційного сайту за посиланням:

Завантаження редатора Inkscape

Далі потрібно вибрати операційну систему, встановлену на Вашому комп'ютері, завантажити та встановити програму.

Після цього знайомимося з наступним:

Що таке Inkscape?

Робоче вікно програми:

На наступних заняттях спробуємо щось створити за допомогою редактора Inkscape.

четвер, 8 квітня 2021 р.

Величини рядкового типу (Інформатика - 8 кл.)

 

Величини рядкового типу

Рядок (str)

Символьний рядок (або просто рядок) — це упорядкована послідовність символів яку використовують для зберігання та представлення текстової інформації.

Щоб створити рядок символи треба помістити в лапки або апострофи.

>>> s = 'To be or not to be'
>>> s
'To be or not to be'
>>> s = "Основи програмування на Python"
>>> s
'Основи програмування на Python'
>>> 

Якщо рядок містить, наприклад, лапки, тоді його треба помістити в апострофи і навпаки:

>>> 'Вона сказала: "Нехай щастить"'
'Вона сказала: "Нехай щастить"'
>>> phrase = "It's cool!"
>>> phrase
"It's cool!"
>>> 

Ви помітили що інтерпретатор виводить значення рядкових змінних саме так, як ми їх визначили? Тобто разом з лапками у які ми заключили символи:

"It's cool!"

Щоб Python показав "справжній" рядок, лише символи які у ньому містяться, необхідно написати print і зразу ж за цим словом у круглих дужках вказати рядок чи змінну яка на нього посилається:

>>> phrase = "It's cool!"
>>> print( phrase )
It's cool!
>>> 


Екрановані послідовності

Екрановані послідовності дозволяють включити у рядок символи, які важко ввести з клавіатури.

Екранована послідовність виглядає так: символ бекслеш (зворотній слеш) і одразу за ним один або декілька символів. Ось деякі такі послідовності:

\n       -        новий рядок
\
t          -           табуляція
\’          -          
апостроф
\”         -          
лапки
\\          -          
бекслеш

Найчастіше ці послідовності використовуються для керування виведенням на екран (тобто у команді print()

Наприклад:

>>> s = 'рядок 1\nрядок 2'
>>> s
'рядок 1\nрядок 2'
>>> print(s)
рядок 1
рядок 2
>>> 

У даному випадку послідовність \n "новий рядок" спрацювала коли ми вивели значення змінної за допомогою print.

Ще приклади:

>>> s = '"It\'s cool!" - she said.'
>>> s
'"It\'s cool!" - she said.'
>>> print(s)
"It's cool!" - she said.
>>> 

Рядки у потрійних лапках чи апострофах

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

>>> s = '''рядок 1
... it's cool
... рядок 3'''
>>> print(s)
рядок 1
it's cool
рядок 3
>>> s
"рядок 1\nit's cool\nрядок 3"
>>> 

Довжина рядка

Щоб дізнатись довжину рядка, тобто кілкість символів у ньому, використовують вбудовану у Python функцію len. Записують так: слово len, і у круглих дужках вказують рядок або ж змінну яка вказує на рядок:

>>> len('abc')
3
>>> len("1\n2")
3
>>> s = ''
>>> len( s )
0
>>> 

вівторок, 6 квітня 2021 р.

ЛОГІЧНИЙ ТИП ДАНИХ (Інформатика - 8 кл.)

 

Логічний тип даних у мові Python

     Часто в реальному житті ми погоджуємося з будь-яким твердженням або заперечуємо його. Наприклад, якщо вам скажуть, що сума чисел 3 і 5 більше 7, ви погодитеся, скажете: «Так, це правда». Якщо ж хтось буде стверджувати, що сума трьох і п'яти менше семи, то ви розціните таке твердження як помилкове.

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

 Логічні вирази

Крім арифметичних операцій, зі школи нам відомі операції порівняння. Наприклад, 5 > 4. Це звучить як питання: «5 більше 4?». В даному випадку відповідь «так». В інших випадках відповіддю може бути «ні» (наприклад, для 3 < 1).

Операції порівняння не мають прив'язки до чисел. Порівнювати можна практично все що завгодно, наприклад, рядки. Кожен раз, коли ми входимо на якийсь сайт, всередині відбувається порівняння введених логіна і пароля з тими, які є в базі. І тільки якщо вони є, нас пускають всередину.

Мови програмування пристосували для своїх потреб всі математичні операції порівняння практично в незмінному вигляді. Єдина серйозна відмінність - оператори рівності і нерівності. В математиці для цього використовується звичайне одно =, але в програмуванні таке зустрічається не часто. У багатьох мовах символ = використовується для присвоювання значень змінним, тому для порівняння в Python взяли подвійний значок ==.

Наприклад, вираз 4 > 5 є логічним, так як його результатом є або правда, або неправда. Вираз 4 + 5 не є логічним, так як результатом його виконання є число.

Раніше з трьома типами даних - цілими і дійсними числами, а також рядками. Сьогодні введемо четвертий - логічний тип даних (тип bool). Його також називають булевим. У цього типу всього два можливих значення: True (правда) і False (неправда).

У програмуванні False зазвичай прирівнюють до нуля, а True - до одиниці.

 Логічні оператори

 Список операцій порівняння:

  • <    — менше
  • <=  — менше або дорівнює (не більше)
  • >    —  більше
  • >=  — більше або дорівнює (не менше)
  • ==  — дорівнює
  • !=   — не дорівнює

Ці операції можна застосувати не тільки до чисел. Наприклад, за допомогою оператора рівності можна порівняти рядки:

password == text - це порівняння ідентичності рядків, записаних в різних змінних.

Логічна операція типу 5 > 4 або password == text - це вираз, і його результат - спеціальне значення True («істина») або False («неправда»). Це новий для нас тип даних - bool.

Поряд з рядками (str) і цілими і дробовими числами, тип bool (логічний) - це один з простих типів даних в Python.

Визначення:

• Логічний тип (bool) - тип даних з двома можливими значеннями: True (істина) і False (брехня).

 

Говорячи на природній мові (наприклад, українською) ми позначаємо порівняння словами "дорівнює", "більше", "менше". У мовах програмування використовуються спеціальні знаки, подібні до тих, які використовуються в математиці: > (більше), < (менше), >= (більше або дорівнює), <= (менше або дорівнює), == (дорівнює), != (не дорівнює).

Не плутайте операцію присвоювання значення змінної, що позначається в мові Python одиничним знаком "дорівнює", і операцію порівняння (два знаки "дорівнює"). Присвоєння і порівняння - різні операції.

Наприклад:
>>> a = 10
>>> b = 5
>>> a + b > 14
True
>>> a < 14 - b
False
>>> a <= b + 5
True
>>> a != B
True
>>> a == b
False
>>> c = a == b
>>> a, b, c
(10, 5, False)

В даному прикладі вираз c = a == b складається з двох підвиразів. Спочатку відбувається порівняння (==) змінних a і b. Після цього результат логічної операції присвоюється змінної c. Вираз a, b, c просто виводить значення змінних на екран.

 Складні логічні вирази

 Логічні вирази типу Х >= 1023 є простими, так як в них виконується тільки одна логічна операція. Однак, на практиці нерідко виникає необхідність в більш складних виразах. Може знадобитися отримати відповіді "Так" або "Ні" в залежності від результату виконання двох простих виразів. Наприклад, "на вулиці йде сніг або дощ", "змінна news більше 12 і менше 20".

У таких випадках використовуються спеціальні оператори, що об'єднують два і більше простих логічних вирази. Широко використовуються два оператора:

-       логічне множення (логічне І (and))

-       логічне додавання (логічне АБО (or))

Щоб отримати True при використанні оператора and, необхідно, щоб результати обох простих виразів, які пов'язує цей оператор, були правдивими. Якщо хоча б в одному випадку результатом буде False, то і все складне вираз буде хибним.

Щоб отримати True при використанні оператора or, необхідно, щоб результат хоча б одного простого вираження, що входить до складу складного, був правдивим. У разі використання оператора or складний вираз стає хибним лише тоді, коли хибними є обидва його складові прості вирази.

Припустимо, змінній x було присвоєно значення 8 (x = 8), змінній y привласнили 13 (y = 13). Логічний вираз y < 15 and x > 8 буде виконуватися наступним чином. Спочатку виконається вираз y < 15. Його результатом буде True. Потім виконається вираз x > 8. Його результатом буде False. Далі вираз зведеться до True and False, що поверне False.

 >>> x = 8

>>> y = 13

>>> y < 15 and x > 8

False

 Якби ми записали вираз так: x > 8 and y <15, то воно також повернуло б False. Однак порівняння y < 15 не виконувалося б інтерпретатором, так як його нема чого виконувати. Адже перше просте логічне вираження (x > 8) вже повернуло неправда, яка, в разі оператора and, перетворює увесь вираз в неправду.

У випадку з оператором or другий простий вираз перевіряється, якщо перший повернув неправду, і не перевіряється, якщо вже перший повернуло істину. Так як для істинності всього висловлювання досить єдиного True, неважливо по яку сторону від оператора or.