{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Тема №1 Переменные и простые типы данных" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Hello Python world!\n" ] } ], "source": [ "print(\"Hello Python world!\") " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Переменные" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Hello Python world!\n" ] } ], "source": [ "message = \"Hello Python world!\"\n", "print(message)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Hello Python world!\n", "Hello Python Crash Course world!\n" ] } ], "source": [ "message = \"Hello Python world!\"\n", "print(message)\n", "\n", "message = \"Hello Python Crash Course world!\"\n", "print(message)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Выбор имен и использование переменных" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

1. Имена переменных могут состоять только из букв, цифр исимволов подчеркивания. \n", "Они могут начинаться сбуквы или символа подчеркивания, но не с цифры. \n", "Например, переменной можно присвоить имяmessage_1, но не1_message.

\n", "

2. Пробелы вименах переменных запрещены, а для разделения слов в именах переменных используются символы подчеркивания. Например, имя greeting_message допустимо, а имя greeting message вызовет ошибку.

\n", "

3. Не используйте имена функций иключевые слова Python вкачестве имен переменных; иначе говоря, не используйте слова, которые зарезервированы в Python для конкретной цели, например слово print.

\n", "

4. Имена переменных должны быть короткими, но содержательными. Например, имя name лучше n, имя student_name лучше s_n, а имя name_length лучше length_of_persons_name.

\n", "

5. Будьте внимательны при использовании строчной буквы l и прописной буквы O,\n", "потому что они похожи на цифры 1 и 0.

\n", "

**ПРИМЕЧАНИЕ**

\n", "Пока ограничьтесь именами переменных, записанными внижнем регистре Использование символов верхнего регистра не приведет к ошибке, и все же пока лучше обойтись без них." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Предотвращение ошибок в именах при использовании переменных" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "scrolled": true }, "outputs": [ { "ename": "NameError", "evalue": "name 'mesage' is not defined", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[0mmessage\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m\"Hello Python Crash Course reader!\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmesage\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;31mNameError\u001b[0m: name 'mesage' is not defined" ] } ], "source": [ "message = \"Hello Python Crash Course reader!\"\n", "print(mesage)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Интерпретатор выводит номер строки, чтобы вам было проще найти ошибку, и сообщает тип обнаруженной ошибки. Вданном случае была обнаружена ошибка в имени: переменная суказанным именем (mesage) не определена. Другими словами, Python не распознает имя переменной. Обычно такие ошибки возникают в том случае, если вы забыли присвоить значение переменной перед ее использованиемили ошиблись при вводе имени." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Строки" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "***Строка*** представляет собой простую последовательность символов. Любая последовательность символов, заключенная в кавычки, в Python считается строкой;\n", "при этом строки могут быть заключены как водиночные, так и в двойные кавычки:\n", "\"This is a string.\"\n", "'This is also a string.'" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Ada Lovelace\n" ] } ], "source": [ "name = \"ada lovelace\"\n", "print(name.title())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Метод *title()* преобразует первый символ каждого слова встроке к верхнему регистру, тогда как все остальные символы выводятся внижнем регистре. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Для работы с регистром также существуют другие полезные методы. \n", "Например, все символы строки можно преобразовать к верхнему или нижнему регистру:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ADA LOVELACE\n", "ada lovelace\n" ] } ], "source": [ "name = \"Ada Lovelace\"\n", "print(name.upper())\n", "print(name.lower())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Конкатенация" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ada lovelace\n" ] } ], "source": [ "first_name = \"ada\"\n", "last_name = \"lovelace\"\n", "full_name = first_name + \" \" + last_name\n", "print(full_name)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Для объединения строк Python используется знак «плюс» (+). В приведенном примере полное имя строится объединением first_name, пробел и last_name." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Такой способ объединения строк называется конкатенацией. Вы можете использовать конкатенацию для построения сложных сообщений с информацией, хранящейся в переменных. Рассмотрим пример:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Hello, Ada Lovelace!\n" ] } ], "source": [ "first_name = \"ada\"\n", "last_name = \"lovelace\"\n", "full_name = first_name + \" \" + last_name\n", "print(\"Hello, \" + full_name.title() + \"!\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Табуляции и разрывы строк" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "В программировании термином *«пропуск»* (whitespace) называются такие непечатаемые символы, как пробелы, табуляции и символы конца строки. Пропуски структурируют текст, чтобы пользователю было удобнее читать его. Для включения в текст позиции табуляции используется комбинация символов \\t," ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Python\n" ] } ], "source": [ "print(\"Python\")" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\tPython\n" ] } ], "source": [ "print(\"\\tPython\")" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Python\n", "\tPython\n" ] } ], "source": [ "print(\"Python\")\n", "print(\"\\tPython\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Разрывы строк добавляются с помощью комбинации символов \\n:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Languages:\n", "Python\n", "C\n", "JavaScript\n" ] } ], "source": [ "print(\"Languages:\\nPython\\nC\\nJavaScript\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Табуляции и разрывы строк могут сочетаться в тексте. Скажем, последовательность\"\\n\\t\" приказывает Python начать текст с новой строки, в начале которой располагается табуляция. Следующий пример демонстрирует вывод одного сообщения с разбиением на четыре строки:" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Languages:\n", "\tPython\n", "\tC\n", "\tJavaScript\n" ] } ], "source": [ "print(\"Languages:\\n\\tPython\\n\\tC\\n\\tJavaScript\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Удаление пропусков" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Лишние пропуски могут вызвать путаницу в программах. Для программиста строки'python'и'python'внешне неотличимы, но для программы это совершенноразные строки. Python видит лишний пробел в'python'исчитает, что он действительно важен — до тех пор, пока вы не сообщите о противоположном. Обращайте внимание на пропуски, потому что в программах часто приходится сравнивать строки, чтобы проверить на совпадение их содержимое. Типичный пример — проверка имен пользователей при входе на сайт. Лишние пропуски могут создавать путаницу и в более простых ситуациях. К счастью, Python позволяет легко удалить лишние пропуски из данных, введенных пользователем.\n", "Python может искать лишние пропуски у левого и правого края строки. Чтобы убедиться в том, что у правого края (в конце) строки нет пропусков, вызовите метод ***rstrip()***." ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'python '" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "favorite_language = 'python '\n", "favorite_language" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'python'" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "favorite_language.rstrip()" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'python '" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "favorite_language" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Пропуски также можно удалить улевого края (в начале) строки при помощи метода ***lstrip()***, а метод ***strip()*** удаляет пропуски собоих концов:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "' python'" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "favorite_language = ' python '\n", "favorite_language.rstrip()" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'python '" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "favorite_language.lstrip()" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'python'" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "favorite_language.strip()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Предотвращение синтаксических ошибок встроках" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "One of Python's strengths is its diverse community.\n" ] } ], "source": [ "message = \"One of Python's strengths is its diverse community.\"\n", "print(message)" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "ename": "SyntaxError", "evalue": "invalid syntax (, line 1)", "output_type": "error", "traceback": [ "\u001b[1;36m File \u001b[1;32m\"\"\u001b[1;36m, line \u001b[1;32m1\u001b[0m\n\u001b[1;33m message = 'One of Python's strengths is its diverse community.'\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n" ] } ], "source": [ "message = 'One of Python's strengths is its diverse community.'\n", "print(message)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**ПРИМЕЧАНИЕ**\n", "Функция цветового выделения синтаксиса ускоряет выявление некоторых синтаксических ошибок прямо во время написания программы Если вы увидите, что код Python выделяется как обычныйтекст (или обычный текст выделяется как код Python), скорее всего, в вашем файле где-то пропущена кавычка. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Числа" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Целые числа" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "В Python сцелыми числами можно выполнять операции сложения (+), вычитания(-), умножения (*) иделения(/)." ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "3 - 2" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "6" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "2 * 3" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.5" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "3 / 2" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "5" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "2 + 3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Предотвращение ошибок типов с использованием функции str()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "age = 23\n", "message = \"Happy \" + age + \"rd Birthday!\"\n", "print(message)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "age = 23\n", "message = \"Happy \" + str(age) + \"rd Birthday!\"\n", "print(message)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Комментарии" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Комментарии чрезвычайно полезны в любом языке программирования. До сих пор ваши программы состояли только из кода Python. По мере роста объема и сложности кода в программы следует добавлять комментарии, описывающие общий подход к решаемой задаче, — своего рода заметки, написанные на понятном языке." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "В языке Python признаком комментария является символ «решетка» (#). Интерпретатор Python игнорирует все символы, следующие в коде после # до конца строки. Пример:" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Hello Python people!\n" ] } ], "source": [ "# Say hello to everyone.\n", "print(\"Hello Python people!\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.5" } }, "nbformat": 4, "nbformat_minor": 2 }