Найти тему
Будни питониста

Практический пример. Программа "Уровень доступа".

Логические операторы 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

Доступ запрещен!

>>>

В первом случае были введены правильные логин и пароль. П рограмма сообщила уровень доступа. Во втором случае логин был введен правильно, а пароль - нет. Программа сообщила, что доступ закрыт.