Цикл while в Python и алгебра логики

В этом уроке познакомимся с алгеброй логики и циклом while в Python. Изучим подробнее на примере задания «Соответствие символов».

Алгебра логики

Мы уже рассматривали условия в Python для двух сравнений. Когда требуется больше сравнений, используется специальные операторы. Они объединяют два и более простых логических выражения. В таких случаях используются два логических оператора И (and) и ИЛИ (or).

Оператор and обозначается символов , а операция называется конъюнкцией. Для получения истины результаты обоих простых выражений должны быть истинными. Если хотя бы в одном случае результатом будет ложным, то выражение будет ложным. Приведем таблицу истинности для логического оператора and.

aba∧b
000
010
100
111
Таблица истинности для логического оператора and

Дизъюнкцией называется логическая операция, когда используется or. Этот оператор обозначается символом . Чтобы выражение стало истинным, результат хотя бы одного простого выражения должен быть верным. В случае оператора or сложное выражение становится ложным, когда неверны оба составляющие его простые выражения. Разберем таблицу истинности для оператора or:

aba∨b
000
011
101
111
Таблица истинности для логического оператора or

Цикл while в Python

Цикл — это некоторые повторяющееся действия или явления. Вспомним про годовой цикл: зима -> весна -> лето -> осень -> зима.

While используется для повторения частей кода. Он выполняется до тех пор, пока используемое условие является истиной.

Цикл While в Python

Давайте рассмотрим работу подобного цикла на примере:

a = 10
i = 3
while a > i:
    print(i, "<-меньше a")
    i = i + 1
print(i, "<-теперь не меньше a")

Результат выполнения будет выглядеть так:

3 <-меньше a
4 <-меньше a
5 <-меньше a
6 <-меньше a
7 <-меньше a
8 <-меньше a
9 <-меньше a
10 <-теперь не меньше a

Часть кода выполняется столько раз, сколько условие было истинно. За счет увеличения i на каждом шаге удалось достигнуть такой величины, что условие цикла стало ложью.

Задание «Соответствие символов»

Необходимо написать программу, которая на вход получает строку и некий символ. Задача состоит в проверке наличия символа в приведенной строке.

S = input("введи строку: ")
C = input("введи символ: ")
size = len(S) # длина строки
i = 0
while (S[i] !=  C) and (i < size-1): # выходим из цикла если нашли символ или если строка закончилась
    print(S[i]," <- не является ",C)
    i = i+1
if(i == size-1):
    print("Конец строки")
else:
    print(S[i]," <- является ",C)

Проверим нашу программу. Для примера введем фразу «Hello world» и символ l, который включен в это выражение.

введи строку: Hello world
введи символ: l
H  <- не является  l
e  <- не является  l
l  <- является  l
>>> 

Введем символ, который не включен в эту фразу:

введи строку: Hello world
введи символ: z
H  <- не является  z
e  <- не является  z
l  <- не является  z
l  <- не является  z
o  <- не является  z
   <- не является  z
w  <- не является  z
o  <- не является  z
r  <- не является  z
l  <- не является  z
Конец строки

Курсы Робикс, в которых изучается этот материал.

  1. Программирование на Python в Minecraft
  2. Duckietown робот с системой Автопилота
Метки:

Поделитесь или сохраните статью

Добавить комментарий

Ваш адрес email не будет опубликован.