Логические операторы. Часть 2 (NOT)
Часть раздела Основы путешествия по R на Coddy — урок 18 из 78.
Оператор NOT (!) меняет логическое значение на противоположное. Он превращает TRUE в FALSE, а FALSE — в TRUE.
is_raining <- TRUE
!is_raining # FALSE
is_closed <- FALSE
!is_closed # TRUEЭтот оператор полезен, когда вы хотите проверить, что какое-либо условие не выполняется. Например, вместо того чтобы проверять, авторизован ли пользователь, вам может потребоваться проверить, что он не авторизован:
logged_in <- FALSE
if (!logged_in) {
# Показать окно входа
}Вы можете комбинировать NOT с операторами AND и OR для создания более сложных условий:
has_ticket <- TRUE
is_vip <- FALSE
# Может войти, если есть билет И НЕ является VIP-персоной (обычный вход)
regular_entry <- has_ticket && !is_vip # TRUEВот как NOT преобразует логические значения:
| A | !A |
|---|---|
| TRUE | FALSE |
| FALSE | TRUE |
Задание
ЛегкоПримените оператор НЕ (!), чтобы инвертировать логические значения, и комбинируйте его с другими логическими операторами.
Вам предоставлены следующие переменные:
is_raining <- TRUE
has_umbrella <- FALSE
is_weekend <- TRUE
has_homework <- TRUE
is_tired <- FALSEИспользуйте оператор НЕ вместе с операторами И и ИЛИ для создания следующих переменных:
- Создайте переменную с именем
stay_dry, которая хранит значение, противоположноеis_raining - Создайте переменную с именем
will_get_wet, которая хранитTRUE, если идет дождь И у человека НЕТ зонта - Создайте переменную с именем
can_relax, которая хранитTRUE, если сейчас выходной И у человека НЕТ домашнего задания - Создайте переменную с именем
should_go_out, которая хранитTRUE, если дождя НЕТ ИЛИ у человека есть зонт - Создайте переменную с именем
productive_day, которая хранитTRUE, если человек НЕ устал И сейчас НЕ выходной
Используйте функцию print() для отображения stay_dry, will_get_wet, can_relax, should_go_out и productive_day именно в таком порядке.
Шпаргалка
Оператор NOT (!) меняет логическое значение на противоположное:
is_raining <- TRUE
!is_raining # FALSE
is_closed <- FALSE
!is_closed # TRUEИспользуйте NOT, чтобы проверить, что условие не выполняется:
logged_in <- FALSE
if (!logged_in) {
# Показать окно входа
}Комбинируйте NOT с операторами AND (&&) и OR (||):
has_ticket <- TRUE
is_vip <- FALSE
regular_entry <- has_ticket && !is_vip # TRUE| A | !A |
|---|---|
| TRUE | FALSE |
| FALSE | TRUE |
Попробуйте сами
# Заданные переменные
is_raining <- TRUE
has_umbrella <- FALSE
is_weekend <- TRUE
has_homework <- TRUE
is_tired <- FALSE
# TODO: Напишите свой код ниже
# Используйте оператор НЕ (!) вместе с операторами И (&) и ИЛИ (|)
# чтобы создать необходимые переменные
# 1. stay_dry - противоположность is_raining
# 2. will_get_wet - TRUE, если идет дождь И НЕТ зонта
# 3. can_relax - TRUE, если выходной И НЕТ домашнего задания
# 4. should_go_out - TRUE, если НЕТ дождя ИЛИ есть зонт
# 5. productive_day - TRUE, если НЕ устал И НЕ выходной
# Выведите результаты по порядку
print(stay_dry)
print(will_get_wet)
print(can_relax)
print(should_go_out)
print(productive_day)В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 2
Логические операторы (AND, OR)Логические операторы. Часть 2 (NOT)Повторение: простая логикаВекторизованная логика. Часть 1Векторизованная логика. Часть 27Калькулятор разделения счета
Приветственное сообщениеПолучение пользовательского ввода13Векторы: продвинутый уровень
Срезы и индексация векторовЛогическая индексацияАрифметика и ресайклинг векторовОператор %in%2Переменные и типы данных
Числовой тип данныхЦелочисленный тип данныхСимвольный тип данныхЛогический тип данныхПроверка типов данныхПравила именованияПропущенные значения: NAИтоги — создание переменных5Принятие решений
Оператор ifКонструкция if - elseПовторение: Простой калькуляторВложенные конструкции if - else8Циклы
Цикл ForЦикл WhileBreakNext (Continue)Повторение: ФакториалГенерация последовательностей (seq, :)Вложенные циклыПовторение: Динамический ввод3Операторы. Часть 1
Арифметические операторыЦелочисленное деление и остаток от деленияОператоры присваиванияПовторение: простая математикаОператоры сравнения6Основы ввода-вывода
Вывод через printКоманда cat для выводаВывод с переменнымиЧтение ввода через readline()Основы преобразования типовПовторение — Калькулятор возрастаПовторение — Истина или ложь9Функции
Объявление функцииАргументы функцииВозвращаемые значенияПовторение — функция SigmaПовторение — функция валидацииЗначения параметров по умолчанию12Итерация по последовательностям
Итерация по элементам вектораИспользование seq_along()Итерация по символам (strsplit)Функции для работы со строками