Найдены дубликаты

+18

a=3; b=5

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

первое время больше парило что циклы и т.п. отделяются табуляцией без {}

раскрыть ветку 43
+11
А меня как раз это вообще не парило, ещё со школы привык табуляцией выделять блоки. Скорее при частой смене языков парит разная сигнатура стандартных функций - например, len(...) или .length(), map(...) или .map(...) и т.п. А ещё когда к проекту раз в пол года возвращаешься, без типизации сложновато.
раскрыть ветку 1
+6

никто не мешает юзать добровольную типизацию, гуглить `python typing`

+5

a,b=3,5 пишут питонисты)

раскрыть ветку 2
0
А пайлинтер высказывает недовольство
раскрыть ветку 1
+3

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

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

Или те же циклы. Если бы я в школе начинал изучать Питон, а не Паскаль, то местные while и for (который на самом деле работает как "foreach") пришлись бы очень кстати, т.к. они максимально логичны. Но я уже привык к си-шным for, while и foreach, и оформлять цикл перечисления в while мне неудобно. Я 2 раза вешал свой курсач в бесконечный цикл, потому что забывал увеличивать счетчик в конце while...

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

раскрыть ветку 3
+3

А в чем проблема сделать цикл со счетчиком через for?

for i in range(10):
   ...

раскрыть ветку 1
+2

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

+2

Мой стандартный аргумент - в тех же плюсах, после того как поставишь {} - ты все равно внутри отступы проставляешь соответственно уровню вложенности, иначе год нечитабелен. То есть остается убрать ненужный атрибут (скобки), и вот мы логически приходим к стилю питона/руби

раскрыть ветку 33
+1

Аргумент вида - если после туалета все равно мыть руки, то зачем тебе туалетная бумага?

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

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

раскрыть ветку 32
+6

Есть целая туча языков без ;

swift kotlin ruby coffee haskell crystal ...

раскрыть ветку 3
+4

Просто автор шутки только что прочитал про синтаксис Python и решил выпендриться.

0

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

-6
...и все они brainfuck.
ещё комментарий
+3

Питону по барабану на точку с запятой. Кстати JavaScript тоже умеет как с точкой запятой так и без неё.

раскрыть ветку 2
+4
В некоторых случаях JS не очень умеет без нее
+3

JS как политическая проститутка. Тут без ; работаю, тут не работаю.

+2
Котлин?
0

Бэйсик призрительно смотрит на автора

+1

хз. ниасилил суть картинки, но по опыту - питон после с++ - как лсд после героина

раскрыть ветку 23
+21

А я про наркотики не понял, не увлекаюсь, а вот картинку понимаю)

раскрыть ветку 3
+1

А я не понял ни про наркоту, ни картинку(не смотрел мульт).

раскрыть ветку 1
0

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

+3

скорее как кокс или мет (потому что все легко и быстро) после галоперидола (дурдом в голове)

раскрыть ветку 1
-1

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

0

точку с запятой ставить не надо ок да

раскрыть ветку 16
0

ага, вместо этого нужно пустые строки считать. Вот уж удовольствие

раскрыть ветку 12
-6

аа, ну такто, точказапяточие терминирует стейтмент, которые есть - кампаунд, экспрешн, декларейшн, джамп, селекшн, итерейшн, и в этом плане всё логично,

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

раскрыть ветку 2
ещё комментарии
0

яннп

раскрыть ветку 4
+3
Я ничего не понял, что вы здесь сократили.
ещё комментарии
Похожие посты
27

Основные магические методы в python

Пора в python изучить magic и создать классы с магическими методами. С вводной частью вы можете ознакомиться ЗДЕСЬ.

В прошлом посте мы разобрались с методами __new__ и __init__.

Далее разберемся с методом __del__.

__del__ - метод, который срабатывает при удалении объекта.
Основные магические методы в python Python, Метод, Программирование, IT, Питон, Длиннопост

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

Основные магические методы в python Python, Метод, Программирование, IT, Питон, Длиннопост
Основные магические методы в python Python, Метод, Программирование, IT, Питон, Длиннопост

Также есть базовые методы, такие как ==, !=, >= и т.д.

__eq__(self, other) - Определяет поведение оператора равенства, ==.
__ne__(self, other) - Определяет поведение оператора неравенства, !=.
__lt__(self, other) - Определяет поведение оператора меньше, <.
__gt__(self, other) - Определяет поведение оператора больше, >.
__le__(self, other) - Определяет поведение оператора меньше или равно, <=.
__ge__(self, other) - Определяет поведение оператора больше или равно, >=.

Напишем класс Number, который будет принимать число и напишем два метода __eq__ и __gt__ для сравнения.

Основные магические методы в python Python, Метод, Программирование, IT, Питон, Длиннопост
Основные магические методы в python Python, Метод, Программирование, IT, Питон, Длиннопост

В Python есть унарные операторы.

__pos__(self) - Определяет поведение для унарного плюса (+some_object)
__neg__(self) - Определяет поведение для отрицания(-some_object)
__abs__(self) - Определяет поведение для встроенной функции abs().
__invert__(self) - Определяет поведение для инвертирования оператором ~. Для объяснения что он делает смотри статью в Википедии о бинарных операторах.
__round__(self, n) - Определяет поведение для встроенной функции round(). n это число знаков после запятой, до которого округлить.
__floor__(self) - Определяет поведение для math.floor(), то есть, округления до ближайшего меньшего целого.
__ceil__(self) - Определяет поведение для math.ceil(), то есть, округления до ближайшего большего целого.
__trunc__(self) - Определяет поведение для math.trunc(), то есть, обрезания до целого.
Основные магические методы в python Python, Метод, Программирование, IT, Питон, Длиннопост
Основные магические методы в python Python, Метод, Программирование, IT, Питон, Длиннопост
Основные магические методы в python Python, Метод, Программирование, IT, Питон, Длиннопост

Также есть обычные арифметические операторы, +, - ит

__add__(self, other) - Сложение.
__sub__(self, other) - Вычитание.
__mul__(self, other) - Умножение.
__floordiv__(self, other) - Целочисленное деление, оператор //.
__div__(self, other) - Деление, оператор /.
__truediv__(self, other) - Правильное деление. Заметьте, что это работает только когда используется from __future__ import division.
__mod__(self, other) - Остаток от деления, оператор %.
__divmod__(self, other) - Определяет поведение для встроенной функции divmod().
__pow__ - Возведение в степень, оператор **.
__lshift__(self, other) - Двоичный сдвиг влево, оператор <<.
__rshift__(self, other) - Двоичный сдвиг вправо, оператор >>.
__and__(self, other) - Двоичное И, оператор &.
__or__(self, other) - Двоичное ИЛИ, оператор |.
__xor__(self, other) - Двоичный xor, оператор ^.

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

Основные магические методы в python Python, Метод, Программирование, IT, Питон, Длиннопост

Есть также деление, умножение, сложение и т.д. с присваиванием.

__iadd__(self, other) - Сложение с присваиванием.
__isub__(self, other) - Вычитание с присваиванием.
__imul__(self, other) - Умножение с присваиванием.
__ifloordiv__(self, other) - Целочисленное деление с присваиванием, оператор //=.
__idiv__(self, other) - Деление с присваиванием, оператор /=.
__itruediv__(self, other) - Правильное деление с присваиванием. Заметьте, что работает только если используется from __future__ import division.
__imod_(self, other) - Остаток от деления с присваиванием, оператор %=.
__ipow__ - Возведение в степерь с присваиванием, оператор **=.
__ilshift__(self, other) - Двоичный сдвиг влево с присваиванием, оператор <<=.
__irshift__(self, other) - Двоичный сдвиг вправо с присваиванием, оператор >>=.
__iand__(self, other) - Двоичное И с присваиванием, оператор &=.
__ior__(self, other) - Двоичное ИЛИ с присваиванием, оператор |=.
__ixor__(self, other) - Двоичный xor с присваиванием, оператор ^=.
Основные магические методы в python Python, Метод, Программирование, IT, Питон, Длиннопост

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

Основные магические методы в python Python, Метод, Программирование, IT, Питон, Длиннопост
Весь код, написанный с вами будет ЗДЕСЬ.
Показать полностью 8
8870

Коронабизнес

По работе попросили купить бюджетные ноутбуки сотрудникам, по цене до 600-700 долларов.

Все мои поставщики говорят - ничего нормального по характеристикам нет. Будет может быть к январю 2021 и то не факт.

Раскупили всё для дистанционной учёбы\работы.

Коронабизнес IT, IT юмор, Bussines, Бизнес, Коронавирус, Ноутбук, Удаленная работа, 2020
361

Python | Для изучающих программирование. Часть 1

Приветствую, прошлый пост сохранили более 70 раз, это очень круто.

Также, спасибо, подписчикам, вас почти 10, цифра весьма скромная, но две недели назад я вообще не думал, что на меня кто то будет подписан, мотивирует.

Еще я завел канал в телеге - https://t.me/tobeprog , там будет о самих методах обучения и обзоры на материалы. Здесь же, будет еженедельный дайджест.


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


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


Что не так с планами изучения программирования. Что значит программировать, и почему многие не понимают этот процесс

Научиться программировать


1. Самые основы: Автоматизация рутинных задач с помощью Python, Свейгарт + миллион туториалов


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


Сама книга породила огромную волну материалов по "автоматизации" на python. Если вбить на ютубе "python automation", то темы роликов будут от работы в Excel до знакомств в Tinder.


Это может показаться смешным, но когда код сам играет в динозаврика в Google Chrome(это одно из популярных видео), новичок ощущает какую то "крутость" возможных программ. Этот, чисто психологический момент на ранних этапах весьма мотивирует.


По идее, должны быть еще какие то курсы/книги с которых стоит начать. Я посмотрел несколько популярных, и особых преимуществ перед книгой Свейгарта не увидел. Те же темы, те же основы, но нет такого упора на практику. Хорошо иметь несколько источников, но посоветовать что то конкретное не могу, тут наверно стоит смотреть на саму подачу автора/лектора и выбирать что ближе.


2. После основ:


https://stepik.org/course/512 - очень хороший курс по питону, для тех кто прошел основы. Стоит посмотреть хотя бы начало - там небольшой ввод в само устройство языка, стек вызовов, пространство имен, области видимости и прочее.


https://stepik.org/course/4519 курс в котором учат гуглить, искать на StackOverflow, читать документацию и юзать библиотеки. Это тот самый подход, о котором не особо пишут в книжках, однако, это именно про такую - трушную практику.


На этом этапе, встанет вопрос со сложными проектами. Я уже писал про build-your-own-x - репозиторий с кучей туториалов сложных проектов - Для изучающих программирование. Часть 0. Где найти идеи и реализации сложных проектов


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


3. Когда пора на собес:


https://www.youtube.com/watch?v=5V7XG1mGiHc - курс по python от Computer Science Center.

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


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


Есть более новая запись курса, но эта - 2015 года, мне нравится больше.

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