операторы присваивания;
Операторы назначения хранят значение в объекте, заданном левым операндом. Существует два типа операций назначения:
- простое назначение, в котором значение второго операнда хранится в объекте, указанном первым операндом.
- составное назначение, в котором выполняется арифметическая, смена или побитовая операция перед сохранением результата.
Все операторы назначения в следующей таблице, кроме = оператора, являются составным оператором назначения.
Таблица операторов назначения
| Оператор | Значение |
|---|---|
| = | Сохранение значения второго операнда в объект, указанный первым операндом (простое присваивание). |
| *= | Умножение значения первого операнда на значение второго операнда; сохранение результата в объект, указанный первым операндом. |
| /= | Деление значения первого операнда на значение второго операнда; сохранение результата в объект, указанный первым операндом. |
| %= | деление по модулю первого операнда на значение второго операнда; сохранение результата в объект, указанный первым операндом. |
| += | Сложение значения первого операнда со значением второго операнда; сохранение результата в объект, указанный первым операндом. |
| -= | Вычитание значения второго операнда из значения первого операнда; сохранение результата в объект, указанный первым операндом. |
| Сдвиг значения первого операнда влево на количество битов, заданное значением второго операнда; сохранение результата в объект, указанный первым операндом. | |
| >>= | Сдвиг значения первого операнда вправо на количество битов, заданное значением второго операнда; сохранение результата в объект, указанный первым операндом. |
| &= | Выполнение операции побитового И для значений первого и второго операндов; сохранение результата в объект, указанный первым операндом. |
| ^= | Выполнение операции побитового исключающего ИЛИ для значений первого и второго операндов; сохранение результата в объект, указанный первым операндом. |
| |= | Выполнение операции побитового включающего ИЛИ для значений первого и второго операндов; сохранение результата в объект, указанный первым операндом. |
Операторы ключевое слово
Три из операторов составного назначения имеют ключевое слово эквиваленты. К ним относятся:
| Оператор | Эквивалентный |
|---|---|
| &= | and_eq |
| |= | or_eq |
| ^= | xor_eq |
C++ указывает эти операторы ключевое слово в качестве альтернативных орфографии для операторов составного назначения. В C альтернативные орфографии предоставляются в виде макросов в заголовке . В C++альтернативные орфографии являются ключевое слово; использование или эквивалентное
Пример
// expre_Assignment_Operators.cpp // compile with: /EHsc // Demonstrate assignment operators #include using namespace std; int main() < int a = 3, b = 6, c = 10, d = 0xAAAA, e = 0x5555; a += b; // a is 9 b %= a; // b is 6 c >>= 1; // c is 5 d |= e; // Bitwise--d is 0xFFFF cout >= 1 yields "
Простое присваивание
Простой оператор присваивания ( = ) приводит к тому, что значение второго операнда хранится в объекте, указанном первым операндом. Если оба объекта имеют арифметические типы, правый операнд преобразуется в тип слева перед сохранением значения.
const Объекты и volatile типы могут быть назначены только l-значениям типов, которые являются только volatile или не const являются. volatile
Назначение объектам типа класса ( struct , union и class типов) выполняется функцией с именем operator= . По умолчанию эта функция-оператор производит побитовое копирование; однако такое поведение можно изменить с помощью перегруженных операторов. Для получения дополнительной информации см. раздел Перегрузка операторов. Типы классов также могут иметь операторы назначения копирования и перемещения. Дополнительные сведения см. в разделе «Копирование конструкторов» и операторовназначения копирования, а также конструкторов перемещения и операторов назначения перемещения.
Объект любого класса, однозначно производного от некоторого базового класса, можно присвоить объекту этого базового класса. Обратный параметр не имеет значения true, так как существует неявное преобразование из производного класса в базовый класс, но не из базового класса в производный класс. Например:
// expre_SimpleAssignment.cpp // compile with: /EHsc #include using namespace std; class ABase < public: ABase() < cout >; class ADerived : public ABase < public: ADerived() < cout >; int main() < ABase aBase; ADerived aDerived; aBase = aDerived; // OK aDerived = aBase; // C2679 >
Присваивание ссылочным типам выполняется так, как если бы выполнялось присваивание объекту, на который указывает ссылка.
Для объектов типа класса присваивание отличается от инициализации. Для иллюстрации того, насколько сильно присваивание может отличаться от инициализации, рассмотрим код
UserType1 A; UserType2 B = A;
В предыдущем коде показан инициализатор; он вызывает конструктор для типа UserType2 , который принимает аргумент типа UserType1 . В коде
UserType1 A; UserType2 B; B = A;
B = A;
может вызывать одно из указанных ниже действий.
- Вызов функции operator= для UserType2 operator= предоставленного аргумента UserType1 .
- Вызывать функцию явного преобразования UserType1::operator UserType2 , если такая функция существует.
- Вызывать конструктор UserType2::UserType2 , если он существует, принимает аргумент UserType1 и копирует результат.
Составное присваивание
Операторы составного назначения отображаются в таблице операторов назначения. Эти операторы имеют форму e1 op= e2, где e1 является const неизменяемым l-value и e2:
Форма e1op= e2 ведет себя как e1 e1 = ope2, но e1 вычисляется только один раз.
Составное присваивание перечисляемому типу создает сообщение об ошибке. Если левый операнд имеет тип указателя, правый операнд должен иметь тип указателя, или должно быть константным выражением, которое оценивается в 0. Если левый операнд имеет целочисленный тип, правый операнд не должен иметь тип указателя.
Результат операторов присваивания
Операторы присваивания возвращают значение объекта, указанного левым операндом после присваивания. Результирующий тип — это тип левого операнда. Результатом выражения присваивания всегда является l-значение. Эти операторы имеют ассоциативность справа налево. Левый операнд должен быть изменяемым l-значением.
В ANSI C результат выражения назначения не является l-значением. Это означает, что юридическое выражение (a += b) += c C++ не допускается в C.
Ввод-вывод данных, Python
Внимание! Все тесты в этом разделе разработаны пользователями сайта для собственного использования. Администрация сайта не проверяет возможные ошибки, которые могут встретиться в тестах.
тест выполняется после прохождения темы «Ввод-вывод данных» на языке Python.
Система оценки: 5* балльная
Список вопросов теста
Вопрос 1
Оператор вывода в языке Phyton3:
Варианты ответов
- float ()
- print ()
- int ()
- input ()
Вопрос 2
s = int (input ())
Варианты ответов
- значение переменной s сравнивается со значением, введенным с клавиатуры
- переменной s присваивается целочисленное значение, введённое с клавиатуры
- переменной s присваивается дробное значение, введённое с клавиатуры
- значение переменной s выводится на экран
Вопрос 3
Чтобы ввести с клавиатуры дробное число, используется конструкция
Варианты ответов
- n = input (‘Введите число ’)
- print (‘Введите число ’, c)
- u = int (input (‘Введите число ’))
- k = float (input (‘Введите число ’))
Вопрос 4
Что будет выведено на экран в результате выполнения инструкции print (2, ‘a’, 8, sep = ‘,’)?
Варианты ответов
- 2, a, 8
- 2,a,8
- 2, a,8
- 2, ‘a’, 8, sep = ‘, ‘
- 2,a, 8
Вопрос 5
Что будет выведено на экран в результате выполнения инструкции print (2, ‘a’, 8)?
Варианты ответов
Вопрос 6
Данные какого типа возвращает функция input ()?
Варианты ответов
Вопрос 7
Каков будет вывод данной программы, если на вход последовательно через перевод строки подать 5, 1, 3 и 4?
a = input() b = input() c = int(input()) d = int(input()) print(a + b, c + d)
Варианты ответов
Вопрос 8
Какие из операторов присваивания корректны? Выберите все допустимые варианты.
Варианты ответов
- summa2 = summa + summa5
- е = 7
- 6 = 2 + 4
- 2summa = summa + summa5
- sum2ma = summa + summa5
- x + y = a
- a = x + y
- a = 4 + 4
- a% = 5
Переменные в Python для начинающих
Любая программы состоит из набора команд и данных. Так вот, чтобы хранить данные, в любом языке программирования, и Python не исключение, есть такое понятие как переменные.
Переменная это не что иное, как имя, с помощью которого можно обратиться к данным, сохраненным в памяти компьютера. Другими словами, переменная — это именованная область памяти. Чтобы создать переменную и назначить ей значение используется оператор присваивания. Вот несколько примеров того, как создается, или, как говорят программисты, «объявляется» переменная
first = "синий"second = 23
Синтаксис «объявления» прост: достаточно написать имя переменной, знак «=» и значение переменной. У разных переменных могут быть разные типы данных. В нашем примере переменная first является строкой, а переменная second — числом. В Python, кроме строк и чисел, есть и другие типы данных. Если вы начинающий программист и не знаете, что такое типы данных, не переживайте, об этом будет рассказано чуть позже.
Самое простое, что можно сделать с переменной, это вывести на экран ее значение.
first = "синий"second = 23print(first, second)
Попробуйте запустить такую программу и посмотрите, что она выведет на экран.
Имена переменных ¶
Следует придерживаться нескольких несложных правил при выборе имен переменных:
- Имя переменной может содержать только латинские буквы, числа и символ нижнего подчеркивания;
- Имя переменной не должно содержать пробелов;
- Имя переменной не должно начинаться с цифры;
- Регистр важен: var и Var это разные переменные.
Называя переменные помните, что имена переменных не должны совпадать с ключевыми словами и наименованиями встроенных функций . Их использование в языке Python предназначено для других целей, которые нам с вами предстоит узнать позже и называть так переменные нельзя.
Python с нуля. Освойте с Виртуальным ИИ-помощником!
Ввод и вывод данных в языке Pyton
Внимание! Все тесты в этом разделе разработаны пользователями сайта для собственного использования. Администрация сайта не проверяет возможные ошибки, которые могут встретиться в тестах.
Ввод и вывод данных в языке Pyton оценка 3 — от 50% оценка 4 — от 70% оценка 5 — от 85%
Система оценки: 5* балльная
Список вопросов теста
Вопрос 1
Какие из операторов присваивания корректны? Выберите все допустимые варианты.
Варианты ответов
- 6 = 2+4
- e = 7
- 2summa = summa — min5
- su2ma = summa — min5
- х+ н = в
- a% = 5
- suma2 = summa — min5
- a = 7 — 7
Вопрос 2
Каков будет вывод данной программы, если на вход последовательно через перевод строки подать 5, 1, 3 и 4?
a = input() b = input() c = int(input()) d = int(input()) print(a + b, c + d)
Варианты ответов
Вопрос 3
Что будет выведено на экран в результате выполнения инструкции print(».format (3.1446))? При записи ответа вместо пробелов используйте нижние подчёркивания.
Вопрос 4
Что будет выведено на экран в результате выполнения инструкции print (2, ‘a’, 8)?
Варианты ответов
Вопрос 5
Данные какого типа по умолчанию испольуются при применении функция input ()?
Варианты ответов
- строковый
- логический
- целочисленный
- вещетвенный
Вопрос 6
Чтобы ввести с клавиатуры дробное число, используется конструкция
Варианты ответов
- n = float (input ())
- u = int (input())
- n = input ()
- print (‘Введите число’,c)
Вопрос 7
s = int (input ())
Варианты ответов
- значение переменной s выводится на экран
- переменной s присваивается целочисленное значение, введённое с клавиатуры
- переменной s присваивается дробное значение, введённое с клавиатуры
- значение s сравнивается со значением, введенным с клавиатуры
Вопрос 8
Что будет выведено на экран в результате выполнения инструкции print(».format (7))? При записи ответа вместо пробелов используйте нижние подчёркивания.
Вопрос 9
Что будет выведено на экран в результате выполнения инструкции print (4, ‘с’, 6, sep = ‘,’)?
Варианты ответов
- 4,c,6
- 4, c,6
- 4, ‘с’, 8 sep=’,’
- 4,c, 6
- 4, c, 6
Вопрос 10
Оператор вывода в языке Phyton3:
Варианты ответов
- int()
- print()
- float()
- input()