Узнать фио человека по номеру мобильного телефона

Логический оператор ИЛИ

Если хоть одно из двух условий является истинным, то логический оператор ИЛИ является true.

Логический оператор ИЛИ (||)
Левый операнд Правый операнд Результат
false false false
false true true
true false true
true true true

Рассмотрим следующую программу:

#include

int main()
{
std::cout > value;

if (value== 0 || value== 1)
std::cout

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

#include

intmain()

{

std::cout»Enter a number: «;

intvalue;

std::cin>>value;

if(value==||value==1)

std::cout»You picked 0 or 1″std::endl;

else

std::cout»You did not pick 0 or 1″std::endl;

return;

}

Здесь мы использовали логический оператор ИЛИ, чтобы проверить, является ли хоть одно из двух условий истинным: левое () или правое (). Если хоть одно из условий — true или оба сразу true, то выполняться будет стейтмент if. Если ни одно из условий не является true, то результат — false и выполняться будет стейтмент else.

Вы можете соединить сразу несколько условий:

if (value == 0 || value == 1 || value == 2 || value == 3)
std::cout

1
2

if(value==||value==1||value==2||value==3)

std::cout»You picked 0, 1, 2, or 3″std::endl;

Новички иногда путают логическое ИЛИ (||) с побитовым ИЛИ (|). Хоть у них и одинаковые названия, функции они выполняют разные.

ИЛИ «||» находит первое истинное значение

Описанная выше логика соответствует традиционной. Теперь давайте поработаем с «дополнительными» возможностями JavaScript.

Расширенный алгоритм работает следующим образом.

При выполнении ИЛИ || с несколькими значениями:

Оператор выполняет следующие действия:

  • Вычисляет операнды слева направо.
  • Каждый операнд конвертирует в логическое значение. Если результат , останавливается и возвращает исходное значение этого операнда.
  • Если все операнды являются ложными (), возвращает последний из них.

Значение возвращается в исходном виде, без преобразования.

Другими словами, цепочка ИЛИ возвращает первое истинное значение или последнее, если такое значение не найдено.

Например:

Это делает возможным более интересное применение оператора по сравнению с «чистым, традиционным, только булевым ИЛИ».

  1. Получение первого истинного значения из списка переменных или выражений.

    Представим, что у нас имеется ряд переменных, которые могут содержать данные или быть . Как мы можем найти первую переменную с данными?

    С помощью :

    Если бы и , и были ложными, в качестве результата мы бы наблюдали .

  2. Сокращённое вычисление.

    Операндами могут быть как отдельные значения, так и произвольные выражения. ИЛИ вычисляет их слева направо. Вычисление останавливается при достижении первого истинного значения. Этот процесс называется «сокращённым вычислением», поскольку второй операнд вычисляется только в том случае, если первого недостаточно для вычисления всего выражения.

    Это хорошо заметно, когда выражение, указанное в качестве второго аргумента, имеет побочный эффект, например, изменение переменной.

    В приведённом ниже примере не изменяется:

    Если бы первый аргумент имел значение , то приступил бы к вычислению второго и выполнил операцию присваивания:

    Присваивание – лишь один пример. Конечно, могут быть и другие побочные эффекты, которые не проявятся, если вычисление до них не дойдёт.

    Как мы видим, этот вариант использования является «аналогом «. Первый операнд преобразуется в логический. Если он оказывается ложным, начинается вычисление второго.

    В большинстве случаев лучше использовать «обычный» , чтобы облегчить понимание кода, но иногда это может быть удобно.

PHP условие:

В PHP есть два вида условий, первый это if, второй switch, мы оба рассмотрим.

PHP оператор if else:

Для начала посмотрим самый простое условие оператор, как работать с if.

1
2
3
4
5
6
7
8

$a=10;

$b=1;

 
// если $a больше $b

if($a>$b){

// Выводим на экран $a больше $b

echo’$a больше $b’;

}

Это код выводит надпись «$a больше $b«, если $b будет больше или равно, то он не чего не выведет.

Также  есть ещё условие иначе, то есть если первый условие не верно, возвращает false, то будет выводить на экран что то другое, пишется оно так.

1
2
3
4
5
6
7
8
9
10
11

$a=10;

$b=10;

 
// если $a больше $b

if($a>$b){

// Выводим это на экран

echo’$a больше $b’;

}else{// иначе

// Выводим на экран $a меньше или равно $b

echo’$a меньше или равно $b’;

}

Думаю тут всё понятно, в этом случаи выводит «$a меньше или равно $b«, так как что $a, что $b, у нас равны 10.

Но также есть возможность просто писать несколько условий, делается это в PHP через условие if else, а точнее через elseif.

1
2
3
4
5
6
7
8
9
10
11
12
13
14

$a=10;

$b=10;

 
// если $a больше $b

if($a>$b){

// Выводим это на экран

echo’$a больше $b’;

}elseif($a==$b){// если $a равно $b

// Выводим на экран $a равно $b

echo’$a равно $b’;

}else{// иначе

// Выводим на экран $a меньше $b

echo’$a меньше $b’;

}

Этих условий может быть хоть сколько, бесконечно, в нашем случае выводит на экран «$a равно $b«.

Также если вы пишите это внутри HTML кода, то рекомендую писать это специальным образом, вот так.

1
2
3
4
5
6
7
8
9
10
11

// если $a больше $b

if($a>$b)

// Выводим это на экран

echo’$a больше $b’;

elseif($a==$b)// если $a равно $b

// Выводим на экран $a равно $b

echo’$a равно $b’;

else// иначе

// Выводим на экран $a меньше $b

echo’$a меньше $b’;

endif;

В том дело, что ваш код не всегда будут смотреть люди которые знают PHP, а к примеру, это может быть простой верстальщик, который вообще не знает языки программирования, таким образом ему будет проще понять.

PHP оператор switch:

Есть ещё оператор switch в PHP, про него не чего особо сказать, единственное, он сравнивает равенство значений и всё, поэтому я покажу только, как он пишется.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

switch($a){

// Если $a равно 0

case

// Выводит на экран $a равно 0

echo’$a равно 0′;

// Конец, остальные условия не будут проверятся

break;

// Если $a равно 1

case1

// Выводит на экран $a равно 1

echo’$a равно 1′;

// Конец, остальные условия не будут проверятся

break;

// Если $a равно 2

case2

// Выводит на экран $a равно 2

echo’$a равно 2′;

// Конец, остальные условия не будут проверятся

break;

}

Как видите всё очень просто, только надо сказать что такое break, он просто выходит из switch, после того как условие выполнилось.

Подробнее про switch посмотрите лучше здесь.

PHP тернарный оператор:

Про него тоже практически нечего сказать, это просто сокращение от if else, поэтому покажу только как происходить в php использование тернарного оператора.

1
2

$str=$a>$b?’$a больше $b»$a меньше или равно $b’;

echo$str;

Сначала идёт условие, после вопросительного знака, что должно присвоить переменной, если условие равно true, после двойных точек, что должно присвоить переменной случае false.

Использование операторов И/ИЛИ

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

Многие программисты думают, что логические И и ИЛИ имеют одинаковый приоритет (или забывают, что это не так), так же как и сложение/вычитание или умножение/деление. Тем не менее, приоритет логического И выше приоритета ИЛИ. Таким образом, операции с оператором И будут всегда вычисляться первыми (если только операции с ИЛИ не находятся в круглых скобках).

Рассмотрим следующее выражение:  . Поскольку приоритет логического И выше, то обрабатываться выражение будет так:

А не так:

Хорошей практикой является использование круглых скобок с операциями. Это предотвратит ошибки приоритета, увеличит читабельность кода и чётко даст понять компилятору, как следует обрабатывать выражения. Например, вместо того, чтобы писать , лучше записать .

Просто о сложном или изучаем PHP7! Часть 7. Логические операторы в PHP. Условный оператор if

Сохраним данный документ в папке htdocs по пути C:\Abyss Web Server\htdocs, присвоив ему имя if и расширение .php

При помощи функции var_dump выведем в окне веб-браузера значения выражений $a > $b, $a :

echo ‘Выражение $a > $b имеет тип и значение:’; echo var_dump ($a > $b);
echo ‘Выражение $a
echo ‘Выражение $a == $b имеет тип и значение:’; echo var_dump ($a == $b);

echo ‘Выражение $a != $b имеет тип и значение:’; echo var_dump ($a != $b);

Как видим, выражения  $a > $b, $a , $a == $b, $a != $b имеют значения false, true, false и true соответственно

Ниже в таблице представлен логический оператор || (логическое «или») и логический оператор && (логическое «и»)

Логический оператор «или», возвращает true, если хотя бы один из операндов, $a и $b, имеют значение true. Если оба операнда имеют значение false, оператор || возвращает false

Выведем в окне веб-браузера значения выражений $a > $b || $a $b || $a == $b, $a > $b || $a != $b, $a , дописав в файле if.php строки кода:

echo ‘Выражение $a > $b || $a $b || $a
echo ‘Выражение $a > $b || $a == $b имеет тип и значение:’; echo var_dump ($a > $b || $a == $b);
echo ‘Выражение $a > $b || $a != $b имеет тип и значение:’; echo var_dump ($a > $b || $a != $b);
echo ‘Выражение $a
echo ‘Выражение $a

echo ‘Выражение $a == $b || $a != $b имеет тип и значение:’; echo var_dump ($a == $b || $a != $b);

Например, рассмотрим выражение $a == $b || $a != Sb. Как видим, данное выражение имеет значение true, так как выражения $a == $b (false) и $a != Sb (true) разделены оператором «или» (||)

Логический оператор «и», возвращает true, если оба операнда, $a и $b, имеют значение true. Если один из операндов, $a или $b имеют значение false, оператор && возвращает значение false

Выведем в окне веб-браузера значения выражений $a > $b && $a $b && $a == $b, $a > $b && $a != $b, $a , $a , $a == $b && $a != $b, добавив в файл if.php строки кода:

echo ‘Выражение $a > $b && $a $b && $a
echo ‘Выражение $a > $b && $a == $b имеет тип и значение:’; echo var_dump ($a > $b && $a == $b);
echo ‘Выражение $a > $b && $a != $b имеет тип и значение:’; echo var_dump ($a > $b && $a != $b);
echo ‘Выражение $a
echo ‘Выражение $a

echo ‘Выражение $a == $b && $a != $b имеет тип и значение:’; echo var_dump ($a == $b && $a != $b);

Например, выражение $a == $b && $a != $b имеет значение false, так как выражения $a == $b (false) и $a != $b (true) разделены оператором «и» (&&)

Условный оператор if используется для условного выполнения фрагмента кода, в зависимости от того, какое значение имеет выражение (true или false), следующее после ключевого слова if

Например, в качестве условия укажем выражение $a . Так как выражение $a имеет значение true, то в окне веб-браузера будет выведен текст » Переменная $a меньше переменной $b», код для вывода которого указан в фигурных скобках (echo ‘Переменная $a меньше переменной $b’;)

Текст » Переменная $a меньше переменной $b» в окне веб-браузера

В фигурных скобках можно прописывать несколько строк кода, разделяя их между собой точкой с запятой.  Данные строки кода будут выполнены, если выражение после ключевого слова if имеет значение true

Вывод текста  » Переменная $a меньше переменной $b» и «Выражение $a
Если в качестве условия указать выражение, имеющее значение false, например $a > $b, то в таком случае код в фигурных скобках не будет выполнен

Если выражение, указанное после слова if, ложно, то с помощью конструкции else if можно добавить дополнительные выражения. В этом случае, когда выражение, указанное после else if имеет значение true, то будет выполнен код, указанный в фигурных скобках (в нашем случае в окне веб-браузера будет выведен текст «Переменная $a меньше переменной $b»)

Текст «Переменная $a меньше переменной $b» в окне веб-браузера.

Условный оператор if также можно дополнить конструкцией else. Если выражение, указанное после ключевого слова if будет иметь значение false, то будет выполнен код, указанный в фигурных скобках после слова else. В нашем случае в окне веб-браузера будет выведен текст «Выражение $a > $b не верно, т.е false, так как $a = 49, а $b = 73»

Текст «Выражение $a > $b не верно, т.е false, так как $a = 49, а $b = 73» в окне веб-браузера

В качестве условия после слова if можно указывать и выражения с логическими операторами «и» (&&) и «или» (||)
Так как выражение $a > $b || $a имеет значение true, то в окне веб-браузера будет выведен текст «Выражение $a > $b || $a

Текст «Выражение $a > $b || $a
Таким же образом можно в качестве условия использовать выражения с логическим оператором «и» (&&). Так как выражение $a имеет значение true, будет выполнен код echo ‘Выражение $a ;

Текст «Выражение $a

Следующая статья: Просто о сложном или изучаем PHP7! Часть 8. Условный оператор switch

Оператор === (идентичности)

Оператор (идентичности) принимает операнды любого типа и возвращает , если их значения совпадают (равны), и , если они различны. Чем же он отличается от оператора равенства? Оператор идентичности проверяет два операнда на «идентичность», руководствуясь строгим определением совпадения, это означает, что помимо равенства самих значений операндов, они также должны относиться к одному и тому же типу данных. В качестве примера рассмотрим такое выражение, как , результатом этого выражения будет значение , так как значение слева является числом, а значение справа — строкой, то есть у этих значений разные типы данных. Запомните, что операторы и означают «равно» и «идентично/тождественно равно» .

<?php $var1 = 2;
  $var2 = '2';

  var_dump(14 === 14);          // вернет true
  var_dump('hi' === 'hi');      // вернет true
  var_dump($var1 === $var2);    // вернет false
  var_dump('23' === 23);        // вернет false

?>

Комбинирование логических операторов

Можно также составлять и более сложные выражения из нескольких логических операторов:

В этом примере с помощью нескольких операторов && и || составляется более длинное и сложное выражение. Однако операторы && и || по-прежнему применяются только к двум величинам, поэтому все выражение можно разбить на три простых условия. Алгоритм работы будет следующим:

если пользователь правильно ввел код дверного замка и прошел сканирование сетчатки или если он использовал действующую ключ-карту или если он ввел код экстренного доступа, то дверь открывается.

Исходя из значений enteredDoorCode, passedRetinaScan и hasDoorKey первые два подусловия дают false. Однако был введен код экстренного доступа, поэтому все составное выражение по-прежнему равно true.

Заметка

Логические операторы Swift && и || являются лево-ассоциированными, что означает, что составные выражения с логическими операторами оценивают в первую очередь выражения слева направо.

Использование словарей

Довольно распространённый способ организации конструкции в Python — это использование словаря. Проще показать на примере:

unit_to_multiplier = {
    'mm': 10**-3,
    'cm': 10**-2,
    'dm': 10**-1,
    'm': 1,
    'km': 10**3
}

Для того, чтобы получить нужный множитель в этом случае требуется лишь взять значение по ключу:

try:
    mult = unit_to_multiplier
except KeyError as e:
    # можно также присвоить значение по умолчанию вместо бросания исключения
    raise ValueError('Undefined unit: {}'.format(e.args))

Если вы твёрдо уверены, что значение всегда будет присутствовать в словаре, можете опустить блок и быть готовым ловить исключение в другом месте.

Некоторой вариацией этого подходя будет предварительная проверка значения в условии:

if unit in unit_to_multiplier:
    mult = unit_to_multiplier
else:
    # обработка отсутствия значения в словаре

В Python принято использовать подход, звучащий примерно так: «лучше попробовать и получить ошибку, чем каждый раз спрашивать разрешение», поэтому более предпочтительный подход с использованием исключений.

Если хочется использовать значение по умолчанию в случае, если ключ отсутствует, удобно использовать метод :

mult = unit_to_multiplier.get('ultra-meter', 0)

Если словарь вам требуется один раз, можно объединить эти выражения в одно:

unit_to_multiplier = {
    'mm': 10**-3,
    'cm': 10**-2,
    'dm': 10**-1,
    'm': 1,
    'km': 10**3
}.get('km', 0)

На этом возможности этого подхода не заканчиваются. Можно использовать условные выражения в качестве ключей словаря:

Ввод данных. Функция input()

За ввод в программу данных с клавиатуры в Python отвечает функция input(). Когда вызывается эта функция, программа останавливает свое выполнение и ждет, когда пользователь введет текст. После этого, когда он нажмет Enter, функция input() заберет введенный текст и передаст его программе, которая уже будет обрабатывать его согласно своим алгоритмам.

Если в интерактивном режиме ввести команду input(), то ничего интересного вы не увидите. Компьютер будет ждать, когда вы что-нибудь введете и нажмете Enter или просто нажмете Enter. Если вы что-то ввели, это сразу же отобразиться на экране:

>>> input()
Yes!
'Yes!'

Функция input() передает введенные данные в программу. Их можно присвоить переменной. В этом случае интерпретатор не выводит строку сразу же:

>>> answer = input()
No, it is not.

В данном случае строка сохраняется в переменной answer, и при желании мы можем вывести ее значение на экран:

>>> answer
'No, it is not.'

При использовании функции print() кавычки в выводе опускаются:

>>> print(answer)
No, it is not.

Куда интересней использовать функцию input() в скриптах – файлах с кодом. Рассмотрим такую программу:

При запуске программы, компьютер ждет, когда будет введена сначала одна строка, потом вторая. Они будут присвоены переменным и . После этого значения этих переменных выводятся на экран с помощью форматированного вывода.

Вышеприведенный скрипт далек от совершенства. Откуда пользователю знать, что хочет от него программа? Чтобы не вводить человека в замешательство, для функции input() предусмотрен специальный параметр-приглашение. Это приглашение выводится на экран при вызове input(). Усовершенствованная программа может выглядеть так:

Обратите внимание, что в программу поступает строка. Даже если ввести число, функция input() все равно вернет его строковое представление

Но что делать, если надо получить число? Ответ: использовать функции преобразования типов.

В данном случае с помощью функций int() и float() строковые значения переменных и преобразуются соответственно в целое число и вещественное число. После этого новые численные значения присваиваются тем же переменным.

Программный код можно сократить, если преобразование типов выполнить в тех же строках кода, где вызывается функция input():

qtyOranges = int(input("Сколько апельсинов? "))
priceOrange = float(input("Цена одного апельсина? "))
 
sumOranges = qtyOranges * priceOrange
 
print("Заплатите", sumOranges, "руб.")

Сначала выполняется функция input(). Она возвращает строку, которую функция int() или float() сразу преобразует в число. Только после этого происходит присваивание переменной, то есть она сразу получает численное значение.

Выражения

Выражение — это любая единица исходного кода программы, которая может быть вычислена для получения значения, например, вызов функции, использование операторов, или просто обращение к переменной по имени. В PHP почти всё является выражением.

Выражения делятся на простые (их также называют первичными) и сложные. Первичные выражения являются самостоятельными выражениями — они не включают в себя ещё более простых выражений. Например, к первичным выражениям относятся: идентификаторы, литералы и оператор группировки. Сложные выражения состоят из простых выражений. Типичный способ конструирования сложных выражений из простых выражений заключается в использовании операторов:

// Примеры первичных выражений
11                        // Числовой литерал
$str                      // Возвращает значение переменной
[]                        // Литерал массива
()                        // Оператора группировки

// Примеры сложных выражений
$alpha + 19                // Возвращает результат арифметической операции
($alpha - 37) * $beta / 2  // Возвращает результат арифметических операций
foo()                      // Возвращает результат вызова функции
$mass                   // Возвращает значение элемента массива

Некоторые выражения, так же как и инструкции, оканчиваются точкой с запятой, например:

$a = 5;

Таким образом, разница между выражением и инструкцией заключается в том, что любое выражение — это то, что вычисляется для получения значения, а инструкция — это просто указание на совершение какого-либо действия.

Логический оператор НЕ

Мы уже с ним сталкивались в уроке №34.

Логический оператор НЕ (!)
Операнд Результат
true false
false true

Если операндом является true, то после применения логического НЕ результатом будет false. Если же операнд до применения оператора НЕ является false, то после его применения — станет true. Другими словами, логический оператор НЕ меняет результат с true на false и наоборот. Он часто используется в условных выражениях:

bool bTooLarge = (x > 100); // переменная bTooLarge будет true, если x > 100
if (!bTooLarge)
// Делаем что-нибудь с x
else
// Выводим ошибку

1
2
3
4
5

boolbTooLarge=(x>100);// переменная bTooLarge будет true, если x > 100

if(!bTooLarge)

// Делаем что-нибудь с x

else

// Выводим ошибку

Следует помнить, что логический оператор НЕ имеет очень высокий уровень приоритета. Новички часто совершают следующую ошибку:

#include

int main()
{
int x = 5;
int y = 7;

if (!x == y)
std::cout

1
2
3
4
5
6
7
8
9
10
11
12
13
14

#include
 

intmain()

{

intx=5;

inty=7;

if(!x==y)

std::cout»x does not equal y»;

else

std::cout»x equals y»;

return;

}

Результат выполнения программы выше:

Но ведь не равно , как это возможно? Поскольку приоритет логического оператора НЕ выше, чем приоритет оператора равенства, то выражение обрабатывается как . Так как — это , то — это . Условие ложное, поэтому выполняется часть else!

Напоминание: Любое ненулевое целое значение в логическом контексте является true. Так как , то вычисляется как true, а вот , т.е. . Использование целых чисел в логических операциях подобным образом может запутать не только пользователя, но и самого разработчика, поэтому мы не советуем так делать!

Правильный способ написания программы выше:

#include

int main()
{
int x = 5;
int y = 7;

if (!(x == y))
std::cout

1
2
3
4
5
6
7
8
9
10
11
12
13
14

#include
 

intmain()

{

intx=5;

inty=7;

if(!(x==y))

std::cout»x does not equal y»;

else

std::cout»x equals y»;

return;

}

Сначала обрабатывается , а затем уже оператор НЕ изменяет результат на противоположный.

Правило: Если логический оператор НЕ должен работать с результатами работы других операторов, то другие операторы и их операнды должны находиться в круглых скобках.

Арифметические операции

Операции сложения
+, вычитания
-, умножения
* и деления
работают вполне ожидаемо.

Операция
%  работает несколько иначе аналогичной операции в Java, так как она реализует modulo operation, но для положительных чисел результат одинаков.

В самом синтаксисе языка Python существует операция возведения в степень
**:

Python

$ python3
Python 3.5.3 (default, Sep 27 2018, 17:25:39)
on linux
Type «help», «copyright», «credits» or «license» for more information.
>>> 2 **3
8
>>> 4 ** 2
16
>>>

1
2
3
4
5
6
7
8
9

$python3

Python3.5.3(default,Sep272018,172539)

GCC6.3.020170516on linux

Type»help»,»copyright»,»credits»or»license»formore information.

>>>2**3

8

>>>4**2

16

>>>

Также в Python существует операция деления с округлением к наименьшему ближайшему целому числу
//:

Python

$ python3
Python 3.5.3 (default, Sep 27 2018, 17:25:39)
on linux
Type «help», «copyright», «credits» or «license» for more information.
>>> 9 // 2
4
>>> 9.0 // 2.0
4.0
>>> 13 // 3
4
>>> 13.0 // 3.4
3.0
>>> -5.1 // 2.0
-3.0
>>> — 4.1 // 2.0
-3.0
>>> — 4.0 // 2.0
-2.0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

$python3

Python3.5.3(default,Sep272018,172539)

GCC6.3.020170516on linux

Type»help»,»copyright»,»credits»or»license»formore information.

>>>9//2

4

>>>9.0//2.0

4.0

>>>13//3

4

>>>13.0//3.4

3.0

>>>-5.1//2.0

-3.0

>>>-4.1//2.0

-3.0

>>>-4.0//2.0

-2.0

Логическое ИЛИ

Оператор логическое ИЛИ (логическое сложение, OR) истинен тогда, когда истиной является хотя бы один его аргумент.

Логический оператор ИЛИ
X Y X OR Y
1 1
1 1
1 1 1

В си ИЛИ представлен оператором ||. Например, усовершенствуем программу: теперь пол можно вводить как большой, так и маленькой буквой

#define _CRT_SECURE_NO_WARNINGS

#include 
#include 

void main() {
	char genderInput;
	char gender;
	unsigned int age;
	unsigned int height;

	printf("Enter gender ('M' or 'F')\n");
	scanf("%c", &genderInput);
	printf("Enter age\n");
	scanf("%u", &age);
	printf("Enter height\n");
	scanf("%u", &height);

	if (genderInput == 'M' || genderInput == 'm') {
		gender = 1;
	} else {
		gender = 0;
	}

	if ((age > 17 && height >= 180) && gender) {
		printf("Wellcome");
	} else {
		printf("Go away");
	}
	_getch();
}

Как и в случае оператора И, ИЛИ коммутативен и ассоциативен.

Операторы можно перемешивать друг с другом, создавая сложные операторы

#define _CRT_SECURE_NO_WARNINGS

#include 
#include 

void main() {
	char gender;
	unsigned int age;
	unsigned int height;

	printf("Enter gender ('M' or 'F')\n");
	scanf("%c", &gender);
	printf("Enter age\n");
	scanf("%u", &age);
	printf("Enter height\n");
	scanf("%u", &height);

	if ((age > 17 && height >= 180) && (gender == 'M' || gender == 'm')) {
		printf("Wellcome");
	} else {
		printf("Go away");
	}
	_getch();
}

Стоит только помнить о том, что оператор отрицания имеет больший приоритет, чем И или ИЛИ, поэтому будет выполняться в первую очередь. Если может случиться ситуация, когда порядок выполнения не ясен, определите его с помощью скобок.

Пример: закон де-Моргана. Чтобы сменить И на ИЛИ (или наоборот), необходимо инвертировать значения всех операндов, заменить И на ИЛИ (или ИЛИ на И) и инвертировать конечный результат. В случае с нашим условием

(age > 17 && height >= 180) && (gender == 'M' || gender == 'm')

Рассмотрим сначала кусок

(age > 17 && height >= 180)

Меняем все значения на обратные

(!(age > 17) && !(height >= 180))

заменяем оператор && на ||

(!(age > 17) || !(height >= 180))

и инвертируем ответ

!(!(age > 17) || !(height >= 180))

Как видим, результат тот же. Очевидно, что

!(age > 17)

эквивалентно

Вывод данных. Функция print()

Что такое функция в программировании, узнаем позже. Пока будем считать, что print() – это такая команда языка Python, которая выводит то, что в ее скобках на экран.

>>> print(1032)
1032
>>> print(2.34)
2.34
>>> print("Hello")
Hello

В скобках могут быть любые типы данных. Кроме того, количество данных может быть различным:

>>> print("a:", 1)
a: 1
>>> one = 1
>>> two = 2
>>> three = 3
>>> print(one, two, three)
1 2 3

Можно передавать в функцию print() как непосредственно литералы (в данном случае и ), так и переменные, вместо которых будут выведены их значения. Аргументы функции (то, что в скобках), разделяются между собой запятыми. В выводе вместо запятых значения разделены пробелом.

Если в скобках стоит выражение, то сначала оно выполняется, после чего print() уже выводит результат данного выражения:

>>> print("hello" + " " + "world")
hello world
>>> print(10 - 2.5/2)
8.75

В print() предусмотрены дополнительные параметры. Например, через параметр sep можно указать отличный от пробела разделитель строк:

>>> print("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", sep="-")
Mon-Tue-Wed-Thu-Fri-Sat-Sun
>>> print(1, 2, 3, sep="//")
1//2//3

Параметр end позволяет указывать, что делать, после вывода строки. По-умолчанию происходит переход на новую строку. Однако это действие можно отменить, указав любой другой символ или строку:

>>> print(10, end="")
10>>>

Обычно, если end используется, то не в интерактивном режиме, а в скриптах, когда несколько выводов подряд надо разделить не переходом на новую строку, а, скажем, запятыми. Сам переход на новую строку обозначается комбинацией символов . Если присвоить это значение параметру end, то никаких изменений в работе функции print() вы не увидите, так как это значение и так присвоено по-умолчанию:

>>> print(10, end=’\n’)
10
>>>

Однако, если надо отступить на одну дополнительную строку после вывода, то можно сделать так:

>>> print(10, end='\n\n')
10
 
>>>

Следующее, что стоит рассказать о функции print() – это использование форматирования строк. На самом деле это никакого отношения к print() не имеет, а применяется к строкам. Но обычно используется именно в сочетании с функцией print().

Форматирование может выполняться в так называемом старом стиле или с помощью строкового метода format. Старый стиль также называют Си-стилем, так как он схож с тем, как происходит вывод на экран в языке C. Рассмотрим пример:

>>> pupil = "Ben"
>>> old = 16
>>> grade = 9.2
>>> print("It's %s, %d. Level: %f" % (pupil, old, grade))
It's Ben, 16. Level: 9.200000

Здесь вместо трех комбинаций символов , , подставляются значения переменных pupil, old, grade. Буквы s, d, f обозначают типы данных – строку, целое число, вещественное число. Если бы требовалось подставить три строки, то во всех случаях использовалось бы сочетание %s.

Хотя в качестве значения переменной grade было указано число 9.2, на экран оно вывелось с дополнительными нулями. Однако мы можем указать, сколько требуется знаков после запятой, записав перед буквой f точку с желаемым числом знаков в дробной части:

>>> print("It's %s, %d. Level: %.1f" % (pupil, old, grade))
It's Ben, 16. Level: 9.2

Теперь посмотрим на метод format():

>>> print("This is a {0}. It's {1}.".format("ball", "red"))
This is a ball. It's red.
>>> print("This is a {0}. It's {1}.".format("cat", "white"))
This is a cat. It's white.
>>> print("This is a {0}. It's {1} {2}.".format(1, "a", "number"))
This is a 1. It's a number.

В строке в фигурных скобках указаны номера данных, которые будут сюда подставлены. Далее к строке применяется метод format(). В его скобках указываются сами данные (можно использовать переменные). На нулевое место подставится первый аргумент метода format(), на место с номером 1 – второй и т. д.

На самом деле возможности метода format() существенно шире, и для их изучения понадобился бы отдельный урок. Нам пока будет достаточно этого.

Ссылка на основную публикацию