Главная страница
Навигация по странице:

  • Введение в программирование алгоритмов на Python 93

  • Работа с числовыми и логическими данными

  • Начала 94 Логические аргументы требуют булевых значений, названных так »

  • Таблица 4.1. Операторы присваивания Python Оператор Описание Пример

  • Введение в программирование алгоритмов на Python 95 Оператор Описание Пример

  • Таблица 4.2. Арифметические операторы Python Оператор Описание Пример

  • Таблица 4.3. Унарные операторы Python Оператор Описание Пример

  • Таблица 4.4. Побитовые операторы Python Оператор Описание Пример

  • Введение в программирование алгоритмов на Python 97 Оператор Описание Пример

  • Сравнение данных с помощью булевых выражений

  • Таблица 4.5. Реляционные операторы Python Оператор Описание Пример

  • Начала 98 Оператор Описание Пример

  • Таблица 4.6. Логические операторы Python Оператор Описание Пример

  • Введение в программирование алгоритмов на Python 99

  • Создание и использование строк

  • Введение в программирование алгоритмов на Python в этой глаВе Числовые и логические вычисления


    Скачать 1.22 Mb.
    НазваниеВведение в программирование алгоритмов на Python в этой глаВе Числовые и логические вычисления
    Дата04.12.2022
    Размер1.22 Mb.
    Формат файлаpdf
    Имя файлаalgoritmy-dlya-chaynikov-dialektika.pdf
    ТипГлава
    #828302
    страница1 из 3
      1   2   3


    Глава 4
    Введение
    в программирование
    алгоритмов на Python
    В этой глаВе…
    Числовые и логические вычисления
    »
    Работа со строками
    »
    Работа с датами
    »
    Упаковка кода с помощью функций
    »
    Принятие решений и повторение действий
    »
    Управление данными в памяти
    »
    Чтение данных в объекты хранения
    »
    Быстрый поиск данных с помощью словарей
    »
    Л
    юбой рецепт приготовления блюда является своего рода алгоритмом, по- тому что помогает приготовить вкусную еду с помощью ряда действий
    (и тем самым избавиться от голода). Можно разработать много способов создания последовательности шагов, которые решают задачу. Имеется множес­
    тво различных процедур и описаний, которые указывают последовательность шагов для решения поставленной задачи. Не всякая последовательность шагов
    03_Part01.indd 91 18.04.2018 17:25:29

    Часть I
    Начала
    92
    конкретна. Ряд шагов решения математической задачи может записываться с помощью математических обозначений, но многие люди считают их тайным языком, который мало кто может понять. Компьютерный язык может превра- тить этот тайный язык в конкретную форму инструкций на языке программи- рования с использованием английских слов, понятную куда большему количес­
    тву людей.
    Из главы 3, “Использование Python для работы с алгоритмами”, этой книги вы узнали, как установить на компьютер копию Python для работы с примера- ми из книги. Во всей этой книге Python используется для решения численных задач с использованием алгоритмов, которые можно выразить и с помощью математических формул. Здесь язык программирования используется для того, чтобы превратить эти необычные абстрактные символы в текст, понятный большему количеству людей, которые смогут использовать его для решения своих реальных задач.
    Прежде чем можно будет использовать Python для решения задач с помо- щью алгоритмов, следует по крайней мере узнать о работе Python и с Python.
    Эта глава не предназначена для того, чтобы сделать из вас эксперта по Python.
    Однако она предоставит вам достаточно информации, чтобы вы понимали смысл примеров кода с комментариями. Различные разделы помогут понять, как Python выполняет те или иные задачи. Например, знать, как Python работа- ет с различными видами данных, нужно для того, чтобы определить, что имен- но некоторый пример кода с ними делает. В первых трех разделах вы озна- комитесь с азами работы с числовыми, логическими, строковыми данными и данными, представляющими даты.
    Представьте себе поваренную или любую иную книгу, в которой шаги для выполнения различных задач представлены в виде одного длинного расска- за без каких­либо перерывов. Найти в такой книге конкретный рецепт (или описание некоторой процедуры) будет невозможно, и книга будет совершенно бесполезной. На самом деле никто и не попытался бы написать такую книгу.
    Поэтому в четвертом разделе главы рассматриваются функции, которые сродни отдельным рецептам в поваренной книге. Вы можете комбинировать функции при создании программы, как сочетали бы рецепты различных блюд для при- готовления обеда.
    В следующих четырех разделах рассматриваются способы управления данными, включая чтение, запись, изменение и удаление. Вам также нужно знать, как принимать решения и выполнять одни и те же наборы действий бо- лее одного раза. Данные представляют собой ресурс, так же, как мука, сахар и другие ингредиенты являются ресурсами, которые используются при рабо- те с рецептом. Различные виды данных требуют различных методов работы с ними, чтобы использовать их в приложении, решающем ту или иную задачу,
    03_Part01.indd 92 18.04.2018 17:25:29

    Глава 4
    Введение в программирование алгоритмов на Python
    93
    для которой предназначен рассматриваемый алгоритм. В этих разделах речь идет о способах работы с данными для решения задач.
    Работа с числовыми и логическими данными
    Работа с алгоритмами включает работу с данными различных видов, но большая часть работы предусматривает работу с числами. Кроме того, для принятия решений об использовании данных применяются логические значе- ния. Например, может потребоваться узнать, равны ли два числовых значения или одно из них больше другого. Python поддерживает как числовые, так и логичес кие значения.
    Любое число без дробной части является
    »
    целочисленным (integer) значением. Например, таким значением является число
    1. С дру- гой стороны,
    1.0 целочисленным не является, так как имеет дробную часть (пусть и нулевую). Целочисленные значения пред- ставимы типом данных int. На большинстве платформ значение типа int может хранить значения от ‑9 223 372 036 854 775 808 до
    9 223 372 036 854 775 807 (предельные значения, которые могут хра- ниться в 65-битной переменной).
    Любые числа, включающие десятичную дробную часть, являют-
    »
    ся значениями с плавающей точкой. Например, число
    1.0 имеет дробную часть, а потому является значением с плавающей точ- кой. Многие путают целые числа и числа с плавающей точкой, но простейшую разницу между ними легко запомнить: если вы ви- дите в числе десятичную точку, значит, это значение с плаваю- щей точкой. Python хранит значения с плавающей точкой в пере- менных с типом данных float. На большинстве платформ мак- симальное значение, которое может содержаться в такой пере- менной, равно
    ±1.7976931348623157×10 308
    , а минимальное значение, которое может содержаться в такой переменной, равно
    ±2.2250738585072014×10
    ‑308
    Комплексное число
    »
    состоит из пары чисел — действительной и мнимой частей. Если вы совершенно забыли или и вовсе не зна- ли, что такое комплексные числа, можете почитать о них по адресу http://go.dialektika.com/alg04_01. Мнимая часть комплекс- ного числа всегда указывается с помощью символа j после нее.
    Так что комплексное число с действительной частью 3 и мнимой частью 4 можно присвоить с помощью выражения наподобие myComplex
    =
    3+4j.
    03_Part01.indd 93 18.04.2018 17:25:30

    Часть I
    Начала
    94
    Логические аргументы требуют булевых значений, названных так
    »
    в честь Джорджа Буля (George Bool). Для использования булевых значений в Python имеется тип bool. Переменная этого типа может содержать только два значения:
    True и False. Можно присвоить булевой переменной значение, используя ключевые слова
    True и
    False, а можно создать выражение, которое определяет истинную или ложную логическую концепцию. Например, можно написать myBool
    =
    1>2, что равносильно присваиванию значения False, по- тому что 1, определенно, не превышает 2.
    Теперь, когда вы познакомились с азами, пришло время увидеть типы дан- ных в действии. Ниже вы найдете краткий обзор о работе с числовыми и логи- ческими данными в Python.
    Присваивание переменных
    Работая с приложениями, вы храните информацию в переменных. Перемен- ная — это своего рода коробка для хранения. Всякий раз, планируя работу с ин- формацией, вы обращаетесь к ней с помощью переменной. Если у вас есть новая информация, которую вы хотите сохранить, вы помещаете ее в переменную. Из- менение информации означает доступ к переменной с последующим сохранени- ем нового значения в той же переменной. Так же, как в реальном мире вы храните вещи в коробках, при работе с приложениями вы храните информацию в пере- менных (своего рода ящиках для хранения). Для сохранения данных в перемен- ной они присваиваются с помощью любого из множества операторов присваива-
    ния (специальных символов, которые указывают, как следует сохранять данные).
    В табл. 4.1 показаны поддерживаемые Python операторы присваивания.
    Таблица 4.1. Операторы присваивания Python
    Оператор Описание
    Пример
    =
    Присваивает значение правого операнда левому
    MyVar = 5 сохраняет в
    MyVar значение 5
    +=
    Добавляет значение правого операнда к значению левого и помещает результат в левый операнд
    MyVar += 2 сохраняет в
    MyVar значение 7
    ‑=
    Вычитает значение правого операнда из значения левого и помещает результат в левый операнд
    MyVar ‑= 2 сохраняет в
    MyVar значение 3
    *=
    Умножает значение правого операнда на значение левого и помещает результат в левый операнд
    MyVar *= 2 сохраняет в
    MyVar значение 10 03_Part01.indd 94 18.04.2018 17:25:30

    Глава 4
    Введение в программирование алгоритмов на Python
    95
    Оператор Описание
    Пример
    /=
    Делит значение левого операнда на значение правого и помещает результат в левый операнд
    MyVar /= 2 сохраняет в
    MyVar значение 2,5
    %=
    Делит значение левого операнда на значение правого и помещает остаток от деления в левый операнд
    MyVar %= 2 сохраняет в
    MyVar значение 1
    **=
    Возводит значение левого операнда в степень, указанную значением правого операнда, и помещает результат в левый операнд
    MyVar **= 2 сохраняет в
    MyVar значение 25
    //=
    Делит значение левого операнда на значение правого и помещает целую часть результата деления в левый операнд
    MyVar //= 2 сохраняет в
    MyVar значение 2
    Арифметические действия
    Сохранение информации в переменных делает ее легко доступной. Однако, чтобы от информации была какая­то польза, над ней обычно выполняют не- которые действия, чаще всего — арифметические операции. Python поддер- живает распространенные арифметические операторы, используемые и при решении задач вручную. Они показаны в табл. 4.2.
    Таблица 4.2. Арифметические операторы Python
    Оператор Описание
    Пример
    +
    Суммирует два значения
    5 + 2 = 7

    Вычитает правый операнд из левого
    5 – 2 = 3
    *
    Умножает правый операнд на левый
    5 * 2 = 10
    /
    Делит левый операнд на правый
    5 / 2 = 2.5
    %
    Делит левый операнд на правый и возвращает остаток
    5 % 2 = 1
    **
    Вычисляет значение левого операнда, возведенное в степень, указываемую значением правого операнда
    5 ** 2 = 25
    //
    Делит левый операнд на правый нацело, т.е. возвращает только целую часть результата
    5 // 2 = 2
    Окончание табл. 4.1
    03_Part01.indd 95 18.04.2018 17:25:30

    Часть I
    Начала
    96
    Иногда требуется выполнять действия с одной переменной — для этого
    Python поддерживает несколько унарных операторов, показанных в табл. 4.3.
    Таблица 4.3. Унарные операторы Python
    Оператор Описание
    Пример


    Инвертирует биты числа, так что бит 0 становится битом 1, и наоборот
    4 дает –5

    Меняет знак числа, так что положительное значение становится отрицательным, и наоборот
    –(–4) дает 4;
    –4 дает –4
    +
    Предоставляется исключительно для полноты; дает значение, совпадающее с исходным
    +4 дает 4
    Компьютеры могут выполнять и другие виды математических вычислений, связанные с тем, как работает процессор. Важно помнить, что компьютеры хранят данные в виде ряда отдельных битов. Python позволяет получить до- ступ к этим отдельным битам с помощью побитовых операторов, показанных в табл. 4.4.
    Таблица 4.4. Побитовые операторы Python
    Оператор
    Описание
    Пример
    & (И)
    Проверяет, имеют ли соответствующие биты в обоих операндах значения true, и, если имеют, соответствующий бит результата тоже получает значение true, в противном случае — false
    0b1100&0b0110 = 0b0100
    | (ИЛИ)
    Проверяет, имеют ли соответствующие биты в обоих операндах значения false, и, если имеют, соответствующий бит результата тоже получает значение false, в противном случае — true
    0b1100|0b0110 = 0b1110
    ^
    (Исключающее
    ИЛИ)
    Проверяет, имеют ли соответствующие биты в обоих операндах разные значения, и, если имеют, соответствующий бит результата получает значение true, в противном случае — false
    0b1100^0b0110 = 0b1010 03_Part01.indd 96 18.04.2018 17:25:30

    Глава 4
    Введение в программирование алгоритмов на Python
    97
    Оператор
    Описание
    Пример

    (Дополнение до 1)
    Вычисляет значение, являющееся дополнением данного значения до единицы
    0b1100 = –0b1101
    0b0110 = –0b0111
    <<
    (Сдвиг влево)
    Сдвигает биты левого операнда влево на количество позиций, указанное правым операндом.
    Все новые биты — нулевые; биты, выходящие за пределы представления числа, теряются
    0b00110011<<2 =
    0b11001100
    >> (Сдвиг вправо) Сдвигает биты левого операнда вправо на количество позиций, указанное правым операндом.
    Все новые биты — нулевые; биты, выходящие за пределы представления числа, теряются
    0b00110011>>2 =
    0b00001100
    Сравнение данных с помощью булевых выражений
    Использование арифметических операций для изменения содержимого пе- ременных является одним из видов манипуляции данными. Чтобы определить результат такой манипуляции, компьютер должен сравнить текущее состояние переменной с ее первоначальным состоянием или с заранее известным значе- нием. В некоторых случаях необходимо сопоставление одних входных данных с другими. Все эти операции проверяют отношения между двумя переменны- ми, поэтому такие операторы (показанные в табл. 4.5) называются реляцион- ными или операторами отношения.
    Таблица 4.5. Реляционные операторы Python
    Оператор Описание
    Пример
    ==
    Определяет, равны ли два значения.
    Обратите внимание, что данный оператор использует два знака равенства.
    Часто допускаемая ошибка состоит в использовании только одного знака равенства, что приводит к присваиванию значения переменной
    1 == 2 равно False
    !=
    Определяет, различаются ли два значения.
    В некоторых старых версиях Python нужно использовать оператор
    <> вместо !=.
    В текущей версии применение оператора
    <> является ошибкой
    1 != 2 равно True
    Окончание табл. 4.4
    03_Part01.indd 97 18.04.2018 17:25:31

    Часть I
    Начала
    98
    Оператор Описание
    Пример
    >
    Проверяет, является ли значение левого операнда больше значения правого
    1 > 2 равно False
    <
    Проверяет, является ли значение левого операнда меньше значения правого
    1 < 2 равно True
    >=
    Проверяет, является ли значение левого операнда больше или равно значению правого
    1 >= 2 равно False
    <=
    Проверяет, является ли значение левого операнда меньше или равно значению правого
    1 <= 2 равно True
    Иногда одного реляционного оператора недостаточно для выполнения требуемого сравнения. Например, может потребоваться проверить усло- вие, в котором необходимы два отдельных сравнения, например
    MyAge>40
    и
    MyHeight<174
    . Необходимость сравнений из нескольких условий требует при- менения логичес ких операторов, показанных в табл. 4.6.
    Таблица 4.6. Логические операторы Python
    Оператор Описание
    Пример
    and
    Определяет, истинны ли одновременно оба операнда
    True and True == True
    True and False == False
    False and True == False
    False and False == False or
    Определяет, истинен ли хотя бы один операнд
    True or True == True
    True or False == True
    False or True == True
    False or False == False not
    Обращает истинность операнда — значение
    True становится значением
    False, и наоборот not True == False not False = True
    Компьютеры упорядочивают сравнения, делая одни операторы более важ- ными, чем другие. Упорядочение операторов определяется приоритетами опе-
    раторов. В табл. 4.7 показаны приоритеты всех распространенных операторов
    Python, включая и такие, с которыми вы еще не сталкивались. При выполнении сравнений всегда учитывайте приоритет операторов, потому что в противном
    Окончание табл. 4.5
    03_Part01.indd 98 18.04.2018 17:25:31

    Глава 4
    Введение в программирование алгоритмов на Python
    99
    случае предположения, которые вы делаете о результатах сравнения, скорее всего, будут неправильными.
    Таблица 4.7. Приоритеты операторов в Python
    Оператор
    Описание
    ()
    Используйте скобки для группирования выражений и переопределения приоритета по умолчанию. Так вы можете заставить операцию с более низким приоритетом
    (например, сложение) иметь приоритет перед операцией с более высоким приоритетом (например, умножением)
    **
    Возведение левого операнда в степень, определяемую правым операндом
    + ‑
    Унарные операторы взаимодействуют с единственным значением или выражением
    * / % //
    Умножение, деление, остаток при делении, деление нацело
    + ‑
    Сложение и вычитание
    >> <<
    Побитовые сдвиги вправо и влево
    &
    Побитовое И
    ^ |
    Побитовые исключающее и стандартное ИЛИ
    <= < > >=
    Операторы сравнения
    == !=
    Операторы равенства
    = %= /= //= ‑=
    += *= **=
    Операторы присваивания is is not
    Операторы тождества in not in
    Операторы членства not or and
    Логические операторы
    Создание и использование строк
    Среди всех типов данных строки являются наиболее понятными для людей
    (и непонятными для компьютеров). Строка — это просто группа символов, заключенная в двойные кавычки. Например, выражение myString
    =
    "Python is a great language."
    выполняет присваивание строки переменной myString
    03_Part01.indd 99 18.04.2018 17:25:31

    Часть I
    Начала
    100
    Основная причина использования строк при работе с алгоритма- ми — обеспечение взаимодействия с пользователем, например, для запросов входных данных или для облегчения понимания выво- димых данных. В рамках работы с алгоритмами можно также вы- полнить анализ строковых данных, но фактически компьютер не требует использования строк в качестве части последовательности шагов для решения задачи. На самом деле компьютер вообще не видит букв. Каждая используемая буква представляет собой число в памяти. Например, буква
    A
    — это в действительности число 65.
    Чтобы убедиться в этом, введите
    ord("A")
    в приглашении Python и нажмите клавишу . Вы увидите выведенное число 65. Вы можете преобразовать любую букву в ее числовой эквивалент, ис- пользуя команду ord()
      1   2   3


    написать администратору сайта