Понятие управляемого вычислителя

  1. (0) Введение, усушка, утруска

  2. (5) Понятие командной строки (команда → интерпретация → выполнение → диагностика →)

  3. (10) Консольная командная строка

    • Подсказки (>>>, ...)

    • Примеры:
      1. Что-то бессмысленное blablabla, +-;

      2. Число 123, 5e5;

      3. Строка "blablabla";

      4. Команда, которая началась и не закончилась if 1:, '''bla (нужно ^C);

      5. Случайно возникшая арифметическая операция 7*8.

  4. (15) «Калькулятор»

    • Целые числа 123, -7;

    • Вещественные числа 0.1, .00001, 456.;

    • Арифметические операции 2+3, 2+3.0, 2*3, 2-3, 3/2, 3//2, 3**4, 27%4, 36**0.5;

    • Скобки и старшинство операций (возведение в степень, умножение/деление/остаток от деления, сложение/вычитание) 3*(2+1), 3*2+1, 2*3**4, (2*3)**4, 2**3**4, 2**(3**4), (2**3)**4;

    • Длинные целые 123566789876543212345567788909876543212345678*1234567890987654321234567890987, 12345**12345

    • Точность вещественных чисел:
      • Представимы только рациональные числа (целочисленные дроби)
      • Стандартный тип float и того хуже (не может быть бесконечным, например, 1/3 — это 0.33333333…, и вот это должно где-то кончиться)

      • 1.1+2.2, 1.123455678898766544321

  5. (25) Строки и простейшие операции над ними (сложение и умножение на число)

    • "wer". 'sadf'+'|'+'QWE', "QQ! "*4

  6. (30) Типы объектов (пока знаем целые, вещественные, строки и функции), функция type()

    • type(объект каждого типа): type(324), type(2.234), type("DFTG"), type(type)

    • отличие '1234' от 1234

  7. (35) Использование функций

    • преобразование типов int(), float(), str()

      • int(123.876), float(1), str(123), int("123"), int("asdfgt"), int("2134.123"), float("2134.123")

    • (некоторые) стандартные abs(), max(), round(), bin(), hex() …)

      • abs(-234), max(23,78). max(23,78.345,-4,7.234,3,7), max(1,"2",3), round(123.876) (ср. int(123.876))

      • тип bin() и hex()строковый: bin(9), bin(77), bin(127) (попробуйте сразу сказать, сколько), hex(12), hex(48), hex(3735928559)

  8. (45) Использование (некоторых) математических функций с помощью from math import *

    • pi, e :)

    • sqrt() (квадратный корень), exp() (e в степени)

    • sin(), cos(), tan() (в радианах!)

      • sin(pi/2), sin(pi//2) (в чём разница?), cos(0), cos(pi/4), sqrt(2)/2 (или 2**(1/2)/2), tan(pi/4)

    • factorial(), log(), log(a, основание), …

      • factorial(6), factorial(100) (откуда столько 0 в конце?), log(e*e*e), log(4096,4), log(111,10)

  9. (55) Тип bool, операции сравнения

    • True и False

    • обычные <, >, <=, >=, !=, ==

      • 2 < 5, 345 == 345.0, 234 != 234, 76.333 >= 123

    • многоместные вида a < b < c < d (это a<b and b<c and c<d, т. е. выполнение всех сравнений одновременно)

      • 34 == 34 == 34, 4 < 6 < 8, 22 >= 11 >= 11, 1 < 2 < 3 < 1 < 5 < 6

      • как работает 1 != 2 != 1 ?

  10. (65) лексикографическое (поэлементное) сравнение строк:

    1. Начинаем с нулевых элементов обеих строк
    2. Если элемент первой строки больше (меньше) элемента второй (стоит раньше в алфавите), первая строка больше (меньше) второй, готово

    3. Если одна из строк закончилась, она меньше, готово

    4. Если обе строки закончились, они равны, готово

    5. Берём следующие элементы строк, и повторяем с п. 1
      • "qwe" == "qwe", "asdfg" < "asdfgaaaa", "qwe" > "asdasdasd", (большие буквы неожиданно меньше маленьких) "QWE"<"qwe

  11. (70) Создание объектов при вычислении выражения

    • константа — создание объекта
    • атомарное выражение — создание объекта
    • удаление ненужных объектов
    • командная строка: вывод последнего
    • примеры (сколько объектов было создано): 5 (1), 5+3 (3), sin(pi/3) (3: pi было, 3 — 1, pi/3 — 2, sin(pi/3) — 3)

  12. (80) последовательные вычисления в командной строке с ручным копированием промежуточных результатов

    • 123+34*24 — это 34*24 и 123+816

    • sin(pi/4)**2 — это pi/4, sin(0.7853981633974483) и 0.7071067811865475**2

    • sqrt(abs(cos((1.23+0.345)*2)))+1 — это 1.23+0.345, 1.575*2, cos(3.15), abs(-0.999964658471342), sqrt(0.999964658471342)

Д/З

Python/PsyPython2018/01_Calc (last edited 2018-10-01 22:18:34 by FrBrGeorge)