The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Утверждено добавление в Python операторов для сопоставления с образцом, opennews (?), 09-Фев-21, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


4. "Утверждено добавление в Python операторов для сопоставления ..."  –18 +/
Сообщение от Аноним (4), 09-Фев-21, 21:26 
ой, ну хватит ныть, иди пиши на хрусте, ведь он идеален
Ответить | Правка | Наверх | Cообщить модератору

37. "Утверждено добавление в Python операторов для сопоставления ..."  +2 +/
Сообщение от Онаним (?), 09-Фев-21, 22:46 
Вы предложили мне ещё более замечательное творение, но я бы рекомендовал женить оба этих экземпляра друг на друге.
Ответить | Правка | Наверх | Cообщить модератору

46. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Dzen Python (ok), 09-Фев-21, 23:17 
...изыди, изыди, изыди...
Ответить | Правка | Наверх | Cообщить модератору

47. "Утверждено добавление в Python операторов для сопоставления ..."  +2 +/
Сообщение от Онаним (?), 09-Фев-21, 23:19 
> ...изыди, изыди, изыди...

Не изыду.
Сколько   пробелов     в       этом   комментарии?

Ответить | Правка | Наверх | Cообщить модератору

50. "Утверждено добавление в Python операторов для сопоставления ..."  –2 +/
Сообщение от Аноним (-), 09-Фев-21, 23:32 
> Сколько   пробелов     в       этом   комментарии?

Опеннетные "знотоки-погромисты-в-нотпаде", как всегда, на высоте ...

Ответить | Правка | Наверх | Cообщить модератору

86. "Утверждено добавление в Python операторов для сопоставления ..."  –1 +/
Сообщение от Аноним (86), 10-Фев-21, 04:13 
Имел я тут с полгода назад дело с знатоком-программистом в современной среде разработки (НЕ на питоне). Поменял в файле десять строк, а коммит выглядел так, словно весь файл заменили другими. Потому что у него, видите ли, среда разработки по умолчанию вместо отступов делает выравнивания. Те, кто пишет "в нотпаде", хотя бы понимают, что они делают.
Ответить | Правка | Наверх | Cообщить модератору

109. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Аноньимъ (ok), 10-Фев-21, 08:49 
Вы там наверное гит еще и пользуете, специалисты?

Ответить | Правка | Наверх | Cообщить модератору

145. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Онаним (?), 10-Фев-21, 10:16 
Не, ну это понятно - если пробелы на табы заменились или назад.
Вот только "не для питона" - это не фатал, а вот коду на пистоне - кирдык.
Ответить | Правка | К родителю #86 | Наверх | Cообщить модератору

166. "Утверждено добавление в Python операторов для сопоставления ..."  +1 +/
Сообщение от Аноним (166), 10-Фев-21, 11:23 
Не используй табы в коде на Python вообще.
Ответить | Правка | Наверх | Cообщить модератору

190. "Утверждено добавление в Python операторов для сопоставления ..."  –1 +/
Сообщение от RomanCh (ok), 10-Фев-21, 12:50 
Так лучше:
> Не используй ... Python вообще.
Ответить | Правка | Наверх | Cообщить модератору

226. "Утверждено добавление в Python операторов для сопоставления ..."  +/
Сообщение от Аноним (-), 10-Фев-21, 15:59 
> Имел я тут с полгода назад дело с знатоком-программистом в современной среде
> разработки (НЕ на питоне). Поменял в файле десять строк, а коммит
> выглядел так, словно весь файл заменили другими. Потому что у него,
> видите ли, среда разработки по умолчанию вместо отступов делает выравнивания. > Те, кто пишет "в нотпаде", хотя бы понимают, что они делают.

Пробелы внутри строки не считаются, о великий знаток.
"Современная среда разработки", самостоятельно выравнивающая код на off-side-rule ЯП (и этим меняющая логику поведения) - это вообще за гранью натягивания за уши совы на глобус. Потому что даже geany умеет в python-mode.

А так все хорошо, да.

Ответить | Правка | К родителю #86 | Наверх | Cообщить модератору

160. "Суки херят Python!!!"  –1 +/
Сообщение от Аноним (160), 10-Фев-21, 10:38 
У каждого языка свой стиль, Python имеет свои особенности, это очень компактный язык с причесаным ПОНЯТНЫМ, ПРОСТЫМ кодом и развитыми типами.

Ниже приведу 3 примера одного и того же кода:

1. Правильная, очень быстрая, простая и компактная, реализация на языке Python:


HTTP_CODES = {
    400: "Bad request",
    401: "Not allowed",
    403: "Not allowed",
    404: "Not allowed",
    418: "I'm a teapot"
}

# Просто вместо функции выбераем значение с словаря: HTTP_CODES.get(status, "Something else")
print(HTTP_CODES.get(status, "Something else"))

# Функции не надо вызывать, это не правильно и тормозит
def http_error(status):
    return HTTP_CODES.get(status, "Something else")


Кто здесь посмел сказать, что Python тормозной? Меряемся скоростью с asm, C, C++ !

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


def http_error(status):
    if status == 400:
        return "Bad request"
    elif status is in  (401, 403, 404):
        return "Not allowed"
    elif status == 418:
        return "I'm a teapot"
    else:
        return "Something else"

3. Предлагаемая, медленная, запутанная и раздутая, реализация на языке Python. Эта реализация коробит простой, понятный язык:


def http_error(status):
    match status:
        case 400:
            return "Bad request"
        case 401|403|404:
            return "Not allowed"
        case 418:
            return "I'm a teapot"
        case _:
            return "Something else"

Синтаксис языка очень важен. Ключевым элементом есть операторы ветвления (и цикла). Смени операторы ветвления и получишь совсем другой язык!

Python надо сообществу форкать!!!

Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

171. "Суки херят Python!!!"  –1 +/
Сообщение от Аноним (171), 10-Фев-21, 11:43 
> # Просто вместо функции выбераем значение с словаря: HTTP_CODES.get(status, "Something else")

А потом кто-то спрашивает, почему питонистов не считают за разработчиков.

> Синтаксис языка очень важен. Ключевым элементом есть операторы ветвления (и цикла). Смени операторы ветвления и получишь совсем другой язык!

Именно синтаксис питона и есть главная причина отсуствия в нем высокопроизводительных JIT-компиляторов.

Когда человек должен совать в словарь все что нужно для проверки, потому что if-else у него медленные... чувак тебе бы может быть немного в реальность вернуться и ощутить, что так быть вообще-то не должно.

> Рекомендуется для обучения детей

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

Ответить | Правка | Наверх | Cообщить модератору

184. "Суки херят Python!!!"  +/
Сообщение от Аноним (160), 10-Фев-21, 12:31 
> А потом кто-то спрашивает, почему питонистов не считают за разработчиков.

Программист на Python в 10 раз эффективнее и производительные чем программист на C.

Сложный проект быстрее сначала написать на Python и потом переписать на C, чем сразу писать на C.

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

> Именно синтаксис питона и есть главная причина отсуствия в нем высокопроизводительных JIT-компиляторов.

Нет, Python используют люди для которых важна безопасность и корректная работа с памятью. Именно по этому JIT в CPython не будет (исключение PyPy).

> Когда человек должен совать в словарь все что нужно для проверки

Придется мне, человеку, объяснить местным чувакам-дыбилам еще раз: для ветвления и проверок в Python есть конструкция операторов if elif else, а для выбора значения по ключу есть поддержка расширенной работы с типом словарь! https://www.askpython.com/python/python-switch-case-implemen... это особенность языка Python, не баг, не недостаток, а килер фича!!!

> Тут нужно 18+ пометку делать. Когда "ребёнок" научился запихнуть всё что угодно в словарь на динамически типизированном языке, то нормальный язык ему потом придется не учить, а переучиваться.

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

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

На школьной олимпиаде задачи рассчитаны на языки C, Pascal, а цель проверить интеллект ученика. Решение задачи на Python может занимать всего пол строки. Интеллект ребенка, знание алгоритмов, умение создавать алгоритмы программа на Python МОЖЕТ не отображать в полной мере. Использование полной мощи Python это десятикратное технологическое, а не интеллектуальное превосходство над ребенком пишущим на C.

Ответить | Правка | Наверх | Cообщить модератору

191. "Суки херят Python!!!"  –1 +/
Сообщение от RomanCh (ok), 10-Фев-21, 12:58 
> Программист на Python в 10 раз эффективнее и производительные чем программист на C.

Дражайший, я чуть не захлебнулся в вашем жире.

>  Использование полной мощи Python это десятикратное ...

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

Ответить | Правка | Наверх | Cообщить модератору

195. "Суки херят Python!!!"  +/
Сообщение от Аноним (160), 10-Фев-21, 13:12 
Я не говорил что в продакшн Python лучше чем бинарь.

Для написание черновика - Python идеален. Прототип можно использовать в реальном бою. Тормознутость Python это миф. В некоторых ситуациях код может получится быстрее С++. В целом может быть медленнее ~1.5 раза, но не 10 раз, как некоторые утверждают. CPython это код на C, а тормоза в логике программы.

Переписывать с Python на C надо по причине безопасности. Держать в системе скриптовый язык с ворохом скриптов не есть хорошо. Хотя за не имением финансирования, проект может годами работать и развиватся на Python.

Ответить | Правка | Наверх | Cообщить модератору

197. "Суки херят Python!!!"  +/
Сообщение от Аноним (160), 10-Фев-21, 13:15 
Переписывать на C стоит только идеальные проекты не требующие доработок!
Ответить | Правка | Наверх | Cообщить модератору

198. "Суки херят Python!!!"  +/
Сообщение от RomanCh (ok), 10-Фев-21, 13:17 
> Для написание черновика - Python идеален.

Ну да, а потом этот "черновик" быренько идёт в прод.

> Прототип можно использовать в реальном бою.

Да так он там и остаётся.

> Тормознутость Python это миф.

Ясно. Спасибо за ваше авторитетное мнение :))


Ответить | Правка | К родителю #195 | Наверх | Cообщить модератору

205. "Суки херят Python!!!"  +/
Сообщение от Аноним (205), 10-Фев-21, 14:41 
Меряемся у кого быстрее, вызываем 5 раз операцию выбора:

Код компелять CPython-3, запускать *.pyc


from datetime import datetime
begin=datetime.utcnow()
HTTP_CODES = {
    400: "Bad request",
    401: "Not allowed",
    403: "Not allowed",
    404: "Not allowed",
    418: "I'm a teapot"
}
for status in [400, 401, 403, 404, 418]:
    print(HTTP_CODES.get(status, "Something else"))
dt = datetime.utcnow() - begin
print(dt.time())

В PyPy может быть еще быстрее, но там JIT и его не рекомендую.

Жду оптимизированные простыни на asm, C, C++ и замеры скорости.

Ответить | Правка | Наверх | Cообщить модератору

209. "Суки херят Python!!!"  –1 +/
Сообщение от RomanCh (ok), 10-Фев-21, 14:51 
> Меряемся у кого ...

Ну, нормальные посоны всегда найдут чем померяться, это да.

> Жду оптимизированные простыни на asm, C, C++ и замеры скорости.

Синтетические примеры предлагаю отправлять в спортлото.

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

Ответить | Правка | Наверх | Cообщить модератору

227. "Суки херят Python!!!"  +2 +/
Сообщение от Аноним (227), 10-Фев-21, 16:08 
Фу какие поцики на опеннетах пошли, уже ссут даже на своих быстрых asm, C, C++ померятся скоростью с "тормозным" Python! Я детишек с rust даже не зову, они еще скорость не отростили.
Ответить | Правка | К родителю #209 | Наверх | Cообщить модератору

307. "Суки херят Python!!!"  +/
Сообщение от Ароним (?), 11-Фев-21, 10:06 
Компелять лучше python3 с опциями "-OO" и запускать *.pyo
pyo оптимизирован, а pyc не оптимизирован.
Ответить | Правка | Наверх | Cообщить модератору

232. "Суки херят Python!!!"  +/
Сообщение от SinoptikU (?), 10-Фев-21, 16:22 
Можно с PyInstaller или cxFreeze самодостаточное исполняемое приложение сделать. .
Ответить | Правка | К родителю #195 | Наверх | Cообщить модератору

321. "Суки херят Python!!!"  –1 +/
Сообщение от Аноним (-), 14-Фев-21, 06:41 
> Программист на Python в 10 раз эффективнее и производительные чем программист на C.

И как, много, допустим, операционок питонисты написали? Или там фирмварей ECU? А то лабораторные макеты на 1 раз - не единственная потребность человечества.

> Сложный проект быстрее сначала написать на Python и потом переписать на C,
> чем сразу писать на C.

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

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

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

Ответить | Правка | К родителю #184 | Наверх | Cообщить модератору

341. "Простити, уважаемые 'эффективные и производительные' програмист"  +/
Сообщение от Конечные пользователи (?), 17-Фев-21, 22:01 
> Программист на Python в 10 раз эффективнее и производительные чем программист на C.

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

Ответить | Правка | К родителю #184 | Наверх | Cообщить модератору

201. "Суки херят Python!!!"  +/
Сообщение от Онаним (?), 10-Фев-21, 14:09 
У меня даже в данном примитиве вытекают глаза от:
- значимых пробелов
- HTTP_CODES.get(...), неужели нельзя было сделать что-то типа HTTP_CODES[...]
- двоеточий в условиях
- is in
- 401|403|404
- case _: - это вообще ужас какой-то, неужели нельзя было default:
И это ведь на самом-самом примитиве.
Ответить | Правка | К родителю #160 | Наверх | Cообщить модератору

207. "Суки херят Python!!!"  +/
Сообщение от Аноним (205), 10-Фев-21, 14:48 
Где значимые пробелы?

HTTP_CODES={400:"Bad request",401:"Not allowed",403:"Not allowed",404:"Not allowed",418:"I'm a teapot"};status=400;print(HTTP_CODES.get(status,"Something else"))

Однострочник на питоне без пробелов!

Пробелы делают код красивим и удобочитаемым!

Ответить | Правка | Наверх | Cообщить модератору

247. "Суки херят Python!!!"  –1 +/
Сообщение от Онаним (?), 10-Фев-21, 19:30 
Покажи однострочник с условием, которое при выполнении условия выполняет более одной команды.

if (something) { doSomething; doSomethingElse; }

Ответить | Правка | Наверх | Cообщить модератору

256. "Суки херят Python!!!"  +1 +/
Сообщение от др. Аноним (?), 10-Фев-21, 20:35 
> Покажи однострочник с условием, которое при выполнении условия выполняет более одной команды.
> if (something) { doSomething; doSomethingElse; }

Не пались так сильно, "Знаток":

>>> if(True): x=100500;x+=1;print(x)

...
100501
>>> if(False): x=100500;x+=1;print(x)

...


Ответить | Правка | Наверх | Cообщить модератору

257. "Суки херят Python!!!"  –1 +/
Сообщение от Онаним (?), 10-Фев-21, 20:49 
Окей. Усложняем задачу.
if (conditionOne) { doOne; if (conditionTwo) { doTwo; doThree; }; doFour; } else { doFive };
---
Жду эксепшна "Error 418 I'm a teapot"
Ответить | Правка | Наверх | Cообщить модератору

259. "Суки херят Python!!!"  +1 +/
Сообщение от др. Аноним (?), 10-Фев-21, 21:30 
> Окей. Усложняем задачу.

"Сел в лужу - сделай вид, что принимаешь грязевую ванну"(с)
Не, в эти глупые игры играйте сами.
> if (conditionOne) { doOne; if (conditionTwo) { doTwo; doThree; }; doFour; }
> else { doFive };
> ---
> Жду эксепшна "Error 418 I'm a teapot"

А я жду, для начала, обоснования в практической нужности написания этого овнокода.
Нет, копрофилия за обоснование не катит.


Ответить | Правка | Наверх | Cообщить модератору

269. "Суки херят Python!!!"  –1 +/
Сообщение от Онаним (?), 10-Фев-21, 22:48 
>> Жду эксепшна "Error 418 I'm a teapot"
> А я жду, для начала, обоснования в практической нужности написания этого овнокода.

А вот и эксепшн собственно прилетел.

Ответить | Правка | Наверх | Cообщить модератору

286. "Суки херят Python!!!"  +2 +/
Сообщение от др. Аноним (?), 11-Фев-21, 01:07 
>>> Жду эксепшна "Error 418 I'm a teapot"
>> А я жду, для начала, обоснования в практической нужности написания этого овнокода.
> А вот и эксепшн собственно прилетел.

Рад, что Знатокам в луж^W ванну что-то там прилетело, а то у меня для них опять плохие новости:

> if (conditionOne) { doOne; if (conditionTwo) { doTwo; doThree; }; doFour; } else { doFive };


>>> cond1,cond2 = True,True; cond1 and (print(1), ( cond2 and (print(2),print(3)) ), print(4)) or print(5)

1
2
3
4
>>> cond1,cond2 = False,True; cond1 and (print(1), ( cond2 and (print(2),print(3)) ), print(4)) or print(5)

5
>>> cond1,cond2 = True,False; cond1 and (print(1), ( cond2 and (print(2),print(3)) ), print(4)) or print(5)1

4

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

Или опять "Нет, это тоже не считается!!! Усложняем задачу - сделай вот так-то, но на фонарном столбу и в противогазе!"?

Ответить | Правка | К родителю #269 | Наверх | Cообщить модератору

302. "Суки херят Python!!!"  +/
Сообщение от Онаним (?), 11-Фев-21, 09:13 
Не, всё нормально.
Вижу, что через задницу можно, спасибо за то, что таки потратили 5 минут написать.

Читабельность конечно как у питона.

Ответить | Правка | К родителю #286 | Наверх | Cообщить модератору

304. "Суки херят Python!!!"  +/
Сообщение от Онаним (?), 11-Фев-21, 09:53 
Ну вот самый простой пример - динамический вызов с блокировкой:

if (is_callable($action)) { $this->lock(...); if (!(($action)(...))) { $this->fault(...); }; $this->unlock(...); }

Нет смысла это делить на несколько строк.
Выносить в отдельный метод тоже смысла нет - action, lock, fault, unlock - токены, которые меняются постоянно, от раза к разу.
Были бы макросы - удобно бы зафигачилось на макросах, но это пых, а не плюсы :(

Ответить | Правка | К родителю #286 | Наверх | Cообщить модератору

258. "Суки херят Python!!!"  –1 +/
Сообщение от Онаним (?), 10-Фев-21, 20:52 
Или чуть даже попроще

if (conditionOne) { for (a = 0; a < 10; a++) if (conditionTwo) doTwo; } else { doThree; }

Ответить | Правка | К родителю #256 | Наверх | Cообщить модератору

233. "Суки херят Python!!!"  +/
Сообщение от SinoptikU (?), 10-Фев-21, 16:28 
>HTTP_CODES = {

    400: "Bad request",
    401: "Not allowed",
    403: "Not allowed",
    404: "Not allowed",
    418: "I'm a teapot"
}

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

Ответить | Правка | К родителю #160 | Наверх | Cообщить модератору

242. "Суки херят Python!!!"  +1 +/
Сообщение от Аноним (242), 10-Фев-21, 17:27 
Пусть импортируют копию (copy.deepcopy()) и изменяют только своей инстанс.
Ответить | Правка | Наверх | Cообщить модератору

78. "Утверждено добавление в Python операторов для сопоставления ..."  +1 +/
Сообщение от псевдонимус (?), 10-Фев-21, 02:17 
Сорта.
Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру