Необходимо войти или зарегистрироваться

Авторизация

Введите логин, email или номер телефона, начинающийся с символа «+»
Забыли пароль? Регистрация

Новый пароль

Авторизация

Восстановление пароля

Авторизация

Регистрация

Выберите, пожалуйста, ник на пикабу
Номер будет виден только вам.
Отправка смс бесплатна
У меня уже есть аккаунт с ником Отменить привязку?

Регистрация

Номер будет виден только вам.
Отправка смс бесплатна
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
Авторизация

Сообщество

Сообщество

Сообщество - Программирование на python

Программирование на python

32 поста 2 266 подписчиков
Полная информация
Правила сообщества

[Django] Уроки на примере реального web проекта

gugr в Программирование на python
[Django] Уроки на примере реального web проекта Python, Джанго, Web

Всем доброго времени суток.

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

Разработка будет вестись на Django, я являюсь главным разработчиком.

Очень давно на Пикабу и всегда рад рассказать что-то новое сообществу.

Мне нужно знать интересна эта тема и стоит ли публиковать посты по этапам разработки приложения. Комментарий для минусов внутри.

Видеоуроки Python

Beremoriss в Программирование на python

Короче, есть чувак, зовут Баки Робертс, на ютубе у него целая серия обучалок по разным языкам программирования, включая и питон, есть ли смысл мне их перевести и озвучить, а потом выложить сюда? Объясняет он очень круто и постепенно, я с нуля начинал и мне довольно легко давались его обучалки. Вот ссылка на плейлист по питону:

https://www.youtube.com/playlist?list=PL6gx4Cwl9DGAcbMi1sH6o...

Как писать красивый код с PEP 8. Часть #1

iCleverer в Программирование на python

Начинаю серию переводов с Real Python.

Как писать красивый код с PEP 8. Часть #1 Python, Перевод, Длиннопост

PEP 8 (иногда PEP8 или PEP-8) - документ, который содержит набор рекомендаций и практик, про то, как писать на Python. Написан в 2001 Гуидо ван Россумом, Барри Уорсо и Ником Когхланом. Основной целью PEP 8 является улучшение читаемости и согласованности кода.


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


В этом руководстве излагаются основные рекомендации, изложенные в PEP 8. Руководство предназначено для начинающих и программистов среднего уровня, и поэтому не затронуты некоторые из наиболее сложных тем. Вы можете узнать об этих темах, прочитав полную документацию по PEP 8 (англ и рус).


К концу этой статьи, вы сможете:


* Написать код Python, соответствующий PEP 8


* Понять обоснование руководящих принципов, изложенных в PEP 8


* Настроить среду разработки так, чтобы вы могли начинать писать Python код, совместимый с PEP 8

Почему нам нужен PEP 8

Читаемость имеет значение. (c) Дзен Python


PEP 8 существует для улучшения читабельности кода Python. Но почему так важна читабельность? Почему написание читаемого кода является одним из главных принципов языка Python?


Как сказал Гвидо ван Россум: «Код читается гораздо чаще, чем пишется». Вы можете потратить несколько минут или целый день на написание фрагмента кода для обработки аутентификации пользователя. После того, как вы написали, вы никогда не будете писать этот код снова. Однако вам определенно придется прочитать его заново. Этот фрагмент кода может остаться частью проекта, над которым вы работаете. Каждый раз, когда вы возвращаетесь к этому файлу, вы должны помнить, что делает этот код и почему вы его написали, поэтому читаемость имеет значение.


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


Следование PEP 8 особенно важно, если вы ищете работу разработчиком. Написание четкого, читаемого кода демонстрирует профессионализм. Он скажет работодателю, что вы понимаете, как правильно структурировать свой код.


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

Соглашение об именах

Явное лучше, чем неявное (с) Дзен Python


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


Примечание. Никогда не используйте однобуквенные имена l (прим: строчное L), O или I (прим: прописное i), поскольку их можно принять за 1 и 0, в зависимости от гарнитуры:


O = 2 # Это может выглядеть так, будто вы пытаетесь переопределить ноль, как число два



Стили именования:


Функции - используйте строчное слово(-а). Разделяйте слова нижним подчеркиванием для улучшения читаемости. Например: function, my_function


Переменные - используйте строчную букву, слово или слова. Разделяйте слова нижним подчеркиванием, чтобы улучшить читаемость. Например: x, var, my_variable


Классы - начинайте каждое слово с заглавной буквы. Не разделяйте слова подчеркиванием. Этот стиль называется ВерблюжийРегистр (прим: чаще всего употребляется всё же английский вариант названия: кэмэл кейс). Например: Model, MyClass


Методы - используйте строчные слова или слова. Разделяйте слова нижним подчеркиванием, чтобы улучшить читаемость. Например: class_method, method


Константы - используйте заглавные буквы, слово или слова. Разделяйте слова подчеркиванием, чтобы улучшить читаемость. (прим: в Python нет отдельного типа для констант. А так как в Python существует благодаря тому, что есть много соглашений, которые должны соблюдаться разработчиками. Поэтому и используется данное обозначение для констант. ) Например: CONSTANT, MY_CONSTANT, MY_LONG_CONSTANT


Модули - используйте короткое строчное слово(-а). Разделяйте слова нижним подчеркиванием, чтобы улучшить читаемость. Например: module.py, my_module.py


Пакеты - используйте короткое строчное слово(-а). Не разделяйте слова подчеркиванием. Например: package, mypackage


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


Как выбрать имена


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


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


# Не рекомендуется

x = 'John Smith'

y, z = x.split()

print(z, y, sep=', ')

'Smith, John'


Это будет работать, но вы должны будете отслеживать, что представляют собой x, y и z. Это также может сбивать с толку соавторов. Более ясный выбор имен представляет из себя что-то вроде этого:


# Рекомендовано

name = 'John Smith'

first_name, last_name = name.split()

print(last_name, first_name, sep=', ')

'Smith, John'


Точно так же, чтобы уменьшить количество набираемого текста, может возникнуть соблазн использовать сокращения при выборе имен. В приведенном ниже примере мы определили функцию db (), которая принимает один аргумент x и удваивает его:


# Не рекомендуется

def db(x):

return x * 2


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


Следующий пример понятнее. Если вы вернетесь к этому коду через пару дней после его написания, вы все равно сможете прочитать и понять назначение этой функции:


# Рекомендовано

def multiply_by_two(x):

return x * 2


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


Макет кода

Красиво лучше, чем некрасиво. (c) Дзен Python


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


Пустые линии


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


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


class MyFirstClass:

pass



class MySecondClass:

pass



def top_level_function():

return None



Определения метода внутри классов с одной пустой строкой. Внутри класса все функции связаны друг с другом. Рекомендуется оставлять между ними только одну строчку:


class MyClass:

def first_method(self):

return None


def second_method(self):

return None



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


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


def calculate_variance(number_list):

sum_list = 0

for number in number_list:

sum_list = sum_list + number

mean = sum_list / len(number_list)


sum_squares = 0

for number in number_list:

sum_squares = sum_squares + number**2

mean_squares = sum_squares / len(number_list)


return mean_squares - mean**2


Максимальная длина линии и разрыв строки


PEP 8 предполагает, что строки должны быть ограничены 79 символами. Это позволяет открывать несколько файлов рядом друг с другом, а также избегать переноса строк.


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


Python примет продолжение строки, если код содержится в круглых, квадратных и фигурных скобках:


def function(arg_one, arg_two,

arg_three, arg_four):

return arg_one


Если невозможно использовать подразумеваемое продолжение, то вместо него можно использовать обратную косую черту:


from mypkg import example1, \

example2, example3


Однако, если вы можете использовать подразумеваемое продолжение, то вам следует всё же использовать продолжение.


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


Ниже приведен пример разрыва перед бинарным оператором:


# Рекомендовано

total = (first_variable

+ second_variable

- third_variable)


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


Теперь давайте рассмотрим пример разрыва после бинарного оператора:


# Не рекомендовано

total = (first_variable +

second_variable -

third_variable)


Здесь сложнее увидеть, какая переменная добавляется, а какая вычитается.


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


В следующей части рассмотрим отступы и как правильно комментировать код.


Оригинал статьи: https://realpython.com/python-pep8/

Все права принадлежат авторам статьи (команде Real Python).
Мною лишь переведена и адаптирована статья.


Спасибо за внимание!

Показать полностью

Программирование на Python. Урок 4 - Срез Строки

Beremoriss в Программирование на python

Продолжаю озвучивать для своих подписчиков видеоуроки по Питону от Баки Робертса. Предыдущие уроки можно найти в сообществе или в моем плейлисте: https://www.youtube.com/playlist?list=PL_yQY54D7lQB7vIauf8ZB...

Программирование на Python. Урок - 5 - Списки

Beremoriss в Программирование на python

Моя озвучка 5-го урока по программированию на python3.4 от Баки Робертса.

Предыдущие уроки можете найти в этом сообществе: https://m.pikabu.ru/community/python или в моем профиле.

Вот ссылка на оригинальный плейлист: https://www.youtube.com/playlist?list=PL6gx4Cwl9DGAcbMi1sH6o...

Стоит ли продолжать переводить уроки по Питону?

Beremoriss в Программирование на python

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

https://www.youtube.com/channel/UChHyBDvI5AJmcPv36M6PUrQ/pla...

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

[Основы] Часть 1. Для грудничков.

kitaetz в Программирование на python

Предполагается, что пост https://m.pikabu.ru/story/hello_world_4265035 уже прочитан или у вас любой дистрибутив linux.

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

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


Для начала замануха. Можно много писать о том, какой питон крутой, что его используют для бигдаты, датасаенса, веб-разработки и всего остального. Но это всё сухие слова. Поэтому приведу пару примеров того, где питон используется в качестве основного языка.


Instagram - всеми любимый хостинг фотографий еды и ёбл тупых пёзд. Да, он написан на питоне. Мало того, за фреймворк взят Django, до которого мы доползём, если кроме меня будут желающие ползти. Да ещё и HTTP-сервер они взяли Gunicorn, до которого мы так же доползём. В качестве БД они используют PostgreSQL - мою любимую РСУБД и именно поэтому до неё мы тоже, возможно, доползём.


Reddit - сервис смехуёчков, думаю, все о нём так или иначе слышали. Он написан также на питоне, но на Pyramid фреймворке, а не Django. В качестве БД используются две базы: Cassandra и PostgreSQL. В качестве кэша используется memcached и фейсбуковский mcrouter. В качестве брокера сообщений используется RabbitMQ. Исходный код находится в общем доступе здесь https://github.com/reddit/reddit


exchange.livejournal.com - биржа блогеров ЖЖ, которая недавно открылась. Почему она здесь? Потому что я участвовал в её разработке. Она также написана на Django с базой PostgreSQL.


На этом замануха кончается и начинается моя нелюбимая часть - циклы, ветвления и переменные.

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


Переменные

Питон - язык со строгой динамической типизацией. Что это значит?

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

- Если в переменной x хранилось число, это не значит, что ей нельзя присвоить строку. Это динамическая типизация. Тип переменной, разумеется, нигде указывать не нужно.

[Основы] Часть 1. Для грудничков. Python, Программирование, Python3, Длиннопост, Цикл, Ветвления, Основы, Переменные

Приятной возможностью является параллельное присваивание. Обмен значениями также поддерживается.

[Основы] Часть 1. Для грудничков. Python, Программирование, Python3, Длиннопост, Цикл, Ветвления, Основы, Переменные

Есть также множественное присваивание, которое я настоятельно не рекомендую использовать бездумно (это касается неплоских типов данных, о которых поговорим как-нибудь позже):

[Основы] Часть 1. Для грудничков. Python, Программирование, Python3, Длиннопост, Цикл, Ветвления, Основы, Переменные

С переменными, вроде, пока всё.


Ветвления

В отличии от Си-подобного синтаксиса, у нас нет ни фигурных скобок для выделения блоков, ни скобок для выделения условного выражения (на самом деле, ничего не мешает обернуть условие в скобки). Блоки выделяются ТОЛЬКО отступами. Здесь нет никаких switch, есть только if, elif и else. Следующий пример, думаю, объяснит всё за меня:

[Основы] Часть 1. Для грудничков. Python, Программирование, Python3, Длиннопост, Цикл, Ветвления, Основы, Переменные

А теперь небольшой сюрприз. Несмотря на то, что язык имеет строгую типизацию, сравнения между некоторыми неодинаковыми типами данных (int, float, Decimal) поддерживаются. Например 5 == 5.0 вернёт True, несмотря на то, что 5 - это целое число, а 5.0 - с запятой. Но использование этого считается дурным тоном.


Циклы

Если вы до этого дня не знали слово "итератор" и писали только циклы по индексам, вроде такого for(int i=0; i<10; i++), то придётся привыкать.

Итак, в питоне цикл for проходит итератором по каждому элементу последовательности. Ему глубоко плевать, что внутри последовательности. Число, строка, чьи-то надежды и мечты.

[Основы] Часть 1. Для грудничков. Python, Программирование, Python3, Длиннопост, Цикл, Ветвления, Основы, Переменные

Для обычных циклов по индексам существует генератор range. О генераторах тоже позже.


Функции

Функции в питоне объявляются двумя способами:

[Основы] Часть 1. Для грудничков. Python, Программирование, Python3, Длиннопост, Цикл, Ветвления, Основы, Переменные

Однако, второй способ СТРОГО НАСТРОГО рекомендую использовать для определения обычных функций. Лямбда-функции (или безымянные функции) нужны только для того, чтобы передавать их аргументом в функции высшего порядка.

Тут, наверное, возникло сразу два вопроса:

Как можно передать функцию аргументом в другую функцию?

Что такое функция высшего порядка?


Т.к. питон - объектно-ориентированный, следовательно, всё в нём является объектом. И функция тоже. Аргументом в функцию может прийти любой объект, в т.ч. и функция:

[Основы] Часть 1. Для грудничков. Python, Программирование, Python3, Длиннопост, Цикл, Ветвления, Основы, Переменные

В данном примере много чего интересного:

1) После определения функции (def) можно ввести так называемый docstring, который описывает то, что делает функция. При этом, этот докстринг сохраняется в атрибут __doc__ объекта функции (что только лишний раз говорит о том, что функция - объект)

2) __name__ атрибут содержит имя объекта (функции или класса)

3) h в этом случае - функция высшего порядка. Функция высшего порядка - это функция, которая принимает или возвращает другую функцию. Это пригодится для декораторов, о которых также позже.


Функции можно присваивать другим переменным:

[Основы] Часть 1. Для грудничков. Python, Программирование, Python3, Длиннопост, Цикл, Ветвления, Основы, Переменные

Но имя (__name__) останется прежним, т.к. фактически, f и same_func только лишь ссылаются на функцию.

[Основы] Часть 1. Для грудничков. Python, Программирование, Python3, Длиннопост, Цикл, Ветвления, Основы, Переменные

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


P.S. Пост писался без подготовки, прямо в редактор постов на пикабу, обо всех недочётах пишите в комментах, закидывайте тапками и помидорами.

Показать полностью 9

Для начинающих изучать программирование(Python)

qwertyzaq в Программирование на python

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

1.Майкл Доусон - Программируем на python

Для начинающих изучать программирование(Python) Python, Книги, Подбока, Программирование, Длиннопост

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

2.Марк Лутц - Изучаем Python 4-е издание
Для начинающих изучать программирование(Python) Python, Книги, Подбока, Программирование, Длиннопост

Отличная книга, но слишком подробная для новичка, читать ее стоит в связке с практикой. Нечто вроде: вы захотели написать программу, но вам не хватает более глубоких знаний что бы сделать ее удобней/короче/красивей и т.д.

3.Марк Саммерфилд - Программирование на Python 3

Для начинающих изучать программирование(Python) Python, Книги, Подбока, Программирование, Длиннопост

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

4.Марк Лутц - Программирование на Python

Для начинающих изучать программирование(Python) Python, Книги, Подбока, Программирование, Длиннопост

Книга учит применять знания полученный в "Изучаем Python 4-е издание", однако так же перегружена лишней для новичков информацией, воспринять которую будет куда проще после Доусона и Саммерфилда. Эта книга-некий финиш в начальном изучении языка. Освоив ее вы сможете перейти куда к более углубленным работам.

Надеюсь кому то поможет эта подборка. Приятного чтения и удачи в обучении.

Показать полностью 3

Hello world!

rissy в Программирование на python

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


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


Если ты уже программируешь на python, то этот пост ну прям явно не для тебя. :) Ты можешь просто не читать его вовсе, а лучше написать сюда свой, про что-нибудь интересное из твоего опыта! С преферансом и поэтессами, как полагается. ;)

Hello world! Python, Python3, Программирование, Pycharm, Новичкам, Основы, Интерпретатор, Windows, Длиннопост

Итак, как сообщает нам достоверный источник (википедия), python (я произношу "пайтон", некоторые русскоязычные люди говорят "питон") — язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода. Иными словами, на нём можно быстро и писать код, и разбираться в том, что написал сосед.


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


Применяют ли его на практике?

Безусловно! Python — очень распространённый язык! С его помощью можно делать сайты, обрабатывать данные, работать с машинным обучением и много-много ещё всего интересного. Он используется многими крупными компаниями (например, в Google, чего далеко ходить). С его помощью можно делать как простенькие скрипты для повседневной жизни, так и всерьёз заниматься научной и коммерческой разработкой.


Заинтересовало? Тогда давай попробуем написать и запустить что-нибудь на Python! :)

Hello world! Python, Python3, Программирование, Pycharm, Новичкам, Основы, Интерпретатор, Windows, Длиннопост

Важно понимать, что способов для этого — тьма! Ты можешь писать свою программу хоть в мощной среде разработки с подсветкой синтаксиса и прочими плюшками, хоть в обычном блокноте, хоть вообще в интернете (да и запускать там же). Думается, об этом будет отдельный пост. Сейчас же я просто покажу как можно исполнять команды в интерпретаторе python.


И сразу пара слов о последнем, потому что если ты это читаешь, то, быть может, и не знаешь что это такое.


Python — язык интерпретируемый. Говоря вкратце, это означает, что его инструкции выполняются (интерпретируются) одна за другой последовательно, без компилирования всего и сразу, как, например, в языке Си. Интерпретатор — это как раз-таки специальная программа, которая и занимается интерпретацией.


Чтобы пользоваться языком python, нужно скачать и установить его реализацию с официального сайта https://www.python.org/downloads/.


Я приведу пример на 3-ей серии языка python (3.5.1), поэтому рекомендую скачивать именно её. Для Windows это можно сделать напрямую по этой ссылке. При установке, не забудь поставить галочку на пункте Добавить в PATH, это упростит тебе жизнь в дальнейшем.

Hello world! Python, Python3, Программирование, Pycharm, Новичкам, Основы, Интерпретатор, Windows, Длиннопост

Скачал и установил? Отлично! Давай запустим интерпретатор. Открой командную строку (вбей в Пуск cmd) и введи туда:

python

Интерпретатор запущен! Да, всё так просто! Если всё сделано правильно, то будет что-то вроде:

Hello world! Python, Python3, Программирование, Pycharm, Новичкам, Основы, Интерпретатор, Windows, Длиннопост

Теперь исполним первую команду! Введи:

print('Hello world')

Результат:

Hello world! Python, Python3, Программирование, Pycharm, Новичкам, Основы, Интерпретатор, Windows, Длиннопост

Да, она просто распечатала, то что в скобках, в кавычках на экран! Это выполнилась стандартная функция языка python — print(). Как видишь, здесь, в отличие от Си, например, для неё не нужно ничего присоединять, не нужно никак её обособлять (в этом конкретном случае), не нужно ничего ставить после неё.


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


Кстати, насчет арифметических операций. Ты можешь без зазрения совести совершать их прямо в функции print(). Попробуй, например, по порядку:

print(100 + 1)
print(42 / 7)
print(111111111 * 111111111)

На этом пока всё! Спасибо за внимание! Очень сложно писать первый пост в целом сообществе — не совсем понятен уровень читающих. Поэтому я решил посвятить его абсолютным новичкам. Надеюсь, не прогадал. :)


Спасибо за внимание!

Показать полностью 4

Не видит камеру в PyCharm(openCV)

twishar в Программирование на python
Не видит камеру в PyCharm(openCV) Python, OpenCV, Ошибка, Помощь, Ubuntu
Не видит камеру в PyCharm(openCV) Python, OpenCV, Ошибка, Помощь, Ubuntu
Не видит камеру в PyCharm(openCV) Python, OpenCV, Ошибка, Помощь, Ubuntu
Не видит камеру в PyCharm(openCV) Python, OpenCV, Ошибка, Помощь, Ubuntu

Пробовал сделать пару hello world приложений но столкнулся с проблемой видимости камеры, с изображениями cv2 работает нормально.

Коменты для минусов оставлю внутри

Буду благодарен за любую информацию!)

Программирование на Python. 1-й видеоурок. Установка оболочки

Beremoriss в Программирование на python

В прошлом посте https://m.pikabu.ru/story/videouroki_python_4287213

я спрашивал стоит ли мне переводить и озвучивать ролики Баки Роберста по Питону. На меня подписалось 4 человека да и пост не был заминусован, поэтому выкладываю 1-й урок, если не закидаете тапками, буду озвучивать дальше.

Официальный сайт, где можно скачать Python: https://www.python.org/

Моя история: опыт изучения программирования

d051a в Программирование на python

Привет дорогое сообщество pikabu!


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


В настоящий момент я проживаю свой 33 год в этом мире. И половину из этих лет меня восхищали художники в компьютером мире - программисты. Всегда хотелось самому научиться «писать код». И не важно что это будет: сайт, программа или небольшой скрипт. Но так уж получилось, в силу тех или иных причин, мечта всегда откладывалась в дальний ящик. В институте нам преподавали программирование на Паскаль и Делфи. Но то ли не было понимания на тот момент, или желания и большой тяги к изучению, - обучение не задалось! С трудом сдавались лабораторные работы, эта куча открывающихся и закрывающихся фигурных скобок, непонятные конструкции, компиляция кода, исправление ошибок, снова компиляция... Все это отталкивало, подрывало веру в себя, в свои силы. В голове всегда крутилась мысль «программирование наверное не мое...». Тогда ещё не было многочисленных интернет-ресурсов, онлайн-курсов, интернет у большинства был «по карточкам» и войти в программирование была та ещё задача, если ты особо то и не понимаешь для чего тебе это нужно и в каком направлении двигаться. И вот, спустя может быть пару лет, у меня вновь появилось желание попробовать. Я пошёл в книжный магазин и накупил различных самоучителей по языку Basic. Сейчас уже и не вспомню почему тогда мой выбор остановился именно на этом языке программирования. Открыв любую книгу все начиналось как всегда «за здравие»: ну это вроде бы мне понятно, ну это ясно, ну это я знаю... Я пытался начать писать свой первый условный «калькулятор», радовался своим первым успехам, радовался тому, как достаточно легко и просто все у меня вроде бы получается. Но неизменно наступал момент, когда я переходил к новой главе книги, которую можно описать примерно так: «Итак, вы написали своё первое приложение(калькулятор), а теперь мы создадим свою первую нейтронную сеть!». То есть, каждый раз появлялась огромная пропасть, которую я не мог преодолеть. Желание освоить все и сразу играло со мной злую шутку. Мне казалось, что я знаю материал, но в реальности мои знания были поверхностными. И в определённый момент пробелов в знаниях языка становилось так много, что преодолеть пропасть непонимания следующей главы не представлялось возможным. Сложно было преодолевать первые неудачи-препятствия. В дополнение к этому наверное лень, отсутствие должной мотивации, непонимание того где и как я смогу применить полученные знания в очередной раз поставили крест на моих попытках научиться программировать. И вот, полтора года тому назад я сделал третью попытку. К этому меня подтолкнул пример коллеги по работе, который самостоятельно освоил связку php+MySQL и автоматизировал несколько бизнес-процессов на нашей и своей прошлой работе. Его код был не то чтобы ужасен, но он работал и приносил пользу людям. И я задал себе вопрос: «если он смог, чем я хуже?». В этот раз к выбору языка программирования я подошёл более ответственно. Мне не очень понравился вариант с web-ориентированным PHP. Хотелось чего-то простого, понятного, красивого, развивающегося, достаточно современного, с максимальной широтой направлений для последующего применения. Так мы с другим моим коллегой остановили свой выбор на Python и начали вместе его изучать! Python мне сразу понравился своей понятностью, лаконичностью и чистотой кода, кучей готовых библиотек и «батареек» на все случаи жизни. Python не ограничивает написание когда на основе только лишь классов(к примеру) - можешь писать как тебе нравится, и это тоже подкупало. Я прочитал кучу статей об изучении Python, где все сводилось к изучению книг Луца и Саммерфилда. Но слава богу я пошёл другим путём. Дело в том, что труды этих авторов сродни библии. В этих книгах все слишком серьезно и основательно для изучения, - они больше похожи на справочники, чем на учебные пособия. Путём «проб и ошибок» я подобрал себе другие книги и учебные материалы по Python, которые мне больше подошли. Но самое главное нашёл бесплатный онлайн-ресурс, где по каждой теме даются лишь необходимые для изучения основы и по 10-15 задач для закрепления материала раздела. Данный ресурс не позволял мне убежать вперёд, пока я не изучу материалы предыдущего раздела. Задачи этого курса относятся к так называемому «спортивному(олимпиадному) программированию». Да, они не решают каких либо реальных задач, с которыми в реальности приходится сталкиваться программистам. Но они позволяют освоить синтаксис и основные конструкции языка. То, что мне было нужно! В общем, спустя год моей борьбы с языком и с собой(лень, прокрастинация итд итп), с перерывами и остановками, но я наконец то закончил этот курс! Несколько раз сталкиваясь со сложными(для меня на тот момент) задачами я даже бросал изучение, но мысль о незаконченном деле не давала мне покоя и я вновь возвращался к прохождению курса. Хотя, наверное, хватило бы и 2-3х месяцев усиленной и целенаправленной работы, а то и того меньше при наличии свободного времени. Это где-то 130 задач на работу с основными типами данных(строки, числа, множества, списки, словари). Параллельно читал книги и другие материалы, установил приложение с Python на iPad и программировал по дороге в метро. Это наверно даже не треть того, что необходимо знать полноценному программисту на Python. Но это позволило мне начать делать свои первые реальные проекты: например спарсить данные с веб-страницы, открыть pdf документ-найти все используемые слова и перевести их через api яндекс-переводчика и так далее.

Сейчас я пытаюсь изучать фреймворк Django. Даётся с трудом. Пока что освоил базовые вещи для работы с моделями, формами и шаблонами. Но это позволило мне сделать свой первый web-проект на Django+bootstrap, который позволяет вести реестр адресатов(отправителей), создавать шаблоны конвертов на основе документов word и собственно печатать эти самые конверты.

Сейчас моя цель(если хотите мечта) к которой я хочу прийти - это создание небольшого портала(социальная сеть) для одного (скажем так) оффлайнового сообщества.

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

1. Дорогу осилит идущий.

2. Не так страшен черт как его малюют.

3. Курочка по зернышку клюет.

4. Не боги горшки обжигают.

Главное поставить себе цель, целенаправленно идти к ней маленькими шагами и все обязательно получится и приложится!


Вот собственно и вся моя история. Надеюсь она кого-нибудь сподвигнет начать программировать: автоматизировать рутинные задачи, создать свой первый web-сайт, игру и в последствии, возможно стать полноценным разработчиком и получить свою первую работу! Для меня это уже скорее хобби и приложение к основной работе... хотя может ещё не все потеряно в мои 33 года? :)


Что хотелось бы ещё добавить: найдите себе компаньона, с которым вы могли бы вместе изучать язык программирования. Лично мне это очень помогало: всегда можно обсудить какие-то непонятные моменты, на определенных этапах присутствует «дух соперничества» и вообще вместе веселее. Будет совсем идеально если вы найдете ментора - того человека, который уже прошёл этот путь и как учитель может подсказать вам непонятные моменты.


От себя хочу добавить, что готов оказать помощь всем желающим, кто хотел бы изучить Python или Django. С радостью поделюсь хорошими электронными материалами по изучению Python(книги, видеокурсы), подскажу толковые веб-ресурсы и расскажу как изучал я, а также помогу на уровне своей компетенции в этих вопросах :) Быть может тут найдутся те, кто знает html+css+jscript и хотел бы освоить бэкэнд на Python - я думаю мы могли бы найти общий язык :)


Буду безумно признателен, если найдётся такой человек(ментор), который уже прошёл свой путь и поможет мне постичь азы web-разработки на фреймворке Django!

Показать полностью

Истории

question2107 в Программирование на python

Доброго дня всем. Я очень надеюсь, что ни сообщество, ни админ @rissy не будут против этого поста.

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

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

Python, Delphi, C++ - уровень чуть выше "Hello, World!".

И вот стоит ли изначально кроптеть над конкретным языком, скажем, прорешивая примеры из книг, или есть более качественный путь самообучения? И какая вероятность работать без "корочки"?

Всем заранее спасибо за ответы.


Как писать красивый код с PEP 8. Часть #2

iCleverer в Программирование на python

Первая часть: https://m.pikabu.ru/story/kak_pisat_krasivyiy_kod_s_pep_8_ch...

Как писать красивый код с PEP 8. Часть #2 Python, Перевод, Длиннопост, Realpython, Pytranslate
Отступы

«Должен быть один - и желательно только один - очевидный способ сделать это» (с) Дзен Python


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


Рассмотрим следующий пример:

Как писать красивый код с PEP 8. Часть #2 Python, Перевод, Длиннопост, Realpython, Pytranslate

Оператор print с отступом позволяет Python знать, что его следует выполнять только в том случае, если оператор if возвращает True. Тот же отступ применяется в Python, чтобы понять какой код выполнять при вызове функции или какой код принадлежит данному классу.


Ключевыми правилами отступления, изложенными в PEP 8, являются:


- Используйте 4 последовательных пробела для обозначения отступа.

- Предпочтительнее использовать пробелы, чем табуляцию.


Табуляция VS Пробелы


Как упоминалось выше, вы должны использовать пробелы вместо табуляции при отступе кода. Вы можете настроить параметры в текстовом редакторе так, чтобы при нажатии клавиши Tab выводилось 4 пробела вместо символа табуляции.


Если вы используете Python 2 и использовали комбинацию табуляции и пробелов для отступа в своем коде, вы не увидите ошибок при попытке его запустить. Чтобы помочь вам проверить согласованность, вы можете добавить флаг -t при запуске кода Python 2 из командной строки. Интерпретатор выдаст предупреждения, если вы не согласны с использованием табуляции и пробелов:


$ python2 -t code.py

Результат: Непоследовательное использование табуляции и пробелов в отступе


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

$ python2 -tt code.py

Как писать красивый код с PEP 8. Часть #2 Python, Перевод, Длиннопост, Realpython, Pytranslate

Ошибка табуляции: Непоследовательное использование табуляции и пробелов в отступе

Python 3 не позволяет смешивать символы табуляции и пробелы. Поэтому, если вы используете Python 3, эти ошибки выдаются автоматически:

$ python3 code.py

Как писать красивый код с PEP 8. Часть #2 Python, Перевод, Длиннопост, Realpython, Pytranslate

Ошибка табуляции: Непоследовательное использование табуляции и пробелов в отступе


Вы можете написать код Python с помощью табуляции или пробелов, обозначающих отступ. Однако если вы используете Python 3, вы должны соответствовать своему выбору. В противном случае ваш код не будет работать. PEP 8 рекомендует всегда использовать 4 последовательных пробела для обозначения отступа.

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


Первый из них это выравнивание блока с отступом по открывающему разделителю:

Как писать красивый код с PEP 8. Часть #2 Python, Перевод, Длиннопост, Realpython, Pytranslate

Иногда вы можете обнаружить, что для выравнивания с начальным разделителем требуется всего 4 пробела. Это часто происходит в том случае, если операторы, занимающие несколько строк, такие как if, пробел и открывающая скобка, составляют 4 символа. В этом случае может быть трудно определить, где начинается блок вложенного кода внутри оператора if:

Как писать красивый код с PEP 8. Часть #2 Python, Перевод, Длиннопост, Realpython, Pytranslate

В этом случае PEP 8 предоставляет две альтернативы для улучшения читаемости:

1. Добавьте комментарий после окончательного условия. Из-за подсветки синтаксиса в большинстве редакторов это отделяет условия от вложенного кода:

Как писать красивый код с PEP 8. Часть #2 Python, Перевод, Длиннопост, Realpython, Pytranslate

2. Добавьте дополнительный отступ на продолжение строки:

Как писать красивый код с PEP 8. Часть #2 Python, Перевод, Длиннопост, Realpython, Pytranslate

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

Как писать красивый код с PEP 8. Часть #2 Python, Перевод, Длиннопост, Realpython, Pytranslate

Примечание. Если вы используете висячий отступ, в первой строке не должно быть никаких аргументов. Следующий пример не соответствует PEP 8:ы

Как писать красивый код с PEP 8. Часть #2 Python, Перевод, Длиннопост, Realpython, Pytranslate

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

Как писать красивый код с PEP 8. Часть #2 Python, Перевод, Длиннопост, Realpython, Pytranslate

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

Как писать красивый код с PEP 8. Часть #2 Python, Перевод, Длиннопост, Realpython, Pytranslate

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

Где ставить закрывающую скобку

Продолжения строк позволяют разбивать строки внутри круглых,  квадратных  или фигурных скобках.  Забыть о закрывающей скобке очень легко, но важно поместить ее куда-нибудь осмысленно. В противном случае, это может запутать читателя. PEP 8 предоставляет две опции для положения закрывающей скобки в подразумеваемых продолжениях строки:


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

Как писать красивый код с PEP 8. Часть #2 Python, Перевод, Длиннопост, Realpython, Pytranslate

2. Выровняйте закрывающую фигурную скобку с первым символом строки, которая начинает конструкцию:

Как писать красивый код с PEP 8. Часть #2 Python, Перевод, Длиннопост, Realpython, Pytranslate

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

Комментарии
«Если реализацию сложно объяснить, это плохая идея». (с) Дзен Python


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


Вот несколько ключевых моментов, которые следует помнить при добавлении комментариев в код:


1. Ограничьте длину строки комментариев и строк документации до 72 символов.


2. Используйте предложения, начинающиеся с заглавной буквы.

3. Не забудьте обновить комментарии, если вы измените свой код.

Блок комментариев

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


PEP 8 предусматривает следующие правила для написания комментариев к блоку:


1. Отступ блока комментариев должен быть на том же уровне, что и код, который они описывают.

2. Начните каждую строку с #, за которым следует один пробел.

3. Разделите абзацы строкой, содержащей один #.

Вот блочный комментарий, объясняющий функцию цикла for. Обратите внимание, что предложение переносится на новую строку, чтобы сохранить ограничение в 79 символов:

Как писать красивый код с PEP 8. Часть #2 Python, Перевод, Длиннопост, Realpython, Pytranslate

Иногда, если код очень технический, тогда необходимо использовать более одного абзаца в комментарии блока:

Как писать красивый код с PEP 8. Часть #2 Python, Перевод, Длиннопост, Realpython, Pytranslate

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


Однострочные комментарии

Однострочные комментарии объясняют одно утверждение в куске кода. Они полезны, чтобы напомнить вам или объяснить другим, почему необходима определенная строка кода. Вот что говорит о них PEP 8:


1. Используйте однострочные комментарии экономно.


2. Напишите однострочный комментарии в той же строке, что и утверждение, к которому они относятся.


3. Отделяйте однострочные комментарии двумя или более пробелами от оператора.


4. Начните встроенные комментарии с # и одного пробела, как блочные комментарии.

5. Не используйте их, чтобы объяснить очевидное.


Ниже приведен пример однострочного комментария:

Как писать красивый код с PEP 8. Часть #2 Python, Перевод, Длиннопост, Realpython, Pytranslate

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

Как писать красивый код с PEP 8. Часть #2 Python, Перевод, Длиннопост, Realpython, Pytranslate

Здесь комментарий дает дополнительную информацию. Однако использование x в качестве имени переменной для ФИО студента является плохой практикой. Такой комментарий не нужен, если вы переименуете переменную:

Как писать красивый код с PEP 8. Часть #2 Python, Перевод, Длиннопост, Realpython, Pytranslate

Наконец, однострочные комментарии, подобные этим, являются плохой практикой, так как они содержат очевидный и беспорядочный код:

Как писать красивый код с PEP 8. Часть #2 Python, Перевод, Длиннопост, Realpython, Pytranslate

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

Докуменирующие строки

Докуменирующие строки - это строки, заключенные в двойные (" " ") или одинарные (' ' ') кавычки, которые ставятся в первой строке любой функции, класса, метода или модуля. Вы можете использовать их для объяснения и документирования конкретного блока кода. Существует целый PEP, PEP 257, который охватывает документирующие строки.

Наиболее важные правила, применяемые к этим видам строк:

1. Окружите документирующие строки тремя двойными кавычками с каждой стороны:  """Это строка документации""".


2. Напишите их для всех общедоступных модулей, функций, классов и методов.


3. Поместите """, который завершает многострочную строку документации, на закрывающуюся строку:

Как писать красивый код с PEP 8. Часть #2 Python, Перевод, Длиннопост, Realpython, Pytranslate

Для однострочных строк документации, поставьте """ на той же строке:

Как писать красивый код с PEP 8. Часть #2 Python, Перевод, Длиннопост, Realpython, Pytranslate

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

Оригинал статьи: https://realpython.com/python-pep8/

Все права принадлежат авторам статьи (команде Real Python).

Мною лишь переведена и адаптирована статья. Не тяну на звание отличного переводчика, но стараюсь сделать все возможное для хорошего перевода.

Спасибо за внимание!


P.S. Прощу прощения за задержку, выдалась тяжелая сессия :)
P.S.S. Приветствуется адекватная критика и пожелания на следующий перевод.

Показать полностью 20

Как я изучал(изучаю фреймворк Django). Личный опыт.

d051a в Программирование на python

Все что далее, - мой личный опыт изучения фреймворка Django. Может быть пригодится таким же новичкам в программировании как и я.


Что нужно знать (необходимый МИНИМУМ) относительно Python:

-Ввод и вывод данных

-Условия

-Вычисления

-Цикл for

-Строки

-Цикл while

-Списки

-Функции и рекурсия

-Словари

-Работа с модулями и функциями (создание, импортирование, вызов...)

-Основы регулярных выражений

-pip


В настоящее время, актуальной версией является Django 2.0. Но я советую начать изучение с версии 1.11. Почему именно так:

1. По Django 2.0 мало различных материалов на русском языке. Для 1.11 материалов достаточно.

2. Django 2.0 и 1.11 очень похожи, но в 2.0 сделали упрощённый синтаксис маршрутизации URL. Из-за этого могут возникнуть сложности на начальном этапе, если пытаться обучаться по материалам основанным на 1.11 версии.

3. Большинство готовых приложений и расширений до сих пор поддерживают только 1.11 версию и не поддерживают 2.

4. Расширенная поддержка версии 1.11LTS заканчивается в 2020 году, а 2.2LTS пока не видно.


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


I. -НАЧАЛО ("копипастим" свой первый проект):

ЦЕЛИ:

-понять как работает фреймворк(установка, как создается проект, архитектура, как взаимодействуют его основные компоненты - urls, модели, шаблоны, views)

1. Проходим туториал на Django-girls.

Ссылка: tutorial.djangogirls.org/ru

Шаг за шагом копипастим и пытаемся понять что вообще происходит.

Чему научит:

-Основы основ.

-Основы работы в консоли Linux

-Установка Python

-Создание и работа в виртуальном окружении Python.

-Установка Django

-Основы основ Django (urls, модели, шаблоны, views)

Альтернативный вариант (более короткий):

Учебник официальная документация (docs.djangoproject.com/en/1.11 - раздел FirstSteps). Или перевод документации с портала djbook.ru

ссылка: djbook.ru/rel1.9/

Версия 1.9 а не 1.11, но в этом нет ничего страшного.


2. Цикл лекций "Web-технологии. Разработка на DJANGO" от Mail.ru

ссылка: https://www.youtube.com/playlist?list=PLrCZzMib1e9qZwq95WVmG...

Если не интересны основы-основ про web-разработку (уже знаете или задача быстро освоить Django), тогда начинаем смотреть с "9. Web-технологии. MVC фреймворки | Технострим" и дальше.

Чему научит:

-Основам web-разработки

-Архитектуре и принципам взаимодействия компонентов, основам Django


3. Книга "Django: практика создания Web-сайтов на Python" Владимир Александрович Дронов:

ссылка: сами кУпите или найдёте.

Читаем главы с 1 по 7. Главу 2 опционально можете пропустить, если знакомы с основами Python.

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

Чему научит:

-Пониманию основ MVC

-Через примеры кода начнет приходить понимание, как все работает.


ИТОГ:

-Через копипасту проекта в общем виде начали понимать как все устроено и работает

-Через лекции MAIL.ru узнали как работают web-приложения, как выглядит архитектура типичного web-приложения(взаимодействие бекенда-фронтэнда, работа протоколов, общая архитектура), узнали место Django в этой архитектуре

-Через книгу более детально познакомились с паттерном проектирования MVC (что такое модель, контроллер, представление), через примеры кода начали понимать как это может работать.


II. ПРОДОЛЖЕНИЕ НАЧАЛА(продолжаем "копипастить"):

1. Ищем курс "iTBursa Python&Django". Продажу курса уже закрыли (скорее всего видимо потому, что курс попал в открытый доступ). В курсе есть основы Python и Django. Плюсом идут основы: html/css, bootstrap web, http, databases, linux, shell, git/github, nginx, deployment.

Продолжаем копипастить уже по этому курсу, но теперь самостоятельно выполняем "Контрольные задания"(или не выполняем). В принципе этот курс мог бы заменить все вышеперечисленное. Но так как каждый человек воспринимает информацию по разному, ИМХО лучше усвоится информация, полученная из разных (по типу и виду подачи информации) источников.

Дополнительно: курс itvdn-Django от Антона Мазуна

2. Продолжаем читать и перечитывать Дронова

3. Изучаем официальную документацию или перевод документации 1.9(djbook.ru)

ИТОГ:

-На этом этапе уже должно быть освоено достаточное количество материалов для написания своего собственного приложения.


II. КОНЦА НЕ ВИДНО(создаём свой собственный проект):

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


Теперь отправляемся в свободное плавание на просторы интернета. Теперь уже сами ищем статьи, видео, гайды, бестпрактис. Продолжаем читать Дронова и переходим на актуальную версию Django 2.x

Дополнительно можно начать читать:

-Django подробное руководство. Адриан Головатый. Джейкоб Каплан-Мосс. Книга очень старая (2010), многое изменилось, но общие принципы остались те же.

-Tango with Django. Многие советуют эту книгу.

Вот ещё парочка:

-Web Development with Django cookbook

-Django unleashed


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


ЗЫ. Кстати, в комментах к моему предыдущему посту (Моя история: опыт изучения программирования) и по почте многие высказывали мысль о создании канала в Телеграмм по данной тематике. Такой канал я создал. Не знаю можно ли ссылку(или нет). Называется python_noobs(PythonNoobs). Сейчас там 12 человек(в основном пикабушники с предыдущего поста - всем кому рассылал свою подборку материалов). Создан чисто для новичков. На канале обмениваемся опытом изучение Python и смежных технологий, делимся ссылками на полезные материалы(статьи, видео, гайды, курсы...), собираем команду для совместных проектов и просто общаемся, чтобы не прокрастинировать :)

Показать полностью

Базы данных в формате вопрос-ответ для тренировки чат бота

li.tevezz в Программирование на python

Этот вопрос узко-направленный. Для тех кто занимается нейросетями. Давайте делиться базами данных, чтобы научить бота понимать троллинг, шутки, опечатки. Для этого нужна база данных настоящих переписок людей в соцсетях. В качестве затравки http://panchenko.me/data/
Вот еще интересная статья https://habrahabr.ru/company/dca/blog/274027/ там тоже есть ссылка на базу данных с твиттера. Ищу больных этой идеей в хорошем смысле. Возможно написать парсер, который мониторит переписки на разных сайтах, пополняя базу. Идея такая чтобы сделать открытый корпус разговорных диалогов на русском языке

Базы данных в формате вопрос-ответ для тренировки чат бота Программирование, Искусственный интеллект, Боты, Python

email: docplanetasite@gmail.com
skype: ernest_faizullin

telegram, wire: erniesto77

Пикабушникам — по монитору за идею. Итоги конкурса Пикабу и LG UltraWide

specials спoнсорский пост
Пикабушникам — по монитору за идею. Итоги конкурса Пикабу и LG UltraWide Длиннопост

Здравствуйте! Сразу хотим извиниться, что немного задержали объявление итогов. Но у нас есть небольшое оправдание: на конкурс пришло… 1250 историй. ТЫСЯЧА ДВЕСТИ ПЯТЬДЕСЯТ.


И нам, Пикабу, вместе с нашими партнерами из LG нужно было их прочитать и выбрать троих счастливчиков. Хороших историй было очень много. Поэтому, если вы не выиграли, – это не значит, что ваша идея использования UltraWide-монитора хуже. Просто подарка всего три.


Условия конкурса и сам проект можно посмотреть здесь.

А пока вот идеи победителей, которые получат по монитору LG 29WK600.


*барабанная дробь*


Первый победитель — @hired!

За идею верстать на UltraWide глянцевый (!) деревенский журнал

Пикабушникам — по монитору за идею. Итоги конкурса Пикабу и LG UltraWide Длиннопост

Изображение автора истории

«Привет! Я уверен, что этот монитор может помогать людям найти себя. И сейчас я расскажу как...

Четыре года назад я окончил МГУ и решил, что надо что-то менять. Менять окружение. Сказано — сделано. Я собрал вещи и переехал в станицу за полторы тысячи километров от столицы, где я обучался. Здесь в 350 раз меньше живет людей, и становится обидно, когда прогресс проходит мимо них. Я собрался с силами и открыл первый глянцевый деревенский журнал, в котором рассказывается про эту малую родину. В нем описываются судьбы людей, которые даже в маленькой станице нашли силы совершенствовать себя и мир. Идея многим понравилась, и сейчас журнал оброс небольшой командой, которой не хватает хорошего оборудования как этот монитор, который мы сами не смогли бы себе позволить. Он помог бы делать нам главное дело — внушать через журнал (который мы на нем бы могли делать) людям, что у них все получится. Ведь даже глянцевый журнал в крошечной станице — это реальность. И можете не сомневаться, что это пойдет всем нам на пользу. Счастья вам!»


Второй победитель — студент-геолог! (ник на Пикабу не указал)

За идею моделировать на UltraWide залежи месторождения нефти

Пикабушникам — по монитору за идею. Итоги конкурса Пикабу и LG UltraWide Длиннопост

Изображение автора истории

«Итак, представьте. Вы геолог, ну или студент-геолог. Вам ставят задачу смоделировать 3Д-залежи месторождения. Для этого нам понадобится: проанализировать огромное количество карт, пару сотен скважин, столько же сейсмокаротажек плюс накидать пару эксель-файлов с неимоверным объемом данных по этим же скважинам. У вас один ноутбук, вам неудобно. Вы находите дряхленький монитор, который немного упрощает вам задачу, но не то чтобы сильно, так как этот старый квадратный динозавр постоянно мерцает. Но на него можно вывести пару нужных карт и таблицы. Теперь на основном экране ноутбука открывается 3-4 специальные программы для работы и моделирования, но всех нужных программ и карт одновременно тебе не видно, чтобы ты мог работать с меньшей погрешностью. НО ЧТО ЕЩЕ! Чтобы работать, нужна музыка, но объем работы слишком большой и уже нужен сериальчик, чтобы не сойти с ума. А места на рабочем пространстве уже нет, поэтому ты берешь телефон и страдаешь с тремя экранами, но пытаешься выполнить всегда свою задачу. Пока не появляется задача взять в руки бумажные документы, тогда под ними ты уже теряешь свой телефон с сериалом. Но новый больше форматный монитор может выручить в таком темпе работы. В него сможет вместиться достаточное количество нужного для работы ПО и карт, тогда ноутбука хватит для всего экселя, да и что уж там, сериальчик тоже станет реально вместить одним из блоков, а телефон убрать вообще на дальнюю полку. Будут не страшны ни одни дедлайны, так как с таким комфортом ты геолог (я) или студент-геолог (тоже я) будешь успевать в срок, что поможет развитию твоей науки и нефтегазовой отрасли».


Третий победитель — врач-радиолог МРТ (ник на Пикабу не указал)

За идею использовать UltraWide в медицине для описания снимков МРТ

Пикабушникам — по монитору за идею. Итоги конкурса Пикабу и LG UltraWide Длиннопост

Изображение автора истории

«Здравствуйте! Я врач-радиолог МРТ, занимаюсь описанием снимков МРТ-исследований. Для нас вопрос качества вывода изображений стоит особенным образом. Все врачи сталкиваются с этой проблемой, и каждый решает как может: чаще делают 2-3 монитора, я знаю человека, который сделал у себя дома 5 мониторов на стенде. Это связано с тем, что необходимо вывести следующие экраны: word для заключений, просмотр файлов сканирования dicom в нескольких плоскостях, предыдущее сканирование пациента (еще 2 экрана) и переписка между врачами. Причем качество и цветопередача должна быть соответствующие. Смены часто длинные, до 24 часов и, соответственно, нужна хорошая частота экрана, чтобы не уставали глаза. Для своих целей я лично купил iMac 27, и его уже не хватает! Для вашей компании я бы посоветовал протестировать на врачах, так как это будет выход из данной непростой ситуации с обложениями мониторами».


Спасибо всем-всем за такое активное участие и классные истории!

В ближайшее время с победителями свяжется организатор конкурса и расскажет, как можно получит монитор.


Маленький тизер: уже в июне на Пикабу будут другие конкурсы с призами (так что советуем не отключать рекламу :D).

Показать полностью 3
Отличная работа, все прочитано!