Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Динамичный карточный батлер с PVE и PVP-боями онлайн! Собери коллекцию карточных героев, построй свою боевую колоду и вступай в бой с другими игроками.

Cards out!

Карточные, Ролевые, Стратегии

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • Animalrescueed Animalrescueed 36 постов
  • Oskanov Oskanov 7 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
33
BalaganChick
BalaganChick
3 года назад
Программирование на python

Правильное именование в python⁠⁠

Правильное именование в python Программирование, Обучение, IT, Образование, Учеба, Программист, Python, Урок, Функция, Класс, Переменные, Длиннопост

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

Для чего это нужно?

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

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

Что нужно знать, чтобы правильно наименовать переменные?

Для правильного нейминга нужно изучить следующие вещи:

1. Английский, чтобы правильно интерпретировать значения объектов в python

2. Понять что на самом деле делает функция или класс ( чтобы это понять используйте уточку )

Правильное именование в python Программирование, Обучение, IT, Образование, Учеба, Программист, Python, Урок, Функция, Класс, Переменные, Длиннопост

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

Перед тем, как перейти к описанию переменных, функций и классов по отдельности, нужно понять стиль кода в python:


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

pow_numbers(number_1, number_2), split_string = input().split()

Классы - первая буква - заглавная, остальные в нижнем регистре ( CamelCase ). Если класс состоит из более чем 1-го слова, то каждое последующее слово начинается с заглавной буквы

EmployeeData, AdminSettings

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

CONSTANT, MY_CONSTANT, MY_LONG_CONSTANT

Исключения - Так как исключения являются классами => к исключениям применяется стиль именования классов. Однако вы можете добавить Error в конце имени

ForbiddenError, FoundError

Переменные

Имена переменных ни в коем случае не должны пересекаться с названиями модулей ( math, string ), операторов ( and or not ) и других зарезервированных слов python ( add, sum ).

Функции и методы

Функция должна содержать в своем названии какое-то действие ( add, remove, set ) и функция должна делать ровно одно действие, то есть если вам нужно проделать над одним объектом два или более действий и у вас получается в названии что-то такое: pow_and_divide_numbers, то его необходимо переписать на две функции pow и devide.

Классы

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

UserEdit, UserDelete
Надеюсь было интересно и познавательно :)

Мои контакты:

Мой гитхаб с проектами - https://github.com/l-arkadiy-l

Мое портфолио - https://www.avito.ru/moskva/predlozheniya_uslug/repetitor_po_programmirovaniyu_python_2097917724

Показать полностью 1
[моё] Программирование Обучение IT Образование Учеба Программист Python Урок Функция Класс Переменные Длиннопост
39
37
kitaetz
9 лет назад
Программирование на python

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

Предполагается, что пост http://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 Программирование Python3 Длиннопост Цикл Ветвления Основы Переменные
27
37
GrandGrego
GrandGrego
9 лет назад

Поменять значения переменных без использования доп переменной...⁠⁠

Или за что я люблю пайтон/питон (нужное подчеркнуть)
Поменять значения переменных без использования доп переменной... Или за что я люблю пайтон/питон (нужное подчеркнуть)
C Python Код Программирование Переменные
31
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии