Логические операторы not, or и and представляют логические операции НЕ, ИЛИ и И соответственно.
Логическая бинарная операция И (and) возвращает tme, если оба операнда истинны:
if rnoney and score:
Здесь подразумевается, если деньги и счет отличны от 0, то условие будет истинным.
Логическая бинарная операция ИЛИ ( or) возвращает tme, если один из операндов равен tme:
if rnoney or score:
Если одна из переменных, содержит значение, отличное от 0, то условие будет истинным.
Логическая унарная операция отрицания NOT возвращает истину, если операнд был ложным и наоборот. Вот как можно бесконечно запрашивать ввод пароля, пока он не будет введен:
password = ""
while not password:
password = input("Пapoль: ")
Данные логические операции можно использовать для составления более сложных условий в циклах и условных операторах if. Рассмотрим небольшой пример. Данная программа запрашивает логин и пароль и на основании этих данных определяет уровень доступа.
Листинг. Определение уровня доступа
level = 0 # Уровень доступа
login = ""
while not login:
login = inрut("Логин: ")
password = ""
while not password:
password = input("Пapoль: ")
if login == "root" and password == "123":
level = 10
elif login == "rnark" and password == "321":
level = 5
if level:
рrint("Привет, ", login)
print("Baш уровень доступа: ", level)
else:
print("Дocтyп запрещен!")
По умолчанию уровень доступа равен 0. Если это так, то доступ закрыт. Если уровень отличается от 0, то программа выводит приветствие и сообщает уровень доступа.
Сначала мы в двух циклах while запрашиваем логин и пароль. Благодаря наличию not мы будем запрашивать логин и пароль до тех пор, пока они не будут введены.
Далее мы сравниванием введенные значения с определенными константами и определяем уровень доступа.
Рассмотрим вывод программы:
Логин: mark
Пароль: 321
Привет, mark
Ваш уровень доступа: 5
>>>
Логин: root
Пароль: 1234
Доступ запрещен!
>>>
В первом случае были введены правильные логин и пароль. П рограмма сообщила уровень доступа. Во втором случае логин был введен правильно, а пароль - нет. Программа сообщила, что доступ закрыт.