Цикл while в Python и алгебра логики
В этом уроке познакомимся с алгеброй логики и циклом while в Python. Изучим подробнее на примере задания «Соответствие символов».
Алгебра логики
Мы уже рассматривали условия в Python для двух сравнений. Когда требуется больше сравнений, используется специальные операторы. Они объединяют два и более простых логических выражения. В таких случаях используются два логических оператора И (and) и ИЛИ (or).
Оператор and обозначается символов ∧, а операция называется конъюнкцией. Для получения истины результаты обоих простых выражений должны быть истинными. Если хотя бы в одном случае результатом будет ложным, то выражение будет ложным. Приведем таблицу истинности для логического оператора and.
a | b | a∧b |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
Дизъюнкцией называется логическая операция, когда используется or. Этот оператор обозначается символом ∨. Чтобы выражение стало истинным, результат хотя бы одного простого выражения должен быть верным. В случае оператора or сложное выражение становится ложным, когда неверны оба составляющие его простые выражения. Разберем таблицу истинности для оператора or:
a | b | a∨b |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
Цикл while в Python
Цикл — это некоторые повторяющееся действия или явления. Вспомним про годовой цикл: зима -> весна -> лето -> осень -> зима.
While используется для повторения частей кода. Он выполняется до тех пор, пока используемое условие является истиной.
Давайте рассмотрим работу подобного цикла на примере:
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
Конец строки
Добавить комментарий