Ввод, вывод, имена объектов и решение домашних заданий
(Есть подходящее по теме Занятие в pythontutor)
Повтор:
Интерпретация командной строки в Python REPL
- Интерпретация файла со сценарием-программой
- Редактор и цикл редактирование - запуск
Вывод
- Понятие о времени жизни объектов
- Пример: вычисление арифметического выражения
- Вывод «объекта-результата» в REPL и игнорирование его в сценарии
⇒ Функция print(…)
- Запятые между выражениями-параметрами
Имена объектов
- Идентификатор
Последовательность букв, цифр и символов «_», начинающаяся не с цифры
- Большие и маленькие буквы различаются
- Может быть многосимвольным
- Может содержать буквы в текущей кодировке (например, русские))
: a, aSDf, x_0, asd_345_ASD__, ____, O0O0O0O0, _0 и т. п.
: 0O, A₁, ☺, A-B-C
Операция именования:
- Операция именования, доступ к объекту посредством имени
- Формальное отличие от операции присваивания в других ЯП
- Связывание объекта именем
Функция dir()
- Связывание объекта несколькими именами
функция id()
Удаление имени del
- ≠ удаление объекта
Использование модуля math
Встроенные функции, например, abs()
- Связывание объекта, которые изготовила функция
- Немного про функции
from math import sin и вызов функции sin
from math import * и dir()
Вариант: import math и math.sin() и т. п.
Повторение: ∄ вещественных числе, только модели, nextafter()
Алгоритмический разбор формулы
Записанный на ЯП алгоритм в случае формулы совсем не последовательный
- Упражнение по превращении формулы в последовательность операций
Например, формула $$(bx+c)/(ay)$$ может быть представлена в виде
1 res = (b*x+c)/(a*y)
Упражнение состоит в раскрытии скобок и превращении каждой операции вычисления в атомарную. Возможный пример:
Обратите внимание на повторное использование res и дополнительного имени res2 для хранения промежуточных результатов
TODO на следующий раз: «+=» и ему подобные
Ввод
Функция input(), возвращающая строку
- Пример с выводом строки
- Почему это именно строка
Функции int() и float() (для любителей — и complex())
Система счисления — необязательный второй параметр int()
Связывание результата input() (это просто функция, разницы нет)
- Суперпозиция функций
Д/З
EJudge: HelloWorld 'Hello World!'
Написать программу, которая выводит строку Hello, world (в точности)
(ввод не нужен)
Hello, world
EJudge: ThreeSum 'Сумма трёх чисел'
Ввести три вещественных числа по одному в строке. Вывести их сумму.
1 2.2 3.7e-3
3.2037
EJudge: CalcDiscr 'Квадратное неуравнение'
Ввести a, b, c и x, по одному вещественному числу в строке, и вывести результат $$ax^2+bx+c$$
1 2.2 3 4
27.8
EJudge: CalcTrigonometry 'Вычислить формулу'
Ввести x, вычислить формулу и вывести результат:
$$ x ln x-1/(12x^2+17 sin x+5) $$
1.234
0.23402832649377744
EJudge: AthomizeFormula 'Раскрыть скобки'
Ввести переменную x, вычислить формулу, и вывести результат.
Обязательное условие: на каждую операцию связывания ("=") должно приходиться не более одной арифметической операции или один вызов функции (см пример в лекиии)
$$ |x^2-x^3|-(7x)/(x^3-15x) $$
-1.23
3.8927814656746076