Комментарии 29
«if re.match('\w-\w', args.letters):»
неправильно же! вы проверяете что есть минус в строке, а если там будет, например, abcd-efgh?
вы будете делать только a-c!
неправильно же! вы проверяете что есть минус в строке, а если там будет, например, abcd-efgh?
вы будете делать только a-c!
а по опросу — хотелось бы осмотр главных плюсов, ради которых надо с пы2 на пы3 переходить. вот не вижу пока, даже под лупой.
скорость? разницы нет.
стабильность? разницы нет.
да вообще — разница? разницы ж нет…
скорость? разницы нет.
стабильность? разницы нет.
да вообще — разница? разницы ж нет…
По-моему, он местами чуточку логичнее.
Простой пример:
в py2 print — это что? По идее функция, но вызывается без ()
в py3 логично делается вызов print()
Да и не только это. Но не могу я с вами на эту тему спорить, ибо python2 я не знаю. Я просто начал изучать python, а зачем вникать в суть устаревающего языка, если всё равно идёт медленная миграция на python3.
Да и с точки зрения финансовой, будет повальный переход на py3, потребуются спецы, а большинство будет только py2 хорошо знать, ведь зачем учить новое, если есть старое?
Простой пример:
в py2 print — это что? По идее функция, но вызывается без ()
в py3 логично делается вызов print()
Да и не только это. Но не могу я с вами на эту тему спорить, ибо python2 я не знаю. Я просто начал изучать python, а зачем вникать в суть устаревающего языка, если всё равно идёт медленная миграция на python3.
Да и с точки зрения финансовой, будет повальный переход на py3, потребуются спецы, а большинство будет только py2 хорошо знать, ведь зачем учить новое, если есть старое?
<удалено>
Хах, думал это новый пост — в ленте выдало.
Хах, думал это новый пост — в ленте выдало.
Да, я это заметил, когда проводил финальную вёрстку, но исправлять не стал. Я знаю, как вызывать правильно, а неправильно — это домашняя работа для хабрачитателей.
В принципе, я это даже в самой статье подчеркнул.
Правильно будет так:
В принципе, я это даже в самой статье подчеркнул.
Правильно будет так:
if re.match('^\w-\w$', args.letters):
то есть можно попросить при этом "_-w"? ;) и каков эффект будет? ;)
Хм. Думал, что \w — это любая буква, а \W — любая не-буква. Но ваш вариант даёт True.
Буду копать. Видимо есть различие в регулярных выражениях для перла и питона.
Регулярные я в перле учил когда-то.
Буду копать. Видимо есть различие в регулярных выражениях для перла и питона.
Регулярные я в перле учил когда-то.
вот это — самый правильный вариант :)
Т.е. a-A не должно матчиться?
дык выше, в хелпе: print(«Error using letters. Only A-Z or a-z available, not A-z.»)
Нет. Об этом даже в статье написано. Правда, в коде:
Хотя программа и способна отрисовать не только буквы, но и цифры, спец-символы и т.д., но тогда требуется её доработка.
print("Error using letters. Only A-Z or a-z available, not A-z.")
Хотя программа и способна отрисовать не только буквы, но и цифры, спец-символы и т.д., но тогда требуется её доработка.
\w — это [a-zA-Z0-9_]. Причем это везде. И в перле тоже.
а вам надо [a-zA-Z] либо [:alpha:]
Если 0-9 надо — то [:alnum:]
en.wikipedia.org/wiki/Regular_expression#POSIX_character_classes
а вам надо [a-zA-Z] либо [:alpha:]
Если 0-9 надо — то [:alnum:]
en.wikipedia.org/wiki/Regular_expression#POSIX_character_classes
Ну давно это было. Подзабылось.
Защиты от дурака в программе особо-то и не реализовано…
Защиты от дурака в программе особо-то и не реализовано…
[:alpha:] и \p{L} есть только альтернативной реализации re
По поводу опроса.
Народ, вы молодцы, что голосуете, но хоть какие-нибудь пожелания-то оставляйте!
Народ, вы молодцы, что голосуете, но хоть какие-нибудь пожелания-то оставляйте!
Картинок не хватает.
Можете считать меня дитём необразованным, но мне в статьях катострофически не хватает картинок, за которые можно зацепиться взглядом.
Дело в том, что в наш век информации в интернете очень много и становится ещё больше. И при наличии хорошей, годной статьи, бывает взглянешь на обилие буков и грустно становится. Я всеми фибрами ощущаю нехватку правильного способа переварить всю нужную мне информацию. Наличие картинок, скриншотов, диаграм, схем — в-общем каких-либо графических изображений ключевых моментов статьи, как мне думается, может поправить положение.
Таково моё мнение.
Можете считать меня дитём необразованным, но мне в статьях катострофически не хватает картинок, за которые можно зацепиться взглядом.
Дело в том, что в наш век информации в интернете очень много и становится ещё больше. И при наличии хорошей, годной статьи, бывает взглянешь на обилие буков и грустно становится. Я всеми фибрами ощущаю нехватку правильного способа переварить всю нужную мне информацию. Наличие картинок, скриншотов, диаграм, схем — в-общем каких-либо графических изображений ключевых моментов статьи, как мне думается, может поправить положение.
Таково моё мнение.
Причем я уверен, что гуру питона наверняка найдут ещё кучу возможностей для оптимизации. Но зачем? Всё работает, код достаточно прост и лаконичен. Прям глаз радуется.
Это молодость, это пройдет. :)
def saveWrap(dir='.', letter='A', font=«Arial», size=40, align=Qt.AlignCenter):
png_file = dir + "/" + font + "_" + letter + "_" + str(size) + ".png"
save(png_file, letter, font, size, align)
имя в нестандартной нотации. www.python.org/dev/peps/pep-0008/#method-names-and-instance-variables
Складывание кучи строк некрасиво. docs.python.org/3.3/library/string.html?highlight=string#format-examples
Функция совсем не нужна. Можно всю логику перенести в save
# net = buildNetwork(64 * 64, 8 * 8, 5, hiddenclass=TanhLayer)
# net = buildNetwork(64 * 64, 32 * 32, 8 * 8, 5)
net = buildNetwork(64 * 64, 5, hiddenclass=LinearLayer)
Перед публикацией вычитывайте код. Коментированные строки излишни.
print («img.load({0}) failed!».format(png_file))
Вначале подумал что атавизм из второго питона. Потому что данная строка будет там работать точно так же. Если ставите пробел между принтом и вызовом то ставьте его везде.
learn_path = os.path.abspath(args.learn_data_dir) + "/"
Попробуйте без слэша.
list_dir = os.listdir(dir_name)
Гляньте глоб docs.python.org/3.3/library/glob.html?highlight=glob.glob#glob.glob
Спасибо за библиотеку работы с картинками, а то PIL у меня под 7-64 заводится с бубнами.
1) про стандартные нотации был не в курсе, я же изучаю. Но про PEP8 слышал, код писал в sublime-text с модулем PEP8 autoformat. Редактор мне много всего подчеркивал и исправлял. А такая нотация именования у меня сохранилась из Qt.
Кстати, если обратите внимание, то в самой библиотеке PyBrain народ не придерживается этого правила.
2) сложение строк некрасиво, согласен
3) внедрение функционала генерации имени в саму функцию
4)
Строки оставлены специально. Если прочитать текст статьи, то там есть
5) про print: рефлекторная опечатка, если посмотрите код, то там где как — где с пробелом, где без.
6)
7) гляну, спасибо. В книге по питону мне такого пока не попадалось.
И в заключение хочу добавить — большую часть замечаний можно было устранить просто написав в личку.
Но с другой стороны, кто-то ещё научится на моём примере.
Спасибо за развёрнутый, а главное — конструктивный комментарий.
Кстати, если обратите внимание, то в самой библиотеке PyBrain народ не придерживается этого правила.
2) сложение строк некрасиво, согласен
3) внедрение функционала генерации имени в саму функцию
save()
считаю неправильным архитектурно, ибо функция отвечает за сохранение. А вот saveWrap()
надо было назвать generate_filename_and_save_it()
.4)
Перед публикацией вычитывайте код. Коментированные строки излишни.
Строки оставлены специально. Если прочитать текст статьи, то там есть
Те, кому интересно, могут выбрать другие варианты, исправив/раскомментировав вызов функции buildNetwork() в файле brain.py.
5) про print: рефлекторная опечатка, если посмотрите код, то там где как — где с пробелом, где без.
6)
Попробуйте без слэша.Пробовал. Программа будет работать некорректно. Надо тогда и функцию
loadData()
в нескольких местах править. Здесь уже лень сработала. Зачем править несколько мест, если можно поправить в одном.7) гляну, спасибо. В книге по питону мне такого пока не попадалось.
И в заключение хочу добавить — большую часть замечаний можно было устранить просто написав в личку.
Но с другой стороны, кто-то ещё научится на моём примере.
Спасибо за развёрнутый, а главное — конструктивный комментарий.
Pillow is the «friendly» PIL fork by Alex Clark and Contributors. PIL is the Python Imaging Library by Fredrik Lundh and Contributors.
Pillow >= 2.0.0 supports Python versions: 2.6, 2.7, 3.2, 3.3;
pypi.python.org/pypi/Pillow/2.0.0
Pillow >= 2.0.0 supports Python versions: 2.6, 2.7, 3.2, 3.3;
pypi.python.org/pypi/Pillow/2.0.0
Что вам интереснее больше? На чём сконцентрироваться при написании следующей статьи?
Было бы интересно почитать статью про использование SpeechRecognition, а конкретно Snowboy hotword detection.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Простой классификатор на PyBrain и PyQt4 (Python3)