Python Начало

0.Установка

Чтобы начать работать с Python 3, вам нужно получить доступ к интерпретатору Python. Существует несколько общих способов сделать это:

  • Python можно получить на сайте Python Software Foundation python.org. Как правило, это означает загрузку нужно установочного файла для вашей операционной системы и запуска его на вашем компьютере.
  • Некоторые операционные системы, особенно Linux, предоставляют менеджер пакетов, который можно запустить для установки Python.
  • Для macOS, лучший способ установить Python 3 включает в себя установку менеджера пакетов под названием Homebrew. Вы увидите, как это делать в соответствующем разделе статьи.
  • Для мобильных операционных систем, таких как Android и iOS, вы можете установить приложения, которые предоставляют среду программирования Python. Это может быть отличным способом практики ваших навыков на ходу.

В качестве альтернативы, существует ряд сайтов, которые позволяют вам получить доступ к интерпретатору Python онлайн, без необходимости в установки чего-либо на вашем компьютере. Прежде чем начать изучать основы языка программирования Python вы должны иметь стабильную версию интерпретатора Python.

Установка Python

1. Синтаксис

Чтобы начать писать даже простейшие программы на языке Python (и не только на нем), необходимо изучить хотя бы первичные основы синтаксиса языка. В противном случае компьютер просто не сможет понять и правильно выполнить нашу программу.

Например, если строку кода print(‘Привет, Мир!’)  записать в виде print (‘Привет, Мир!’), интерпретатор выдаст ошибку и не выведет это приветствие на экран, т.к. в инструкции мы неправильно употребили пробел.

Казалось бы мелочь, но его там вообще быть не должно. Таковы правила синтаксиса языка Python.

Синтаксис языка программирования – это набор правил, которые определяют структуру и порядок написания программ на этом языке.

Говоря о синтаксисе, мы подразумеваем правила написания идентификаторов и литералов, использования ключевых слов, разделения и оформления инструкций и комментариев и т.д. Уверенное знание всех этих правил, позволит нам писать программы любой сложности, допуская при этом минимум ошибок. А учитывая простоту и лаконичность синтаксиса Python, сделать это будет совсем не трудно. Но прежде, для расширения кругозора, давайте познакомимся с понятиями лексемы и литерала.

Особенности синтаксиса языка Python:

  1. Конец строки в Пайтоне является концом инструкции, то есть точка с запятой не нужна.
  2. Вложенные инструкции объединяют в блоки в зависимости от величины отступов. Причём отступ может быть любым – главное то, чтобы он был одинаковым в пределах одного вложенного блока. Естественно, тут стоит помнить про читабельность вашего кода. То есть отступ в 1 пробел вряд ли можно назвать лучшим решением, а вот использование Tab уже лучше.
  3. Вложенные инструкции в языке программирования Python записывают с учётом одного и того же шаблона, исходя из которого, основная инструкция завершается двоеточием, а вслед за двоеточием располагается вложенный блок кода. Этот блок кода, как правило, имеет отступ под строкой основной инструкции. Давайте посмотрим, как выглядит этот синтаксис на примере:
Основная инструкция:
    Вложенный блок с инструкциями

Строки и отступы:

Одна из первых особенностей Python, которая бросается в глаза программистам, начинающим изучать этот язык программирования, это то, что в нем не используются скобки для обозначения отдельных блоков кода. Вместо них в Python используются двоеточия и отступы.

Количество пробелов в отступах произвольно и выбирается каждым на свое усмотрение, однако по договоренности равняется четырем пробелам.  При этом отступ всего блока должен быть одинаковым.

Например, этот блок кода будет работать (хотя так писать не стоит):

ifTrue: 
print("Hi")
else:    
print"Bye"

 А этот уже вызовет ошибку:

ifTrue:    
print("Hi")  
print("Bye")

Таким образом, в Python несколько строк кода с одинаковым отступом будут формировать отдельный блок кода. Благодаря такой системе значительно повышается читаемость кода и прививается привычка писать понятно и структурировано.

Многострочные выражения:

Выражения в Python, как правило, заканчиваются новой строкой. Однако, в этом языке программирования существует специальный символ переноса строки (\), показывающий, что с окончанием строки не заканчивается код.

Например:

total =item1 +\         
 item2 +\          
item3

Выражения, которые находятся внутри скобок: квадратных ( [ ] ), фигурных ( { } ) или круглых ( ( ) ) не нуждаются в символе переноса строки.

Например:

days =["Sunday", "Monday", "Tuesday","Wednesday", "Thursday", "Friday",           
"Saturday"]

Кавычки в Python:

В Python можно использовать одинарные ( ‘ ), двойные (“) и тройные (”’ или “””) кавычки чтобы обозначить строчный тип данных, при этом начинаться и заканчиваться строка должна одинаковыми кавычками.

Строка занимающая несколько строк кода должна быть обрамлена тройными кавычками. Например:

name ='wasd'
description ="Some text"
biography =""" Some long text for few                       lines of code """

Python принимает одиночные (‘), двойные (“) и тройные (”’ или “””) кавычки, чтобы обозначать строковые литералы, при условии, что начинается и заканчивается одна и та же цитата.

Тройные кавычки используются для охвата строки на нескольких строках. Например, все следующие примеры возможны –

word = 'word'
sentence = "This is a sentence."
paragraph = """This is a paragraph. It ismade up of multiple lines and sentences."""

Комментирование в Python:

Символ решетки (#) в Python обозначает начало комментария. Любые символы после решетки и до конца строки считаются комментариями и игнорируются интерпретатором.

Например следующий код:

# First line comment
print("Hello, Python")# second comment

Полезная ссылка

2.Функция print()

Вывод «Hello World!» — это, наверное, один из самых распространенных ритуалов для всех языков программирования, поэтому при изучения основ функции print можно и взять его за основу.

Print — это как первая буква в алфавите программирования. В Python она отвечает за вывод данных пользователю.

print() используется для показа информации пользователю или программисту. Она не меняет значения, переменные или функции, а просто показывает данные.

Функция очень полезна для программиста, ведь помогает проверять значения, устанавливать напоминания или показывать сообщения на разных этапах процесса работы программы.

Правила использования

  1. Print работает с круглыми скобками. Вот корректный синтаксис: print().
  2. Если нужно вывести текст, то его необходимо заключить в скобки:
    print("Hello World").
  3. Символ # используется для добавления комментариев в текст. Эти комментарии не выполняются и не выводятся. Они выступают всего лишь заметками для тех, кто работает с кодом.

Частые ошибки

  1. Нельзя выводить текст без скобок. Хотя такой подход и работает с Python 2, в Python 3 возникнет ошибка.
  2. Внутри функции print не нужно использовать кавычки при выводе значений переменных. Они нужны только для строк.

Переменная — сущность, которая хранит записанное значение. Например, в контакты телефона мы сохраняем номер под именем, что бы не запоминать его и не вводить каждый раз. В python мы сохраняем такие значения в переменные: pavel = "8 800 123 45 67"

Примеры функции print()

print("Hello, World!")

Важные моменты:

  1. Текст для вывода должен быть заключен в скобки. Это правило синтаксиса, которому нужно следовать.
  2. Если выводится переменная, то кавычки не нужны, достаточно ввести название самой переменной. Как в следующем примере:

my_message = "Этот текст выводим"
print(my_message)

Советы:

  1. Используйте запятую. Можно вывести несколько значений, разделив их запятыми.
    print("Привет" , "меня зовут" , "Иван")
  2. Параметр sep. Помимо того, что можно увидеть, есть еще и параметр sep, который разделяет каждое значение указанным разделителем.
    print("Model S" , "Model 3" , sep="--")
  3. Параметр end. По умолчанию функция добавляет символ новой строки после каждого выполнения. Этого можно избежать с помощью параметра end. Ему также можно присвоить любое значение.
    print("Model S" , "Model 3" , end="|")
    print("100" , "200" , end="|")
    print("USA" , "France" , end="|")

print("Привет" , "меня зовут" , "Иван")

# Это комментарий. Обычно здесь пишут пояснения своего кода. Эта строка не выполняется.
print("Привет" , "меня зовут" , "Иван")

Можно увидеть, что в коде есть строка комментария, которая начинается с символа #.

Она полностью игнорируется программой — ее можно воспринимать как заметку относительно содержания кода.

Полезная ссылка

3. Переменные

Переменная – это имя, которое используется для ссылки на область памяти.

Переменная Python также известна как идентификатор и используется для хранения значения.

В Python нам необязательно указывать тип переменной, поскольку Python является языком с динамической типизацией.

Имена переменных могут состоять как из букв, так и из цифр, но они должны начинаться с буквы или символа подчеркивания.

Рекомендуется использовать строчные буквы для имени переменной. Rahul и rahul – это две разные переменные, т.к. имена переменных регистрозависимы.

Любая программы состоит из набора команд и данных.

Так вот, чтобы хранить данные, в любом языке программирования, и Python не исключение, есть такое понятие как переменные.

Переменная это не что иное, как имя, с помощью которого можно обратиться к данным, сохраненным в памяти компьютера.

Другими словами, переменная — это именованная область памяти. Чтобы создать переменную и назначить ей значение используется оператор присваивания. Вот несколько примеров того, как создается, или, как говорят программисты, «объявляется» переменная

first = "синий"
second = 23

Синтаксис «объявления» прост: достаточно написать имя переменной, знак «=» и значение переменной.

У разных переменных могут быть разные типы данных. В нашем примере переменная first является строкой, а переменная second — числом.

В Python, кроме строк и чисел, есть и другие типы данных. Если вы начинающий программист и не знаете, что такое типы данных, не переживайте, об этом будет рассказано чуть позже.

Самое простое, что можно сделать с переменной, это вывести на экран ее значение.

first = "синий"
second = 23
print(first, second)

Попробуйте запустить такую программу и посмотрите, что она выведет на экран.

4. Имена переменных

Следует придерживаться нескольких несложных правил при выборе имен переменных:

  1. Имя переменной может содержать только латинские буквы, числа и символ нижнего подчеркивания;
  2. Имя переменной не должно содержать пробелов;
  3. Имя переменной не должно начинаться с цифры;
  4. Регистр важен: var и Var это разные переменные.

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

Советы:

  1. Название переменной всегда расположено слева при присваивании. А значение, которое нужно присвоить, располагается справа.
  2. В Python (и любом другом языке программирования) очень важно правильно выбирать название переменной, ведь к ней придется часто обращаться:
    • Кое-какие названия являются зарезервированными в Python, поэтому их использовать нельзя: print, true, false, count, sum и так далее.
    • Со временем вы все их узнаете.
    • Названия переменных должны начинаться с символа алфавита или нижнего подчеркивания.
    • Если начать переменную с символа или нижнего подчеркивания, то после в нее можно включать и цифры.
    • Названия переменных чувствительны к регистру. Если был использован символ в верхнем регистре, то именно так и нужно обращаться к переменой в будущем.
  3. Практические соглашения именования переменных:
    • Можно добавлять небольшой суффикс, чтобы не путать переменную с ключевым словом Python: var_number , var_true , v_start , v_close, the_class, the_one, the_name. Креативность разрешена, главное, чтобы система оставалась понятной.
    • Лучше не использовать переменную в один символ, только если это цикл или любая другая короткая операция. Такие имена как a, x, y, z начинают путать уже спустя пару минут после того, как их впервые использовали.
    • Слова рекомендуется разделять нижним подчеркиванием: cars_сounted, doors_сlosed, dogs_saved, ships_fixed и так далее.
    • Это повышает читаемость переменных. Сравните: timeinmoscow и time_in_moscow.
    • Рекомендуется (часто требуется) использовать латиницу и английские слова. Так ваш код будут понимать больше разработчиков.

5. Идентификаторы в Python:

Идентификаторы в Python это имена используемые для обозначения переменной, функции, класса, модуля или другого объекта. Идентификатор должен начинаться с буквы (от a до Z) или со знака подчеркивания (_), после которых может идти произвольное количество букв, знаков подчеркивания и чисел (от 0 до 9).

В Python недопустимо использование знаков препинания или специальных символов, таких как @, $ или % в качестве идентификаторов. Кроме того, Python чуствителен к регистру, то есть cat и Cat это два разных имени.

В Python существует следующая договоренность для названия идентификаторов:

  • Имена классов начинаются с большой буквы, все остальные идентификаторы – с маленькой.
  • Использования знака подчеркивания в качестве первого символа идентификатора означает, что данный идентификатор является частным (закрытым от использования вне класса).
  • Если идентификатор начинается и заканчивается двумя знаками подчеркивания (например, __init__ ) это означает, что он является специальным именем, определенным внутри языка.

6. Зарезервированые (ключевые) слова в Python:

В данной таблице собраны все ключевые слова Python.

andelififprint
aselseimportraise
assertexceptinreturn
breakexecistry
classfinallylambdawhile
continuefornotwhich
deffromoryield
delglobalpass

Эти зарезервированные слова нельзя использовать в качестве имени переменной или любого другого идентификатора. Все ключевые слова Python состоят только из букв в нижнем регистре.

Получить список ключевых слов возможно в интерпретаторе командой.

help("keywords")

7. Дзен Python

Найти Zen of Python можно на официальном сайте по языку программирования Python. Также ознакомиться с этой информацией можно в консольном приложении Python. Достаточно ввести всего одну команду import this и на экране высветиться свод из 19 правил на английском языке. Выглядит это следующим образом:

Zen of Python на русском языке

PEP20, а если быть точнее, то 19 правил по улучшению языка Питон от Тима Петерса, выглядят следующим образом на русском языке:

  • Красивое лучше уродливого.
  • Явное лучше неявного.
  • Простое лучше сложного.
  • Сложное лучше запутанного.
  • Развернутое лучше вложенного.
  • Разреженное лучше плотного.
  • Читаемость имеет значение.
  • Особые случаи не настолько особые, чтобы нарушать правила.
  • При этом практичность важнее безупречности.
  • Ошибки не должны замалчиваться.
  • Если не замалчиваются явно.
  • Встретив двусмысленность, отбрось искушение угадать.
  • Должен существовать один – и, желательно, только один – очевидный способ сделать что-то.
  • Хотя этот способ поначалу может быть и не очевиден, если вы не голландец.
  • Сейчас лучше, чем никогда.
  • Хотя никогда часто лучше, чем *прямо* сейчас.
  • Если реализацию сложно объяснить – идея точно плоха.
  • Если реализацию легко объяснить – возможно, идея хороша.
  • Пространства имен – отличная штука! Будем использовать их чаще!

1. Красивое лучше некрасивого.

Красивый код лучше уродливого. Если два фрагмента кода работают, но один из них прост и легко читаем, а другой запутан и труден для понимания, то первый, безусловно, является победителем. Python известен своей простотой, удобочитаемостью и элегантностью. Если вы хотите, чтобы ваш код выглядел pythonic , обратите внимание на его последовательность и простоту.

2. Явное лучше неявного.

Ваш код должен быть понятен тому, кто ничего не знает о вашей программе. Никаких предварительных знаний не требуется. Сделайте свой код как можно более явным, не скрывая функциональность кода за непонятным языком.

3. Простое лучше сложного.

Если у вас есть простая проблема, которую можно решить с помощью простого решения, действуйте. Если у вас есть сложная проблема, разбейте ее на несколько простых задач, которые можно решить с помощью простого решения. Не усложняйте код, чтобы он выглядел умным. Это не ценится в Python.

4. Сложное лучше, чем сложное.

Когда ваша проблема требует комплексного решения, она все равно не должна быть слишком сложной. Сложный код сбивает с толку ваших коллег-программистов и отнимает массу времени и усилий. Старайтесь, чтобы ваш код был как можно более простым и читабельным, даже при работе со сложными проблемами.

5. Flat лучше, чем вложенный.

Вы большой поклонник организации вещей по категориям, подкатегориям и под-подкатегориям? Что ж, когда дело доходит до организации вашего кода, эта иерархическая структура часто вносит больше путаницы, чем организации. Придерживайтесь плоской структуры кода с минимальной вложенностью. Это очень важно для удобочитаемости кода — и, как вы уже знаете, мы очень заботимся о удобочитаемости в Python.

6. Разреженный лучше, чем густой.

Не пытайтесь произвести на кого-либо впечатление, сжимая массу функций в одну строку кода. Это может показаться впечатляющим для непрограммистов, но на самом деле это просто сбивает с толку ваших коллег-программистов, которым потребуется дополнительное время, чтобы понять ваш код. Обычно предпочтительнее иметь несколько простых для понимания строк кода, чем плотный однострочный код.

7. Удобочитаемость имеет значение.

Часто программисты пытаются сэкономить время, сокращая имена переменных и функций или пропуская комментарии (или делая комментарии слишком краткими). Помните: вы можете написать код только один раз, но людям, скорее всего, придется читать его несколько раз. Если вы действительно хотите «сэкономить время», сделайте свой код читабельным, используя простые для понимания имена переменных и функций, обширную документацию и правильные отступы.

8. Особые случаи не настолько особенные, чтобы нарушать правила.

В Python есть множество лучших практик, которые делают ваш код более читабельным для коллег-программистов. Следуйте этим практикам вместо того, чтобы делать это «по-своему». Это правило особенно важно, когда вы создаете модули или библиотеки для использования другими.

9. Хотя практичность важнее чистоты.

Тем не менее, каждое правило может иметь исключение. Если практичнее решить проблему «по-вашему», и при этом код остается читабельным и простым в использовании, иногда вы можете отклоняться от общепринятых передовых практик. Новичкам в программировании может быть сложно ориентироваться между этим и описанным выше принципом, но с опытом становится легче.

10. Ошибки никогда не должны проходить молча.

Если есть ошибка, и ваша программа возвращает None или просто код ошибки, у вас скрытая ошибка. Это не хорошо. Замалчивание ошибок в конечном итоге приводит к ошибкам, которые труднее устранить (поскольку труднее отследить первоначальную причину). Лучше, если программа рухнет, чем заглушит ошибку и продолжит работу.

11. Если явно не отключено.

В некоторых случаях вы можете захотеть игнорировать ошибки, которые может вызвать ваша программа. Тогда лучше всего отключить эту ошибку в коде.

12. Перед лицом двусмысленности откажитесь от соблазна угадать.

Если ваш код не работает, не пробуйте вслепую разные решения, пока одно из них не сработает. Возможно, вы просто маскируете проблему, а не решаете ее. Вместо этого примените критическое мышление, чтобы понять проблему, а затем найти подходящее решение.

13. Должен быть один — и желательно только один — очевидный способ сделать это.

Существует гибкость, когда у вас есть несколько решений для одной и той же проблемы. Однако это также добавляет сложности и усилий, поскольку вам необходимо ознакомиться со всеми возможными решениями.

Python — это простота, и хороший пример этого скрыт внутри этого конкретного принципа. Обратите внимание на постфиксный оператор (двойное тире) после «один» и префиксный оператор перед «очевидным» в этом принципе. Новые программисты часто не понимают, когда использовать постфиксные или префиксные операторы. Python решает эту проблему, не поддерживая ни того, ни другого.

14. Хотя поначалу это может быть неочевидно, если только вы не голландец.

Этот принцип относится к создателю Python Гвидо ван Россуму, который является голландцем. Очевидно, что вспомнить и понять какое-либо правило в Python ему будет проще, чем кому-либо другому.

15. Лучше сейчас, чем никогда.

Этот принцип имеет как минимум две различные интерпретации. Некоторые люди думают, что это относится к бесконечным и бесконечным циклам, которых вам, очевидно, следует избегать в своем коде. Другая возможная интерпретация заключается в том, что вам просто нужно избегать проволочек с вашими программными проектами. Думаю, не повредит, если мы примем обе эти интерпретации.

16. Хотя никогда лучше, чем прямо сейчас.

Этот принцип развивает идеи предыдущего. Если мы применим его непосредственно к нашему коду, мы можем сказать, что лучше дождаться завершения программы, чем завершить ее раньше и получить неправильные результаты. Если мы говорим о проектах по программированию в целом, мы можем интерпретировать этот принцип как призыв задуматься и спланировать проект, вместо того, чтобы сразу прыгать в него.

17. Если реализацию трудно объяснить, это плохая идея.

Если вам сложно объяснить коллегам свою реализацию, вероятно, она написана на плохом коде. Скорее всего, вы усложнили его и нарушили несколько вышеперечисленных принципов. Попробуйте упростить свое решение, пока не почувствуете себя комфортно, объясняя его другим программистам.

18. Если реализацию легко объяснить, это может быть хорошей идеей.

Если вы можете легко объяснить свою реализацию своим коллегам, это может быть хорошо. Это все еще может быть неправильно, но вы на правильном пути с точки зрения удобочитаемости и простоты кода.

19. Пространства имен — это отличная идея — давайте сделаем больше таких!

В Python у вас могут быть изолированные пространства имен или набор имен, которые позволяют каждому объекту в вашей программе иметь уникальное имя. Пространства имен создают систему, в которой имена в одном из ваших модулей не конфликтуют с именами в другом. Это делает их очень удобными.

Вот и все! Мы рассмотрели все 19 принципов дзен Python. Теперь пришло время для практики.

Полезная ссылка