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

  • 2.1. Простое сообщение

  • 2.6. Знаменитая цитата 2

  • 2.7. Удаление пропусков

  • 2 + 3 5 >>> 3 - 2 1 >>> 2 * 3 6 >>> 3 / 2

  • 3 ** 2 9>>> 3 ** 3 27>>> 10 ** 6 1000000 44

  • 2 + 3*4 14>>> (2 + 3) * 4

  • 0.1 + 0.1 0.2>>> 0.2 + 0.2 0.4>>> 2 * 0.1 0.2>>> 2 * 0.2

  • 0.2 + 0.1 0.30000000000000004>>> 3 * 0.1

  • Изучаем Python Эрик Метиз. Crash course2 n d e d i t i o na h a n d s o n, p r o j e c t b a s e d i n t r o d u c t i o n t o p r o g r a m m i n g


    Скачать 6.19 Mb.
    НазваниеCrash course2 n d e d i t i o na h a n d s o n, p r o j e c t b a s e d i n t r o d u c t i o n t o p r o g r a m m i n g
    Дата22.09.2022
    Размер6.19 Mb.
    Формат файлаpdf
    Имя файлаИзучаем Python Эрик Метиз.pdf
    ТипДокументы
    #690181
    страница5 из 52
    1   2   3   4   5   6   7   8   9   ...   52
    ПРИМЕЧАНИЕ Как лучше всего освоить новые концепции программирования? По- пытайтесь использовать их в своей программе . Если в ходе работы над упражнением вы зайдете в тупик, попробуйте на какое-то время заняться чем-нибудь другим . Если это не поможет, перечитайте соответствующую часть этой главы . Если и это не помогло, обращайтесь к рекомендациям из приложения В .

    Строки 37
    УПРАЖНЕНИЯ
    Напишите отдельную программу для выполнения каждого из следующих упражнений.
    Сохраните каждую программу в файле, имя которого подчиняется стандартным правилам
    Python по использованию строчных букв и символов подчеркивания — например, simple_
    message .py и simple_messages .py
    2.1. Простое сообщение: сохраните текстовое сообщение в переменной и выведите его на экран.
    2.2. Простые сообщения: сохраните сообщение в переменной и выведите это сообщение.
    Затем замените значение переменной другим сообщением и выведите новое сообщение.
    Строки
    Так как многие программы определяют и собирают некие данные, а затем делают с ними что-то полезное, желательно выделить основные разновидности данных.
    Начнем со строковых данных. На первый взгляд строки достаточно просты, но с ними можно работать многими разными способами.
    Строка представляет собой простую последовательность символов. Любая по- следовательность символов, заключенная в кавычки, в Python считается строкой; при этом строки могут быть заключены как в одиночные, так и в двойные кавычки:
    "This is a string."
    'This is also a string.'
    Это правило позволяет использовать внутренние кавычки и апострофы в строках:
    'I told my friend, "Python is my favorite language!"'
    "The language 'Python' is named after Monty Python, not the snake."
    "One of Python's strengths is its diverse and supportive community."
    Рассмотрим некоторые типичные операции со строками.
    Изменение регистра символов в строках
    Одна из простейших операций, выполняемых со строками, — изменение регистра символов. Взгляните на следующий фрагмент кода и попробуйте определить, что в нем происходит:
    name.py
    name = "ada lovelace"
    print(name.title())
    Сохраните файл с именем name .py и запустите его. Вывод программы должен вы- глядеть так:
    Ada Lovelace

    38 Глава 2 • Переменные и простые типы данных
    В этом примере в переменной name сохраняется строка, состоящая из букв нижнего регистра "ada lovelace"
    . За именем переменной в команде print()
    следует вызов метода title()
    . Метод представляет собой действие, которое Python выполняет с данными. Точка (
    ) после name в конструкции name.title()
    приказывает Python применить метод title()
    к переменной name
    . За именем метода всегда следует пара круглых скобок, потому что методам для выполнения их работы часто требуется дополнительная информация. Эта информация указывается в скобках. Функции title()
    дополнительная информация не нужна, поэтому в круглых скобках ничего нет.
    Метод title()
    преобразует первый символ каждого слова в строке к верхнему регистру, тогда как все остальные символы выводятся в нижнем регистре. Напри- мер, данная возможность может быть полезна, если в вашей программе входные значения
    Ada
    ,
    ADA
    и ada должны рассматриваться как одно и то же имя и все они должны отображаться в виде
    Ada
    Для работы с регистром также существуют другие полезные методы. Например, все символы строки можно преобразовать к верхнему или нижнему регистру:
    name = "Ada Lovelace"
    print(name.upper())
    print(name.lower())
    Программа выводит следующий результат:
    ADA LOVELACE
    ada lovelace
    Метод lower()
    особенно полезен для хранения данных. Нередко программист не может рассчитывать на то, что пользователи введут все данные с точным соблю- дением регистра, поэтому строки перед сохранением преобразуются к нижнему регистру. Затем, когда потребуется вывести информацию, используется регистр, наиболее подходящий для каждой строки.
    Использование переменных в строках
    В некоторых ситуациях требуется использовать значения переменных внутри стро- ки. Представьте, что имя и фамилия хранятся в разных переменных и вы хотите объединить их для вывода полного имени:
    full_name.py
    first_name = "ada"
    last_name = "lovelace"

    full_name = f"{first_name} {last_name}"
    print(full_name)
    Чтобы вставить значение переменной в строку, поставьте букву f
    непосредственно перед открывающей кавычкой . Заключите имя (или имена) переменных, кото-


    Строки 39
    рые должны использоваться внутри строки, в фигурные скобки. Python заменит каждую переменную ее значением при выводе строки.
    Такие строки называются f-строками. Буква f происходит от слова «format», пото- му что Python форматирует строку, заменяя имена переменных в фигурных скобках их значениями. Приведенный код выводит следующий результат:
    ada lovelace
    С f-строками можно сделать много интересного. Например, с их помощью можно строить сложные сообщения с информацией, хранящейся в переменных. Рассмо- трим пример:
    first_name = "ada"
    last_name = "lovelace"
    full_name = f"{first_name} {last_name}"

    print(f"Hello, {full_name.title()}!")
    Полное имя используется в точке  для вывода приветственного сообщения, а метод title()
    обеспечивает правильное форматирование имени. Этот фрагмент возвращает простое, хорошо отформатированное сообщение:
    Hello, Ada Lovelace!
    F-строками также можно воспользоваться для построения сообщения, которое затем сохраняется в переменной:
    first_name = "ada"
    last_name = "lovelace"
    full_name = f"{first_name} {last_name}"

    message = f"Hello, {full_name.title()}!"

    print(message)
    Этот код также выводит сообщение «Hello, Ada Lovelace!», но сохранение текста со- общения в переменной  существенно упрощает завершающую команду печати .
    ПРИМЕЧАНИЕ F-строки впервые появились в Python 3 .6 . Если вы используете
    Python 3 .5 или более раннюю версию, используйте метод format() вместо синтаксиса f-строк . Чтобы использовать format(), перечислите переменные, которые должны ис- пользоваться, в строке, в круглых скобках после format . Каждая переменная обознача- ется парой фигурных скобок; эти позиции будут заполняться значениями, перечислен- ными в круглых скобках в указанном порядке:
    full_name = "{} {}".format(first_name, last_name)
    Табуляции и разрывы строк
    В программировании термином пропуск (whitespace) называются такие непеча- таемые символы, как пробелы, табуляции и символы конца строки. Пропуски структурируют текст, чтобы пользователю было удобнее читать его.
    Для включения в текст позиции табуляции используется комбинация символов
    \t
    , как в точке :

    40 Глава 2 • Переменные и простые типы данных
    >>> print("Python")
    Python

    >>> print("\tPython")
    Python
    Разрывы строк добавляются с помощью комбинации символов
    \n
    :
    >>> print("Languages:\nPython\nC\nJavaScript")
    Languages:
    Python
    C
    JavaScript
    Табуляции и разрывы строк могут сочетаться в тексте. Скажем, последовательность "\n\t"
    приказывает Python начать текст с новой строки, в начале которой распо- лагается табуляция. Следующий пример демонстрирует вывод одного сообщения с разбиением на четыре строки:
    >>> print("Languages:\n\tPython\n\tC\n\tJavaScript")
    Languages:
    Python
    C
    JavaScript
    Разрывы строк и табуляции часто встречаются в двух следующих главах, когда наши программы начнут выводить относительно длинный текст.
    Удаление пропусков
    Лишние пропуски могут вызвать путаницу в программах. Для программиста стро- ки 'python'
    и 'python '
    внешне неотличимы, но для программы это совершенно разные строки. Python видит лишний пробел в 'python '
    и считает, что он действи- тельно важен — до тех пор, пока вы не сообщите о противоположном.
    Обращайте внимание на пропуски, потому что в программах часто приходится сравнивать строки, чтобы проверить на совпадение их содержимое. Типичный при- мер — проверка имен пользователей при входе на сайт. Лишние пропуски могут создавать путаницу и в более простых ситуациях. К счастью, Python позволяет легко удалить лишние пропуски из данных, введенных пользователем.
    Python может искать лишние пропуски у левого и правого края строки. Чтобы убедиться в том, что у правого края (в конце) строки нет пропусков, вызовите метод rstrip()

    >>> favorite_language = 'python '

    >>> favorite_language
    'python '

    >>> favorite_language.rstrip()
    'python'

    >>> favorite_language
    'python '

    Строки 41
    Значение, хранящееся в переменной favorite_language в точке , содержит лиш- ние пропуски в конце строки. Когда вы приказываете Python вывести это значе- ние в терминальном сеансе, вы видите пробел в конце значения . Когда метод rstrip()
    работает с переменной favorite_language в точке , этот лишний пробел удаляется. Впрочем, удаление лишь временное — если снова запросить значение favorite_language
    , мы видим, что строка не отличается от исходной, включая лишний пропуск .
    Чтобы навсегда исключить пропуск из строки, следует записать усеченное значение обратно в переменную:
    >>> favorite_language = 'python '

    >>> favorite_language = favorite_language.rstrip()
    >>> favorite_language
    'python'
    Сначала пропуски удаляются в конце строки, а потом значение записывается в ис- ходную переменную . Операция изменения значения переменной с последующим его сохранением в исходной переменной часто выполняется в программировании.
    Так, значение переменной может изменяться в ходе выполнения программы или в ответ на действия пользователя.
    Пропуски также можно удалить у левого края (в начале) строки при помощи ме- тода lstrip()
    , а метод strip()
    удаляет пропуски с обоих концов:

    >>> favorite_language = ' python '

    >>> favorite_language.rstrip()
    ' python'

    >>> favorite_language.lstrip()
    'python '

    >>> favorite_language.strip()
    'python'
    В этом примере исходное значение содержит пропуски в начале и в конце . Затем пропуски удаляются у правого края , у левого края  и с обоих концов строки .
    Поэкспериментируйте с функциями удаления пропусков, это поможет вам осво- иться с работой со строками. На практике эти функции чаще всего применяются для «очистки» пользовательского ввода перед его сохранением в программе.
    Предотвращение синтаксических ошибок в строках
    Синтаксические ошибки встречаются в программах относительно регулярно.
    Синтаксическая ошибка происходит тогда, когда Python не распознает часть ва- шей программы как действительный код. Например, если заключить апостроф в одиночные кавычки, произойдет ошибка. Это происходит из-за того, что Python интерпретирует все символы от первой одиночной кавычки до апострофа как строку. После этого Python пытается интерпретировать остаток текста строки как код Python, что порождает ошибки.

    42 Глава 2 • Переменные и простые типы данных
    Разберемся, как же правильно использовать одиночные или двойные кавычки. Со- храните следующую программу в файле apostrophe .py и запустите ее:
    apostrophe.py
    message = "One of Python's strengths is its diverse community." print(message)
    Апостроф находится в строке, заключенной в двойные кавычки, так что у интер- претатора Python не возникает проблем с правильной интерпретацией следующей строки:
    One of Python's strengths is its diverse community.
    Однако при использовании одиночных кавычек Python не сможет определить, где должна заканчиваться строка:
    message = 'One of Python's strengths is its diverse community.'
    print(message)
    Программа выводит следующий результат:
    File "apostrophe.py", line 1 message = 'One of Python's strengths is its diverse community.'
    ^

    SyntaxError: invalid syntax
    Из выходных данных видно, что ошибка происходит в позиции  сразу же после второй одиночной кавычки. Эта синтаксическая ошибка указывает, что интерпрета- тор не распознает какую-то конструкцию как действительный код Python. Ошибки могут возникать по разным причинам; я буду выделять наиболее распространенные источники по мере того, как они будут встречаться нам. Синтаксические ошибки будут часто встречаться вам в то время, пока вы учитесь писать правильный код
    Python. Кроме того, ошибки этой категории также являются наиболее расплывча- тыми и неконкретными, поэтому их особенно трудно находить и исправлять. Если вы зайдете в тупик из-за особенно коварной ошибки, обращайтесь к рекомендациям в приложении В.
    ПРИМЕЧАНИЕ Функция цветового выделения синтаксиса ускоряет выявление неко- торых синтаксических ошибок прямо во время написания программы . Если вы увидите, что код Python выделяется как обычный текст (или обычный текст выделяется как код
    Python), скорее всего, в вашем файле где-то пропущена кавычка .
    УПРАЖНЕНИЯ
    Сохраните код каждого из следующих упражнений в отдельном файле с именем вида name_
    cases .py
    . Если у вас возникнут проблемы, сделайте перерыв или обратитесь к рекомендаци- ям в приложении В.
    2.3. Личное сообщение: сохраните имя пользователя в переменной и выведите сообщение, предназначенное для конкретного человека. Сообщение должно быть простым — напри- мер, «Hello Eric, would you like to learn some Python today?”.

    Числа 43
    2.4. Регистр символов в именах: сохраните имя пользователя в переменной и выведите его в нижнем регистре, в верхнем регистре и с капитализацией начальных букв каждого слова.
    2.5. Знаменитая цитата: найдите известное высказывание, которое вам понравилось. Вы- ведите текст цитаты с именем автора. Результат должен выглядеть примерно так (включая кавычки):
    Albert Einstein once said, "A person who never made
    a mistake never tried anything new."
    2.6. Знаменитая цитата 2: повторите упражнение 2.5, но на этот раз сохраните имя автора цитаты в переменной famous_person
    . Затем составьте сообщение и сохраните его в новой переменной с именем message. Выведите свое сообщение.
    2.7. Удаление пропусков: сохраните имя пользователя в переменной. Добавьте в начале и в конце имени несколько пропусков. Проследите за тем, чтобы каждая служебная после- довательность ,
    "\t"
    и "\n"
    , встречалась по крайней мере один раз.
    Выведите имя, чтобы были видны пропуски в начале и конце строки. Затем выведите его сно- ва с использованием каждой из функций удаления пропусков: lstrip()
    , rstrip()
    и strip()
    Числа
    Числа очень часто применяются в программировании для ведения счета в играх, представления данных в визуализациях, хранения информации в веб-приложениях и т. д. В Python числовые данные делятся на несколько категорий в соответствии со способом их использования. Для начала посмотрим, как Python работает с целыми числами, потому что с ними возникает меньше всего проблем.
    Целые числа
    В Python с целыми числами можно выполнять операции сложения (
    +
    ), вычита- ния (
    -
    ), умножения (
    *
    ) и деления(
    /
    ).
    >>> 2 + 3
    5
    >>> 3 - 2
    1
    >>> 2 * 3
    6
    >>> 3 / 2
    1.5
    В терминальном сеансе Python просто возвращает результат операции. Для пред- ставления операции возведения в степень в Python используется сдвоенный знак умножения:
    >>> 3 ** 2
    9
    >>> 3 ** 3
    27
    >>> 10 ** 6
    1000000

    44 Глава 2 • Переменные и простые типы данных
    В Python также существует определенный порядок операций, что позволяет ис- пользовать несколько операций в одном выражении. Круглые скобки использу- ются для изменения следования операций, чтобы выражение могло вычисляться в нужном порядке. Пример:
    >>> 2 + 3*4
    14
    >>> (2 + 3) * 4
    20
    Пробелы в этих примерах не влияют на то, как Python вычисляет выражения; они просто помогают быстрее найти приоритетные операции при чтении кода.
    Вещественные числа
    В Python числа, имеющие дробную часть, называются вещественными (или «чис- лами с плавающей точкой»). Обычно разработчик может просто пользоваться дробными значениями, не особенно задумываясь об их поведении. Просто введите нужные числа, а Python, скорее всего, сделает именно то, что вы от него хотите:
    >>> 0.1 + 0.1
    0.2
    >>> 0.2 + 0.2
    0.4
    >>> 2 * 0.1
    0.2
    >>> 2 * 0.2
    0.4
    Однако в некоторых ситуациях вдруг оказывается, что результат содержит неожи- данно большое количество разрядов в дробной части:
    >>> 0.2 + 0.1
    0.30000000000000004
    >>> 3 * 0.1
    0.30000000000000004
    Нечто подобное может произойти в любом языке; для беспокойства нет причин.
    Python пытается подобрать как можно более точное представление результата, что иногда бывает нелегко из-за особенностей внутреннего представления чисел в ком- пьютерах. Пока просто не обращайте внимания на «лишние» разряды; вы узнаете, как поступать в подобных ситуациях, когда эта проблема станет актуальной для вас в проектах части II.
    Целые и вещественные числа
    При делении двух любых чисел — даже если это целые числа, частным от деления которых является целое число, — вы всегда получаете вещественное число:

    Числа 45
    >>> 4/2
    2.0
    При смешении целого и вещественного числа в любой другой операции вы также получаете вещественное число:
    >>> 1 + 2.0
    3.0
    >>> 2 * 3.0
    6.0
    >>> 3.0 ** 2
    9.0
    Python по умолчанию использует вещественный тип для результата любой опера- ции, в которой задействовано вещественное число, даже если результат является целым числом.
    Символы подчеркивания в числах
    В записи целых чисел можно группировать цифры при помощи символов подчер- кивания, чтобы числа лучше читались:
    >>> universe_age = 14_000_000_000
    При выводе числа, определяемого с символами подчеркивания, Python выводит только цифры:
    >>> print(universe_age)
    14000000000
    Python игнорирует символы подчеркивания при хранении таких значений. Даже если цифры не группируются в тройках, это никак не повлияет на значение. С точ- ки зрения Python
    1000
    ничем не отличается от записи
    1_000
    , которая эквивалентна
    10_00
    . Этот вариант записи работает как для целых, так и для вещественных чисел, но он доступен только в Python 3.6 и выше.
    Множественное присваивание
    В одной строке программы можно присвоить значения сразу нескольким перемен- ным. Этот синтаксис сократит длину программы и упростит ее чтение; чаще всего он применяется при инициализации наборов чисел.
    Например, следующая строка инициализирует переменные x
    , y
    и z
    нулями:
    >>>
    1   2   3   4   5   6   7   8   9   ...   52


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