Да, только это разные конструкции. Вы привели тернарный оператор, который работает совсем иначе. А автор писал вообще про другое. В его примере вообще цикл. Мой пример в тему, ваш — нет. А про циклы я уже наприводил кучу примеров на разных языках немного выше
Честное слово, лучше бы не приводили. У меня от PHP ни одного приятного впечатления никогда и не было.
Речь не о том, нравится или не нравится, а о том, что дело не в питоне, а в типизации (не прямо, но косвенно). О чем я и толкую.
При чем тут вообще типизация, речь про область видимости объекта. После С/С++/js/добавьте по вкусу ожидаешь, что синтаксический блок создает новую область видимости, а в python это не так.
Окей, этот же код привожу на JS, переменная при выходе из блока не уничтожается:
if (a==1){
b = 1;
} else {
b = 2;
}
document.write(b);
Еще раз повторяю свой вопрос: вы уверены, что не путаете блок кода с областью видимости? Я уже на трех языках продемонстрировал, что область видимости и блок кода — это разные вещи.
Еще один пример JS (такой же пример используется в статье, но на питоне):
for (var i = 0; i < 9; i++) {
document.write(i);
}
document.write(i);
Смотрите ка! Тут тоже переменная i не уничтожается при выходе из блока. Python, PHP, JS (все с динамической типизацией) — везде одинаково работает. Как мне еще это написать, чтоб вы поняли наконец, что блок кода и область видимости — разные вещи, и что питон тут не причем?
Этот же код НЕ будет работать на C++:
for (int i = 0; i < 9; i++ ){
cout << i;
}
cout << i;
Угадаете, почему? Потому что для языков с динамической типизацией подобное поведение считается нормальным, хоть и не обязательным. И говорить, что это недостаток питона — это непонимание вопроса.
Человек после C/C++/Pascal/других языков привыкает к явному объявлению начала жизни переменной внутри блока, в котором она объявлена.
Ну поздравляю, вы сейчас говорите про статическую типизацию. Только причем тут питон? У него динамическая.
писать на питоне — значит бороться с рефлекторной перестраховкой «сначала объяви local, только потом используй»
Опять таки, вы уверены, что это «недостаток питона», а не особенность динамической типизации? Я пример с пхп зачем приводил?
А еще, вы уверены, что вы не путаете блок отступов и область видимости? Потому что это разные вещи. У функций, например, область видимости своя, а у циклов или условий — нет.
Так и скажите, я не люблю динамическую типизацию. А то получается, что лыжи плохие, потому что не едут по асфальту.
Мы тут область видимости блоков обсуждаем, а не идиоматичность кода. Вы бы еще сказали, что переменные не должны называться a и b, а должны иметь осмысленное имя.
Я правильно понял, парсер логов, в котором IO занимает меньшую часть работы? В память что ли весь загружается? На порядок-другой, то бишь минимум в 10-100 раз быстрее. До смерти любопытственно взглянуть на питоновскую версию.
Уж с коллегами то вполне можно договориться использовать один мессенджер
Прикольно, я пропустил момент, как мы с темы удобства мессенджеров и вендорлока переключились на тему менеджмента организаций. Но раз вы настаиваете!
Хотел бы я, чтоб все было так просто. Взять и договориться со всеми организациями, поставщиками, вендорами и агентствами чтоб они любезно пересели на наш мессенджер. Вы бы еще предложили в 21 веке ходить в рекламное агентство ножками, чтоб макеты утверждать и пальцами в монитор дизайнеру тыкать))
Во-первых, в десктопной экосистеме локальное сохранение документов является вполне себе штатным workflow и не только для мессенджеров.
У вас в колхозе, может быть, так и есть, но не все работают в колхозах. Я максимально пользуюсь ссылками, облаками и ненавижу, когда меня заставляют скачивать файлы. Особенно, когда коллективно в разных мессенджерах прослушиваем множество аудио-файлов, утверждая финальную версию автоответчика для техподдержки с коллегами из разных мессенджеров. Ссылка на какой-нибудь дропбокс позволит тыкнуть и сразу послушать. Не надо сохранять миллион не утвержденных версий в папку, и потом разбираться в этой помойке, чтоб переслать некоторые версии разным коллегам. Если вы привыкли жрать кактус, не значит что все привыкли.
Или присылают мне в телегу скриншот и просят помочь по нему. Прислали по вашим заветам не ссылкой, а картинкой. Ссылку то мне не получить, чтоб открыть его в браузере, поэтому в ходе объяснения я должен постоянно прокручивать вверх. И чем дольше мы общаемся, тем дальше скриншот поднимается. Очевидно теперь я вынужден и его тоже сохранить в папочку-помойку, хотя он мне НЕ нужен на компе, потому что это 10-минутная задача, которых у меня за день может быть миллион. Поэтому я требую присылать мне ссылки, которые открыл в браузере, и потом так же закрыл.
Любые перечисленные вами способы сложнее и неудобнее, чем просто тыкнуть по ссылке, это факт. Поэтому не надо тут за эргономику ссылок задвигать. Ссылки — универсальный, удобный, гибкий способ. Все остальное — колхоз, костыли и вендорлок.
без папочек-помоек — через буфер обмена
Ничего подобного, никакой десктоп-мессенджер вам не даст через буфер обмена передать аудио или видео из своего вендорлочного облака. Это вы ловко врёте просто.
То, что аська этого не умеет — это проблема аськи
Ого! Я где-то говорил, что аська чего-то не умеет? Аська в этом плане умеет и не умеет примерно то же, что и телега с вибером.
О существовании в андроидной экосистеме
А как андроид экосистема связаны с моим ПК? Если я буду подобные вещи решать через смартфон, мой КПД снизится на 1000%. Может для вас такой КПД и нормально, но для нас неприемлемо.
Все эти проблемы решились бы, если бы мессенджеры не просто загружали контент в свое облако, но и давали возможность получить на него ссылку. Но так никто не делает, чтобы был вендорлок.
Эргономика такого решения ужасна. По ссылкам не видно превью, группировки в галерею, размера, типа медии и ещё кучу всего что я хочу знать немедленно, а не после клика и мучительного ожидания, пока прогрузится браузер.
Ужасная, говорите? Подскажите, пожалуйста, как мне присланную картинку в вайбер или телеграм, переслать, скажем в аську или вк? ВК хотя бы предоставляет ссылку на эту картинку в собственном облаке. А тут как? Нужно сохранить к себе в какую-то временную папочку, потом в этой папочке-помойке найти этот файл и отправить в другой месенджер. Речь о десктоп версии, если что. Меня уже одолели, присылая картинки и видосики, которые нельзя переслать в другой мессенджер.
людям слишком сложно понять, что такое UIN, и зачем его использовать, когда тут поставил вибер, и он тебя сам познакомил со всеми, с кем надо, и с кем не надо.
Я этим не пользовался никогда, ибо непонятно, как соблюдать порядок в последовательности вкладок, чтобы помнить их номера, когда они постоянно меняются. Но возможно это вам поможет:
как в айдии быстро переключаться по вкладкам, кода их более 5?
А что вы имеете в виду под быстрым переключением?
Я обычно тыкаю Ctrl+Tab и дальше кнопками вверх/вниз выбираю нужную.
Плюс есть история открываемых вкладок по Ctr+E
Ну и куча кнопок по поиску нужных вкладок, мест, классов, методов, файлов, кнопки навигации назад/вперед (полезно, когда блуждаете по стэку вызовов туда сюда)
Тогда я не понял мысль. В JetBrains же тоже есть это меню, тоже его использую именно в таких случаях, вызывается на дабл шифт. У меня даже в браузере такое меню есть (Vivaldi), вызывается на F2. Скриншот
Окей, этот же код привожу на JS, переменная при выходе из блока не уничтожается:
Еще раз повторяю свой вопрос: вы уверены, что не путаете блок кода с областью видимости? Я уже на трех языках продемонстрировал, что область видимости и блок кода — это разные вещи.
Еще один пример JS (такой же пример используется в статье, но на питоне):
Смотрите ка! Тут тоже переменная i не уничтожается при выходе из блока. Python, PHP, JS (все с динамической типизацией) — везде одинаково работает. Как мне еще это написать, чтоб вы поняли наконец, что блок кода и область видимости — разные вещи, и что питон тут не причем?
Этот же код НЕ будет работать на C++:
Угадаете, почему? Потому что для языков с динамической типизацией подобное поведение считается нормальным, хоть и не обязательным. И говорить, что это недостаток питона — это непонимание вопроса.
1. недостаток
2. питона
?
Ну поздравляю, вы сейчас говорите про статическую типизацию. Только причем тут питон? У него динамическая.
Опять таки, вы уверены, что это «недостаток питона», а не особенность динамической типизации? Я пример с пхп зачем приводил?
А еще, вы уверены, что вы не путаете блок отступов и область видимости? Потому что это разные вещи. У функций, например, область видимости своя, а у циклов или условий — нет.
Так и скажите, я не люблю динамическую типизацию. А то получается, что лыжи плохие, потому что не едут по асфальту.
Мы тут область видимости блоков обсуждаем, а не идиоматичность кода. Вы бы еще сказали, что переменные не должны называться a и b, а должны иметь осмысленное имя.
Либо автор сам не понимает, о чем пишет, либо выражаться надо яснее.
Да хоть в пхп попробуйте, там так же работает:
Хотел бы я, чтоб все было так просто. Взять и договориться со всеми организациями, поставщиками, вендорами и агентствами чтоб они любезно пересели на наш мессенджер. Вы бы еще предложили в 21 веке ходить в рекламное агентство ножками, чтоб макеты утверждать и пальцами в монитор дизайнеру тыкать))
У вас в колхозе, может быть, так и есть, но не все работают в колхозах. Я максимально пользуюсь ссылками, облаками и ненавижу, когда меня заставляют скачивать файлы. Особенно, когда коллективно в разных мессенджерах прослушиваем множество аудио-файлов, утверждая финальную версию автоответчика для техподдержки с коллегами из разных мессенджеров. Ссылка на какой-нибудь дропбокс позволит тыкнуть и сразу послушать. Не надо сохранять миллион не утвержденных версий в папку, и потом разбираться в этой помойке, чтоб переслать некоторые версии разным коллегам. Если вы привыкли жрать кактус, не значит что все привыкли.
Или присылают мне в телегу скриншот и просят помочь по нему. Прислали по вашим заветам не ссылкой, а картинкой. Ссылку то мне не получить, чтоб открыть его в браузере, поэтому в ходе объяснения я должен постоянно прокручивать вверх. И чем дольше мы общаемся, тем дальше скриншот поднимается. Очевидно теперь я вынужден и его тоже сохранить в папочку-помойку, хотя он мне НЕ нужен на компе, потому что это 10-минутная задача, которых у меня за день может быть миллион. Поэтому я требую присылать мне ссылки, которые открыл в браузере, и потом так же закрыл.
Любые перечисленные вами способы сложнее и неудобнее, чем просто тыкнуть по ссылке, это факт. Поэтому не надо тут за эргономику ссылок задвигать. Ссылки — универсальный, удобный, гибкий способ. Все остальное — колхоз, костыли и вендорлок.
Ничего подобного, никакой десктоп-мессенджер вам не даст через буфер обмена передать аудио или видео из своего вендорлочного облака. Это вы ловко врёте просто.
Ого! Я где-то говорил, что аська чего-то не умеет? Аська в этом плане умеет и не умеет примерно то же, что и телега с вибером.
А как андроид экосистема связаны с моим ПК? Если я буду подобные вещи решать через смартфон, мой КПД снизится на 1000%. Может для вас такой КПД и нормально, но для нас неприемлемо.
Все эти проблемы решились бы, если бы мессенджеры не просто загружали контент в свое облако, но и давали возможность получить на него ссылку. Но так никто не делает, чтобы был вендорлок.
Сказал он, закусывая кактусом
Ужасная, говорите? Подскажите, пожалуйста, как мне присланную картинку в вайбер или телеграм, переслать, скажем в аську или вк? ВК хотя бы предоставляет ссылку на эту картинку в собственном облаке. А тут как? Нужно сохранить к себе в какую-то временную папочку, потом в этой папочке-помойке найти этот файл и отправить в другой месенджер. Речь о десктоп версии, если что. Меня уже одолели, присылая картинки и видосики, которые нельзя переслать в другой мессенджер.
людям слишком сложно понять, что такое UIN, и зачем его использовать, когда тут поставил вибер, и он тебя сам познакомил со всеми, с кем надо, и с кем не надо.
Это то, что вы имели в виду?
Я обычно тыкаю Ctrl+Tab и дальше кнопками вверх/вниз выбираю нужную.
Плюс есть история открываемых вкладок по Ctr+E
Ну и куча кнопок по поиску нужных вкладок, мест, классов, методов, файлов, кнопки навигации назад/вперед (полезно, когда блуждаете по стэку вызовов туда сюда)
Скриншот
Каких команд? Ничего не понял. Уточню, я не пользователь VSCode.