Python и организация перехода на метку
вот.
Не, не надо так, правда-правда не надо! А вообще
но зачем?
> Как её правильнее организовать?
ну лично мне она была нужна, потому что break(n) гвидо предлагает делать исключениями. И все свидетели pythonic way говорят, что break не нужен, а у самих даже фора нормального нет, с условиями. Просто потому что иногда для решения вычислительных задач хочется применить питон.
break(n) гвидо предлагает делать исключениями.Я бы предложил сделать его return-ом. Или генератором + any/all/next.
И все свидетели pythonic way говорят, что break не нужен, а у самих даже фора нормального нет, с условиями.for с условиями это while, чувак. break(n) не нужен.
Просто потому что иногда для решения вычислительных задач хочется применить питон.Я неоднократно применял питон для вычислительных задач, почему-то у меня таких желаний не возникало, особенно когда получалось нафигачить понтовый векторизованный код на нумпи. Я думаю, это потому, что твоё желание сделать break(n) тоже является примером XYproblem. Чтобы выяснить, правда ли это так, необходимо чтобы жаждущие гото таки рассказали что они хотят сделать.
слушай, я прекрасно знаю, как наговнокодить аналог на while или на exception. Это просто некрасиво.
слушай, я прекрасно знаю, как наговнокодить аналог на while или на exception. Это просто некрасиво.То, что ты пытаешься сделать, некрасиво. Язык как бы ненавязчиво тебе на это намекает.
Пример в студию или ГТФО.
class CrazyException(Exception):
pass
try:
while smth1:
while smth2:
if cond:
raise CrazyException
except CrazyException:
pass
лучше, чем
while smth1:
while smth2:
if cond:
break(2)
?
Или генератором + any/all/next.
именованный break - нормальное решение, а номерные лучше нафиг.
если у тебя возникает желание выходить ровно из двухх циклов, значит их можно вынести в отдельную функцию
break(n)давайте, призывайте макаронного монстра
с CrazyException решение устойчивее к изменениям, чем с break(2).То тебе сахара мало, ты ecxeption устойчивее, чем break.
---
A44: Ламеры в гамаке пусть в тапках трахаются --- это их проблемы.
Я в своём гамаке хочу полноценно трахаться на лыжах.
Тормозов захотелось? Уж лучше яву возьми, раз в семь-восемь быстрее будет.
---
A44: Ламеры в гамаке пусть в тапках трахаются --- это их проблемы.
Я в своём гамаке хочу полноценно трахаться на лыжах.
Ты всерьез утверждаешь, что этоЯ всерьёз утверждаю что то, что ты пытаешься сделать, скорее всего неправильно, ну, раз у тебя криво получается. И ты упорно отказываешься сказать, что ты пытаешься сделать.
Кстати, это уже второй раз на этой неделе когда я говорю о питоне и эксепшенах с людьми, и у них оказывается как будто есть такая странная идея, что можно обсуждать код чисто по его синтаксическим особенностям. Типа, хороший ли это код:
def foo:То есть, я не понимаю, что должно у человека в голове происходить, чтобы он ожидал что я могу сказать хороший это код или плохой не зная что иль кто есть foo и bar, чисто по синтаксису?..
try:
return bar
except:
log_exception
return None
@ 2013 год уже заканчивается скоро, а ты ещё в девяностых...
А что, в питоне появились продолжения?
---
"Верь сводке погоды, но доверяй --- интуиции.
Будь особенно бдителен, когда всё хорошо и нет поводов для тревоги."
Я всерьёз утверждаю что то, что ты пытаешься сделать, скорее всего неправильно, ну, раз у тебя криво получается. И ты упорно отказываешься сказать, что ты пытаешься сделать.Чуве, сообщение, которое ты процитировал - мой второй пост в теме и первый ответ тебе. От чего я упорно отказываюсь? Я всего лишь сказал, что break(n) - это просто синтаксический сахар, иногда удобный.
Тормозов захотелось? Уж лучше яву возьми, раз в семь-восемь быстрее будет.В семь-восемь раз быстрее, чем, скажем, NumPy? Ну-ну.
USE_LANGUAGES= c fortran
...
.include "../../math/blas/buildlink3.mk"
.include "../../math/lapack/buildlink3.mk"
То есть твой "NumPy" написан большей частью не на питоне.
---
"Неопределённая вера порождает дилетантские души.
А дилетантизм --- преступление перед обществом."
Это каким-то образом делает его не питон-библиотекой? Ты только сейчас узнал о существовании C extensions?
Да, это делает его не библиотекой численных методов,
а всего лишь обёрткой поверх BLAS и LAPACK.
> Ты только сейчас узнал о существовании C extensions?
Ты никогда не задумался над тем, что на яве пишут какие-нибудь Colt,
EJML и как там называется это поделие от Apache, а на питоне такого
вообще не делают, привязываясь к фортрановским библиотекам?
В яве, вроде как, JNI не отменяли.
---
"Неопределённая вера порождает дилетантские души.
А дилетантизм --- преступление перед обществом."
Да, это делает его не библиотекой численных методов,So what? Какая мне разница, как устроены внутренности вычислительной библиотеки, если она удобна и работает быстро?
а всего лишь обёрткой поверх BLAS и LAPACK.
Ты никогда не задумался над тем, что на яве пишут какие-нибудь Colt,Ты мне пытаешься доказать, что код на джаве в среднем быстрее кода на интерпретируемом языке без JIT-компиляции? Кэп.
EJML и как там называется это поделие от Apache, а на питоне такого
вообще не делают, привязываясь к фортрановским библиотекам?
В яве, вроде как, JNI не отменяли.
K> Тормозов захотелось? Уж лучше яву возьми, раз в семь-восемь быстрее будет.
> Ты мне пытаешься доказать, что код на джаве в среднем быстрее
> кода на интерпретируемом языке без JIT-компиляции?
А ты никогда не читаешь сообщения, на которые отвечаешь?
---
"Это глупость вообще, но мне это знакомая песня."
В общем иди расскажи всем, кто юзает NumPy/SciPy, что они идиоты, пусть срочно все переписывают на жаве.
> Что тебе не нравится в вычислительной программе на питоне,
> использующей С-расширения в ботлнеках?
Если эта программа не реализует вычислительный алгоритм, то она
не вычислительная, а так. По твоему же NumPy видно, что питон
не реализует вычислений, а присутствует, в самом лучшем случае,
для координации.
Но даже функции координации питон выполняет довольно плохо,
так как накладные расходы на вызов функции там ого-го какие,
что легко проверяется программой строчек на тридцать-сорок.
Поэтому, если использование питона не является самоцелью,
выигрыша от его использования в вычислениях никакого нет.
---
"Narrowness of experience leads to narrowness of imagination."
Ну и кто, если вычесть школьников и студентов, использует NumPy?
Ты путаешь людей, которым надо сделать лабораторную работу,
получить зачёт и забыть, с людьми, которые что-то на самом деле
вычисляют.
---
"Математик может говорить, что ему хочется,
но физик должен, хотя бы в какой-то мере, быть в здравом рассудке."
wget -O- http://mathtools.web.cern.ch/node/13 | grep -i numpy
Школьники
можешь вот лекцию послушать
Ну и кто, если вычесть школьников и студентов, использует NumPy?
http://www.johndcook.com/blog/2011/03/21/python-hpc/
At least in our shop [Argonne National Laboratory] we have three accepted languages for scientific computing.Кстати, в Java какой есть аналог Numpy?
In this order they are C/C++, Fortran in all its dialects, and Python.
You'll notice the absolute and total lack of Ruby, Perl, Java.
Есть наверное какие-то библиотеки для матричных вычислений, но
код будет выглядеть убого по сравнению с питоновским.
+ считать она быстрее LAPACK и BLAS не будет.
Да, NumPy обертка на фортрановскими функциями. Ну и что?
Update:
Вот еще пример, чувак далеко не школьник:
http://radimrehurek.com/2013/09/word2vec-in-python-part-two-...
Не ведитесь на толстый троллинг же, у кохтпы — лисп гойловного мозга, ему хочется поговорить о мощности языков программирования как таковых, а не о том, что с их помощью реально можно делать.
Оставить комментарий
5065584
Да-да, не кидайтесь камнями, но мне нужна именно такая или эквивалентная возможность в Python. Как её правильнее организовать?