Это копия, сохраненная 3 февраля 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Прочитай шапку перед тем, как задать вопрос!
Поставить макось/линукс и не ебать мозг. Венда не приспособлена для разработки на языках официально не поддерживаемых студией и микрософтом.
я всю жизнь работал на маке, мак был уничтожен. а так как я нищеброд, то работаю на ноуте, одолженом у друга. посему сносить систему нельзя, ставить виртуалку не вариант, так как комп не очень производительный.
>>900390
я слабо себе представляю, как cygwin облегчит мне жизнь.
Ну же, я знаю, тут должны быть такие же виндоебы как я. Поделитесь костылями.
Похуй, пойду ставить линукс рядом с виндой. Ебал я эти разборки.
>>900396
Специально для таких добрые дяди запилили костыль. Нет, не хочу этот костыль, хочу другой костыль, чтобы был сферический и в ваккуме.
А я хочу ноги. Чтобы бегать как в жопу ужаленный и прыгать через дома. А костылями эти добрые дяди могут себе анусы подолбить.
Омерзительное быдло. Надо заметить, что ты мне физиологически отвратителен, и когда я разговариваю с тобой, я ощущаю тошноту, в прямом, медицинском смысле. Ты должен это знать, хотя я и умалчиваю обычно сие в виду очевидности.
слишь э, тебе чо нада тут?
зачем такой убогий оппик? лучше бы этот
чтобы писать >pip instal
надо сначала установить системные переменные, либо писать полные пути в командной строке:
>C:\python\gdetotut\pip.py
Чому мне на виндах не надо задавать переменные, и всё работает после установки? ЧЯДНТ?
Ты наверное питончик установил правильно. Я недавно накатывал питон3 на винду и выбрал кастомную установку (или как она там называется) - так вот там можно поставить галку, чтобы все эти пути добавились куда надо.
>Vagrant share
штоу? это обычная виртуалка, человечество уже сто лет научилось выставлять виртуальный сетевой интерфейс в локалочку, хоть через NAT, хоть через бридж, хоть через прокси
И за юникодную консоль на Винде!
Я, правда, соснул и буду сидеть на 35-м говне мамонта, пока continuum не обновит все модули в Анаконде.
Обожаю таких не самокритичных мамкиных хакиров.
https://docs.djangoproject.com/en/1.10/ref/models/options/#verbose-name-plural
Sup аноны. Как правильно использовать logging если у меня один и тот же модуль иногда вызывается напрямую, а иногда импортируется?
Где делать конфигурять рутовый логгер, как оверрайдить в одном модуле?
инициализирую и настраиваю в каждом файле
сделал функцию setup_logging() и в начале файла вызываю:
import logging
import setup_logging
setup_logging()
logger = logging.getLogger(__name__)
но постоянно гложет чувство что я что то делаю не так)
но тогда name (имя файла в котором logger.info(), например) в формате логгинга:
format: '%(asctime)s %(levelname)-8s %(name)s:%(lineno)d: %(message)s'
будет содержать имя файла с __main__
Не вижу большой проблемы, т.к. это говорит тебе о том что модуль был запущен как скрипт, но если сильно тебя беспокоит, то напиши:
log = logging.getLogger('hui')
Есть заюористые методы как не хардкодить название модуля:
http://stackoverflow.com/questions/2282369/how-do-i-get-the-module-name-of-an-objects-class-definition-rather-than-the-mod
Но мне кажется это уже слишком.
спасибо, попробую
Ты охуел чтоли сука? Может от хочет чтоб писало "Добавить _картинку_", а не "Добавить _картинки_"
Джанго это веб-фреймворк, а не фреймворк локализации. У него другие задачи. Если нужно что-то такое, то пиши сам или ищи и подключай готовое.
Есть такой кусок кода:
>writeFile.writelines("|",str(workerName).ljust(40),"|",str(workingDays).rjust(3),"|",str(round(salary,2)).rjust(10),"|",str(round(calculationFormula,2)).rjust(10),"|\n")
по идеи, он должен записать в файл что-то на типе этого:
>| Петров | 14 | 500 | 225.81 |
Но он упорно мне пишет вот это:
> File "C:/#DocumentAndFile/Programing/Python/1 Lab/Cost Accounting.py", line 103, in <module>
Save1()
File "C:/#DocumentAndFile/Programing/Python/1 Lab/Cost Accounting.py", line 59, in Save1
writeFile.writelines("|",str(workerName).ljust(40),"|",str(workingDays).rjust(3),"|",str(round(salary,2)).rjust(10),"|",str(round(calculationFormula,2)).rjust(10),"|\n")
TypeError: writelines() takes exactly one argument (9 given
Как это реализовать.
Код программы выложу тут: http://pastebin.com/zfF0GyH8
Метод берёт один сиквенс, а ты кучу аргументов засунул. Возьми всё в дополнительные скобки. witelines([a, b, c, ...])
Алсо, лютый говнокод.
https://www.python.org/dev/peps/pep-0008/
Спасибо, выручил дико!
Оформлять буду в конце, перед сдачей.
Я правильно понимаю, что ты намекаешь на ошибки типа:
1) Слишком длинные строки
2) Бесполезные комментарии
Или еще есть какие намеки на мою тупость?
Код нечитаем, поэтому особо на недостатки не укажу. ПЕП8 и на русском должен быть, почитай. Например, ты дико форматируешь строки, лучше так: https://gist.github.com/anonymous/b15577e7b5fd98c2de9f94e34a5eb8d6
(Вместо принта в твоем случае будет f.write(line).)
Если пишешь в Sublime Text, то можешь накатить Anaconda (это плагин к СТ, который ставится через пакедж контрол, а не толстый дистрибутив питона от континуум аналитикс). Это такой линтер, будет обильно ругаться на всякие недостатки кода.
Спасибо! Так и сделаю!
>.format
Ой блядь, всегда не нравилась эта конструкция и я использовал %, а теперь нашел аргумент которым могу поводить питоном по твоим губам.
Можно ли накатить Питон 3.6 на WinXP? На офсайте написано
>Note that Python 3.5+ cannot be used on Windows XP or earlier.
Теперь что, ставить 2.7?
Это офисный ПК с 2Гб ОЗУ, где-то 2007 года
Ставь 3.4
если имя пользователя написано кириллицей- это в последствии может вызвать кучу багов. К счастью переименовать учетную запись совсем не трудно
Что есть: я таки сделал блог с картинками, но споткнулся на thumbnails к картинкам.
У меня есть Post со атрибутом structure(текст, картинки видео), у него есть метод render_to_html - делает из своего содержимого готовый html код, который уже передается шаблону.
Html генерируется следующим образом: определяется тип элемента в structure и в зависимости от типа используется метод render этого типа -
[CODE]def render(self):
return render_to_string('content_types/{}.html'.format(self._meta.model_name), {'item': self})[/CODE]
Все было ничего, пока я не дошел до миниатюр:
а) джанга просто не рендерит по шаблону со своими же тегами
http://pastebin.com/9kFesjdA
б) даже если он и срендерит, то, как мне кажется, в конечной странице не отобразится ничего - html поста отображается с помощью {{ post.html_rep|safe_html}}
Есть ли другой способ генерировать миниатюры в моей ситуации?
Обращайся!
не получится, если грамотно на функции побить. в данном примере .format() никакой полезной нагрузки не несет по сравнению с %
1. В каком виде и где хранить публикации? Контент самый разный, включая текст, полноэкранные картинки, куски кода, математические формулы, ютубовимео и просто вебмки с сервера. Пока думаю создать базу данных с такой структурой. Что-то лишнее, чего-то не хватает?
айди
хтмль-содержимое
тэги
хэш пароля доступа (для общедоступных записей пустой)
2. Как добавлять новые публикации на такой сайт? Стоит ли ебаться с запилом запароленной админки с формой для постинга? Я единственный автор.
3. Тут был лишний вопрос, лень всё перенумеровывать.
4. Как обычно хранят и запрашивают теги?
5. По мере добавления публикаций добавлять каждый раз новую функцию app.route с красивыми урээлам вида:
example.com/moya-huyovaya-publikaciya/
example.com/esche-odna-publikaciya/
example.com/nu-i-tretya/
Не плохо ли это? Может, хранить в базе ещё и урл?
6. Стоит ли добавить уровень для публикаций? Если да, то зачем?
example.com/articles/moya-huyovaya-publikaciya/
7. Допустим, на этих трёх ссылках теги "first", "second", "third" соответственно, а на первых двух ещё и "jopa" - общий тег. Тогда поиск по тегам должен работать так:
example.com/first/ - выдаст первую публикацию.
example.com/jopa/ - выдаст первую и вторую.
example.com/third+jopa+first/ - выдаст все три
example.com/tags/ - служебная страница, выдаст все теги
Вполне тривиально реализуемо ведь? На реддите вроде бы так выводятся сабреддиты.
8. Стоит ли добавить уровень для тегов? Если да, то зачем?
example.com/tags/jopa/
9. Т. к. я безответственный, то буду переименовывать статьи и ломать старые ссылки. Я решил, что обращение к несуществующей статье или тегу:
example.com/zapros-a-mozhet-ustarevshiy-url/
должно делать поиск по сайту. Транслита не будет, язык урлов и публикаций - английский. Как лучше всего реализовать fuzzy search?
10. Посещалка 10-20 человек в месяц, плюс пики, если публикацию вдруг вкинут на какой-нибудь сабреддит, и попрут левые хуи в количестве, наверное, сотен в час - хотелось бы не падать в эти моменты. Как такое лучше захостить, чтобы было недорого?
1. В каком виде и где хранить публикации? Контент самый разный, включая текст, полноэкранные картинки, куски кода, математические формулы, ютубовимео и просто вебмки с сервера. Пока думаю создать базу данных с такой структурой. Что-то лишнее, чего-то не хватает?
айди
хтмль-содержимое
тэги
хэш пароля доступа (для общедоступных записей пустой)
2. Как добавлять новые публикации на такой сайт? Стоит ли ебаться с запилом запароленной админки с формой для постинга? Я единственный автор.
3. Тут был лишний вопрос, лень всё перенумеровывать.
4. Как обычно хранят и запрашивают теги?
5. По мере добавления публикаций добавлять каждый раз новую функцию app.route с красивыми урээлам вида:
example.com/moya-huyovaya-publikaciya/
example.com/esche-odna-publikaciya/
example.com/nu-i-tretya/
Не плохо ли это? Может, хранить в базе ещё и урл?
6. Стоит ли добавить уровень для публикаций? Если да, то зачем?
example.com/articles/moya-huyovaya-publikaciya/
7. Допустим, на этих трёх ссылках теги "first", "second", "third" соответственно, а на первых двух ещё и "jopa" - общий тег. Тогда поиск по тегам должен работать так:
example.com/first/ - выдаст первую публикацию.
example.com/jopa/ - выдаст первую и вторую.
example.com/third+jopa+first/ - выдаст все три
example.com/tags/ - служебная страница, выдаст все теги
Вполне тривиально реализуемо ведь? На реддите вроде бы так выводятся сабреддиты.
8. Стоит ли добавить уровень для тегов? Если да, то зачем?
example.com/tags/jopa/
9. Т. к. я безответственный, то буду переименовывать статьи и ломать старые ссылки. Я решил, что обращение к несуществующей статье или тегу:
example.com/zapros-a-mozhet-ustarevshiy-url/
должно делать поиск по сайту. Транслита не будет, язык урлов и публикаций - английский. Как лучше всего реализовать fuzzy search?
10. Посещалка 10-20 человек в месяц, плюс пики, если публикацию вдруг вкинут на какой-нибудь сабреддит, и попрут левые хуи в количестве, наверное, сотен в час - хотелось бы не падать в эти моменты. Как такое лучше захостить, чтобы было недорого?
Прочитай уже тутор для джанги, наркоман ебаный.
https://docs.djangoproject.com/en/1.10/intro/install/
если в js генерить какой то ключ, например uploader_session и слать его в джангу, то можно ограничито по этому ключу, но ведь ключ этот можно легко подделать, соответственно еще один вопрос: как не подделать?
ы вот я тупанул. короч при открытии страницы с формой поста в сессию кладу upload_session_files = 0
а при загрузке проверяю, увеличиваю...
а то уже начал в RSA смотреть ахах))
Сталкивался кто? Все мозги выклевала эта хуйня, ей богу.
-30% открытых вакансий в 2016 году по сравнению с 2015
у php обезьян +70%
ха ха
продолжайте учить, уебки
>вангую винду
10ка, да
Поясните за эти кодировки ебучие, плес.
Сил моих нет.
Играюсь с апи вк и смотрю джсоны, и с ними часто такая ебнистика просиходит. Как я понимаю мой питон не может показывать всякие смайлики, так как его научить то?
3.5, с оф сайта
Но сначала у меня 2.7 стояла. или сначала 3.5 потом снес, поставил 2,7 потом опять 3.5 хз
Может в этом трабла?
> UnicodeEncodeError: 'charmap' codec can't encode character '\u263a' in position 7895: character maps to <undefined>
Такой эксепшен ТОЧНО не мог родиться в 3шке. Блядь, зайди в консоль, введи python и посмотри версию.
По винде - там надо PATH настроить. В нем указываются абсолютные урлы до папок где надо искать исполняемые файлы. Если у тебя там что-то вроде C:\python27, то надо указать путь до папки с экзешником 3го питона.
Только что заметил что в инфе при запуске дата какая-то левая. Вот еще пруфов что в 3ке такая хуерга творится.
Ладно, ты меня удивил. Почему-то у тебя он полез в cp866. Кириллицу он принтует?
Помогло. Ты теперь мой герой. Я назову сына в твою честь ты же антон, да?
Нет, правда, я так заебался с этим. Джсоны от вк просто кишат такими нечитаемыми штукам.
После установки 3.5 после 2.7 как-то зашакалились путь, очевидно дело было в этом
>1. В каком виде и где хранить публикации?
Все в бд, кроме картинок (ссылки на них хранить в бд), ютубвидео (их можно встраивать), остальное по усмотрению.
2. Ну в админке пишешь пост, публикуешь и все. Есть всякие генераторы статических сайтов, посмотри, может подойдет тебе. Смотря какие возможности тебе нужны. Может быть админка и не понадобится.
4. ManyToMany, наверное. У каждого поста может быть много тегов и каждый тег может быть прикреплен к нескольким постам. Получается 2 таблицы. Но это не единственный способ. Для джанги есть django-taggit, насчет фласка не знаю.
5. >Может, хранить в базе ещё и урл?
Да. Его можно генерировать автоматически из заголовка поста.
6. Смотри сам.
7. Хуй знает, как сделаешь, так и будет.
8. см. 6
9 Хз
10. Хз. погугли всякие heroku, pythonanywhere http://flask.pocoo.org/docs/0.12/deploying/#hosted-options
http://stackoverflow.com/questions/17619415/how-do-i-combine-two-numpy-arrays-element-wise-in-python
Делаю так sum(zip(a, b), ()), но не уверен работает ли оно правильно.
Слезай с этой говновинды, то, что в 3.6 сделали по умолчанию вывод в консоль utf-8 не решает всех проблем винды.
Массивы [1,2,3] и ['a', 'b', 'c'] превратить в [1, 'a', 2, 'b', 3, 'c']
Но мне надо играться. Скайримы всякие, багофильды. Еще я люблю адобовские программы и их совместимость между собой. Как же я без всего этого, анон?
Поставь второй системой/virtualbox
даепт, поставь виртуалку с убунтой и разрабатывай в ней. то есть разрабатывай в винде, но код запускай в виртуалке. тот же pycharm умеет в удаленную отладку.
Спасибо. Я Фласк взял, но думаю этот туториал прочитать не повредит - увижу вещи с другой стороны и закрою какие-то пробелы. Плюс уже видно, что у Джанго получше доки для новичка, поясняют многое в процессе. Может даже и перекачусь на Джанго, если шибко понравится.
>>902584
Спасибо за ответы.
1. Ссылки хранить в бд в отдельном столбце или как? Пока всё это планирую так и хранить в "хтмль поста" текстом. Я ещё сейчас расматриваю вместо хтмля маркдовена использовать, удобнее писать и править, и хранить можно в отдельной папочке, а не в бд.
2. Вроде этого?
https://www.staticgen.com/
Впервые вижу такое. Даже не понял, что оно делает. Разберусь, спасибо.
5. Как я понимаю, или хранить в отдельном столбце, или генерировать из инфы, лежащей в другом месте. Хранить отдельно наверное удобней.
10. Спасибо, читал, но ещё подниму этот вопрос - личный опыт нужен.
>Ссылки хранить в бд в отдельном столбце или как?
В отдельной таблице, может быть. У каждого картинки может быть заголовок, ссылка на файл картинки, внешний ключ на пост, например.
>5.
Я не правильно сказал, извини. Я имел в виду не полный урл, а его чаcть - slug - которую ты сгенерируешь из заголовка поста. https://ru.wikipedia.org/wiki/Семантический_URL#Slug
Потом этот slug можешь использовать в своих ссылках на посты. Полные ссылки на посты, конечно, стоит генерировать на лету, а не хранить где-то.
Список не нужно, если ты его содержимое модифицируешь. В противном случае нужен стейтмент global.
https://gist.github.com/anonymous/265734b99f5b4418cf7550932697e9fb
можно не вникать
ооп - реликвия прошлого и более-менее новые фреймворки его игнорируют чуть менее чем полностью
Ну-ка, кинь ссыль на такой фреймворк.
не, особо не заморачивайся, там все проще: хуяк-хуяк.
не, это я знаю, а как лучше согласно принципу кисс и зену питона. Ведь эксплицитно лучше, чем имплицитно.
джанга - это почти сплошной ооп, тебя даже на джуниора будут спрашивать про класс-бейзд вьюз, про всякие миддлвейр, миграции с south, а там все делается через наследование исходных классов джанги.
не пизди! нет там никакого ооп, она все сама делает! только тыкаешь кнопку сделать пост в моем сладеньком бложике, и она сама все делает! еще там можно картинки загружать!
>миграции с south
если меня спросят на собеседовании про south, то я просто уйду с этого собеседования
> все делается через наследование исходных классов джанги
Ну и это почти единственная вещь, которую надо знать про класы в джанге. Больше там ничего сложного нет
двачую этого! да и вообще нехуй наследоваться! взяли моду. хуярь globals!
ты так говоришь, как будто убирать снег - это хуже, чем ковыряться в коде проекта, написанного на старой джанге, на своевременное обновление которой забили хуй.
я так говорю, потому что мне похуй south там или еще какая поебень, я на работу за программированием хожу и деньгами.
ну, используются же классы, и активно, в питоне вообще классы сложно по-другому использовать
Разумеется, эксплицитно лучше. И вообще, глобальные дикты лучше.
https://gist.github.com/anonymous/d45c8f71ebe530301173b8e86474a11c
С индексом ошибся по невнимательности, между прочим. Вот, я же говорил!
модели - хуели, аттрибуты класса - хуепуты хуяса, архитектура приложения - хуекультура хуеположения
абстрактный метод - хуяктный хеутод
значит на питоне ты должен уметь запилить сайт с нуля, с хуй его знает какой архитектурой.
более того, ты должен уметь взять чей то ебучий сайт с нуля, с любой архитектурой и перепилить как надо заказчику. еще ты должен уметь поднять весь веб стек, а так же взять чей то сервак и перепилить как тебе надо.
если ты еще и full stack middle то поебись ка еще и с js.
и, кстати, реще давай!
ах да, забыл добавить: где тесты сука? а, я тебя спрашиваю!? где тесты сука!!???
p.s
"а вот эта поебень на джанге похоже уже не справляется с запросами, можно как то исправить? мб вынести в какое то быстрое api?"
окунись ка в асинхронное программирование на питоне.
нормально, я и есть фуллстак c# макака. Но у нас никто не перепиливает сайты, т.к. это ооочень долго\дорого. Я так понял на питоне скрипты гораздо меньшие по объему, примерно как в nodejs+express?
можешь поделиться ссылочкой на гитхаб с типовым сайтом, который считается нормально написанным? любого автора
такие конечно есть, искать надо. но я не знаю, не хочу искать. но вот навскидку требования к норм программе, по моему мнению:
1) код должен быть управляемым - отсутствие хардкода, интерфейсы, абстракции...
2) везде где возможно, должны использоваться существующие, "маститые" фреймворки и библиотеки - минимум костылей.
3) код должен быть покрыт тестами.
чтобы сориентироваться просто смотри как делают мастера, типа светлова, ронахера, джангу глянь - несомненный какнадо в питоновебе.
p.p.s
не знаю как в с#, а в питоне просто охуенная стандартная библиотека и ее хорошо бы знать и юзать.
спасибо, анон
Насчет типовости не уверен, но держи
Исходиники самого сайта джанги
https://github.com/django/djangoproject.com
Исходники сайта питона
https://github.com/python/pythondotorg
Сайт с джанговскими пакетами
https://github.com/pydanny/djangopackages
Что с этим сделать-то можно, кроме как читать исходники и компилировать ffmpeg самому, убирая это неотключаемое дерьмо?
Лол. Всё пилю свой примитивный сайт на фласке и маркдауне, у меня прямо сейчас открыт w3schools с основами хтмл и цсс. Космический эффект на меня твои скрины оказывают.
Спасибо
и сайт где можно легкие задачи порешать
спасибо
>Сайт
school.sgu.ru
Там много задач, решение которых можно отправлять на автоматическую проверку и получать баллы
http://ideone.com/H4MRrL
imax = a.index(max(a))
a[imin], a[imax] = a[imax], a[imin]
Кто ответит, почему предыдущее не работало, тот миддл.
http://stackoverflow.com/questions/31943047/python-why-the-code-for-swapping-the-largest-and-the-smallest-numbers-isnt-wor
Прикольно. Я сам не додумался. А ведь все просто и логично.
Может упустил что-то? Метод save() у модели точно вызван?
Как опуститься на нижние уровни словаря?Пишу print (x['1a']),а дальше как?
x['1a']['1c']
class A(object):
classvar1 = {'a': {'aa': 1}, 'b': {'bb': 2}}
Пытаюсь добавить туда же
classvar2 = {(i, j): A.classvar1[j] for i in A.classvar1 for j in A.classvar1}
Оно мне говорит, что
>NameError: name 'A' is not defined
Пробовал без A.; тогда говорит
>NameError: name 'classvar1' is not defined
Собственно, как можно из статической переменной класса обратиться к другой статической переменной этого же класса без всяких __init__ и @property?
Собственно никак, ибо класс ещё не сконструирован. Если надо что-то такое, то используй метаклассы/наследование.
Жаль. Просто мне тут класс нужен как неймспейс и городить мусор не хотелось бы.
Бля, ну ты дибил, ну какой селф? Нахуй ты вообще советуешь, попробуй сначала сам написать. Ебаать.
>>904215
Используй словари.
Это не так работает
>>904219
>Используй словари
Однохуйственно
>>904221
Вариант, но у меня в файле 2 класса, которые повязаны друг с другом. Разносить их смысла нет.
Алсо, проблема уже не актуальна.
> Однохуйственно
Можно императивно их заполнить. То есть сначала создал словарь со своими константами, потом пополнил его на их основе хотя и с классами так можно
Я полный профан. Не знаю как правильно надо это делать. Наверное скопировать весь файл в строку и ее изменить, а потом записать в файл.
Нет конечно. Скопировать файл, открыть для чтения-записи, переместить указатель в нужное место, записать, профит.
Делать мне нехуй что ли?!
Как сделать так,чтобы пользователь вводил лишь название ключа и ему выводилось его значение?
Рекурсивный поиск, очевидно же.
обход в ширину/глубину.Необязательно рекурсивный, рекурсии на питоне это вообще рак
f = open(file.wav, 'ab')
f.seek(20)
f.write(b'\x01\x00')
f.close()
Так раскрою секрет, в 99% случаев ты делаешь рекурсию потому что знаешь какой примерно глубины она будет и потому что использовать рекурсию в данной ситуации удобно. А не потому что седые дядьки говорят, что надо все алгоритмы делать через рекурсию.
а то, что любой цикл можно переписать на рекурсию или обратно, без значимых потерь в производительности это все сказки? При том, что рекурсия легче читается, чем пляски со стэком
Попробуй open("file.wav", "r+)
Может скооперируемся и скачаем видео с этих ублюдочных файлопомоек? на торрентах походу еще не завезли. Видео вышло два дня назад https://www.packtpub.com/application-development/django-example-video походу это видеоуроки по одноименной книге от ее же автора.
скачиваю первую часть с сраного дипозитап
Скачал две части, может утром еще кто скачает остальные две, я спать до обеда.
Залей на нормальную файлопомойку когда скачаешь, я четвертую поставил, потом все объединю и залью куда-нибудь.
Алсо, пощелкал уже скачанные части, это по сути аннотации к книге, челик просто открывает исходники и кукарекает по пару минут на главу из книги, чет не очень.
Держи 2д тян за старания.
Вам не кажется, что питон обрастает огромным количеством сомнительных фич и начинает тем самым напоминать c++, а большинству это все нахуй не нужно, они пишут простенькие скриптки if/else и котируют питон только потому что его можно присобачить к чему угодно и есть много проверенных временем библиотек типа NumPy?
Объясни нормально. У словарей есть метод get(key, default_value), чтобы не вылетал KeyError, если ты об этом.
Да спасибо большое, я об этом как раз, потому что нужно было игнорить ошибки и я без этого метода обращался к словарю
Не кажется. Просто завозят новые батарейки, пока сам пайтон остаётся чертовски простым.
Кароче там еще после конвертации json в словарь приходит вот такая жесть, то есть чтоб достать нужный тест, нужно путь прописывать вручную, через get не прокатит. И при этом на каждом слове все меняется местами и тд. Я думаю легче забить на это дело
[CODE]lexicalCategory = dict['results'][0]['lexicalEntries'][0]['lexicalCategory']
phoneticSpelling = dict['results'][0]['lexicalEntries'][0]['pronunciations'][1]['phoneticSpelling']
etymologies = dict['results'][0]['lexicalEntries'][0]['entries'][0]['etymologies']
definitions1 = dict['results'][0]['lexicalEntries'][0]['entries'][0]['senses'][0]['definitions']
examples1 = dict['results'][0]['lexicalEntries'][0]['entries'][0]['senses'][0]['examples'][0]['text']
[/CODE]
Присоединяюсь к вашему обсуждению.
json у них конечно мрачный, но что если делать так?
def get_examples_t(data):
# link + /examples
return [i['entries'][0]['senses'][0]['examples'][0]['text']
for i in data['results'][0]['lexicalEntries']]
def get_synonyms_t(data):
# link + /synonyms;antonyms
return [i['text']
for i in data['results'][0]['lexicalEntries'][0]['entries'][0]['senses'][0]['subsenses'][0]['synonyms']]
?
Вот кстати идея с for циклом отличная, спасибо, у меня получилось сразу несколько описаний забрать , я думаю это должно работать
Я первый раз имею дело с ajax, и не знаю как это работает в деталях, но задача выглядит довольно боянистой, так что по-любому вы знаете простое решение.
Итак, мне надо заставить данные появиться на страничке, распарсить я её смогу.
Хз, почему я этого не посмотрел на stackoverflow. Спасибо, я разобрался.
Еле добился от него адекватной выдачи, я все таки добавил except pass внутри функций, чтоб он пропускал лишнее. Теперь остался гемор с форматированием текста и как лучше к его запихнуть в анки
Я тут поигрался с проблемой этого анона, и >>904213 частично неправ. Собственно, вот -
https://repl.it/Ez6c
к classvar1 вполне можно обращаться, проблема во вложенных лупах в лист компрехеншнах. Если же я сначала сделаю список из одного этого элемента и уже по этому списку буду пробегаться, то всё прекрасно работает.
Кто готов объяснить это необычайно предсказуемое поведение?
Оперативно, спасибо.
Табом вместо пробелов пользуешься, да ещё и торговый центр какой-то убить хочешь, террорист. sys.path вне кавычек нужно, иначе это просто текст, ничего для интерпретатора не значащий. Погугли ещё python string formatting, полезно будет.
лалка, он в pyCharm'e сидит, там отступы настроены верно. Даун просто после принта решил пробел ебануть.
Н-но там прямым текстом же всё написано!
А, попой прочел, лицензия не нужна.
В качестве бекенда для выдачи информации питон подойдет, клиентский гуй на нем хорошо не напишешь. Есть смысл или нет считать должен специалист, тут у нас программирование.
Развернуто с картинками.
Можно и без гуя обойтись, сделать все в вебе. А с Qt какие проблемы?
Так мало? Я почему-то всегда считал, что это тормозная прожорливая штука. Спасибо! Пожалуй скачаю потыкать.
Я решил поискать других апи и нашел огромную кучу их. В работоспособности/актуальности я не уверен, конечно же
https://www.programmableweb.com/category/dictionary/api
Да, все понял
Смотря какой проект. За пару дней, если хип строго не задавать, джетбрейнс поделия могут выжрать и под 3-5гб.
Спасибо за ответ, анончик!
Мелкую cli утилитку для быстрого перевода слов/поиска синонимов/антонимов/примеров употребления. Почти написал же
if action == 'look around':
for object in cell_enviroment:
print(object)
elif action == 'talk to rack' or 'talk rack' or 'rack':
print ("1")
elif action == 'beg' or 'open beg' or 'take beg' or 'look beg':
print('2')
elif action == 'stones' or 'rocks' or 'walk to stones':
print('3')
elif action == 'help' or 'hint':
for tip in help:
print(tip)
else:
print('Looks like you have amnesia.Try again')
>ЧЯДНТ?
Нужно
>elif action == 'talk to rack' or action == 'talk rack' or action == 'rack':
А лучше запихать варианты в спиок или кортеж и проверять с помощью in https://ideone.com/0K8tKW
Посоветуйте хорошо-написанных программ, чтобы приучиться к хорошему стилю, разбираясь в коде.
Смотри большие публичные проекты вроде flask, django и тд. Ну и pep по оформлению кода
Ты чё, сучара,ты чё,а?!Благодарность за меня говоришь,пидор!А может жопу,скотина,мне начнешь сам подтирать,мразь,я ведь такой,блять,несамостоятельный?!Плюю на твоё собачье ебало,ублюдок!
>Currently, Pyston targets Python 2.7, only runs on x86_64 platforms, and only has been tested on Ubuntu. Support for more platforms -- along with Python 3 compatibility -- is desired but deferred until we feel successful on our initial platform. Pyston does not currently work on Mac OSX, and it is not clear when it will.
Еще и, небось, сишные расширения не канают. Нахуй он тебе нужен?
Дима?
Специально выстругаю, жепку тебе подтирать, пока самостоятельным не станешь.
Лицуха действительно сразу вшита. Версия pro, джанга и прочие про-фишки на месте. Так что тем кто не хочет воровать вполне пойдет посмотреть что да как. Про автокомплит сказать пока нечего, нет под рукой более-менее жирного проджекта чтоб скормить.
Почему-то не подхватились настройки хинтинга шрифта из системы (в системе легкий, в шарме полный), но это может openjdk шутит так. А может так бай дизайн задумано.
>>905182
Спасибо,анончик:3Но можешь мне еще немного помочь и подсказать как зациклить этот алгоритм,чтобы он при выпадание else,начинался с начала?
Ну вот пример https://ideone.com/xWuNML
while True запускает бесконечнй цикл.
В данном случае пользователю будет предлагаться ввести слово.
Если он ввел "stop", то выведем "1" и прервём цикл с помощью оператора break.
В противном случае, будем выводить 'Looks like you have amnesia.Try again' и предлагать ввести слово еще раз.
Мне теперь подбирать так всегда, чтобы глаза не кровоточили?
>>901722
Да-да-да. Но Django ценен contib приложениями. Чтобы хуяк-хуяк и в продакшен. И глаз радовался.
Иначе можно из flask + flask-admin накостылять то же самое, только с винительным падежом и с нуля.
Так что вопрос в силе. Что можно наименьшим костылянием в Django 1.10 сделать? Все инструкции за 09-11 года скурил. Словари для этого подключать слишком жирно.
пайчарм просто тупо не видит установленный реакт, втф?
слетел старый сервер после обновления, новый нагуглил 2 минуты)
python3
Спасибо, антош
Процветает, даже б сказал
Не нужна. Есть нода, есть куча актуальных пхп фреймворков.
http://rextester.com/PZIVV99930
http://rextester.com/CVNWJ52896
>>905785
Подумай над тем, чтобы хранить диалоги\события в каком-то формате(напр. XML). На ифах и циклах ты далеко не уедешь.
http://stackoverflow.com/questions/372915/game-logic-in-xml-files
http://stackoverflow.com/questions/1840154/rpg-dialogue-engine-
pymorphy
А как тогда проинициализировать данные через пробел и работать с ними?
Суть моей проблемы, что POST ничего не делает в окне авторизации.
http://pastebin.com/N8CB1C5j
не будет работать, проблема при авторизации, что то не так с POST запросом, а вот что именно, вот это уже вопрос.
Т.е.
Я посмотрел КАКИЕ данные отправляет форма в инспекторе, ввел все так же, но... НЕ РАБОТАЕТ.
Дяденька,а может как-нибудь без этого обойдемся?Ну или хоть расскажи как этот xml в питон вставить.
Знаю про api, но в нем есть несколько не достающих функций. И вот поэтому я взялся за requests.
api я отложил сразу на дальнюю полку.
Так вот, если не requests/api, может Requests + Selenium.
>сли не requests/api, может Requests + Selenium
Если НИЧЕГО не получиться, то возьмусь за api
Ну а без апи ловить питоном там нечего. Почти все на js. Либо тянуть серъезные пакеты для автоматизации браузера, либо искать другие методыю
Сомневаюсь что это со стандартами связано.
Как что-то плохое.
> А зачем оно таким было, если не секрет?
Препод говорит, что нестандартное развивает нестандартное мышление, вот и привык такие комментарии ебашить.
лол, ну ебись теперь.
Ходить циколм по списку и записывать результат еще в один, при том что список можно менять. Ты серъезно?
А на цирк из миллиона переменных тоже плевать?
Т.е код
f = open("1", "rb")
print(f.read(1))
прочитает \x90 а выведет в консоль b'\x90'
как вывести без в консоль именно то что бы прочитал?
Автопром в /au
Ну ладно,тебя люблю немножко сильнее^_^
http://rextester.com/GOZTC93136
С таким знанием стандартных либ мне не перезвонят. Но я и не просил.
Без вариантов действий - полная чушь. Как я должен догадаться, что отвечать на "So how your new home for ya?"?
Ясно.
Было сложно уловить юмор но мне удалось.
Как с помощью этой зверушки поставить лайк/дизлайк на коммент.
Все что нашел в доках - https://developers.google.com/youtube/v3/docs/comments#properties
там есть параметр canRate/viewerRating
Но как оперировать этими значениями?
>youtube/v3/code_samples/python#like_a_video
Нет, не видео. Комментарий. Могу удалить, изменить, написать, ответить, НО, не могу поставить лайк/дизлайк
Если бы все было настолько очевидно, я бы за помощью не обращался.
Тут что то глубже.
В функции update, есть что-то напоминающие,
аргумент snippet, и ему присваивается значение единицы.
В ссылке выше есть разные snippet.canRate/snippet.viewerRating... и т.д
что делать то?)
https://stackoverflow.com/questions/34339966/youtube-api-v3-rate-like-dislike-comment-commentthread
Бротиш я буду с тебя бабки брать за услуги поисковика.
Это еще утром видел, это мне не дает никакой пользы.
>>Nope. I don't think it's possible, unless something has changed since december. – Jacka Mar 6 '16 at 16:44
НО!!! Есть одно большое НО!!! Он удосужился хотя-бы лайкать свой собственный комментарий.
И вот за этим я гнался с самого утра. И пришел сюда.
>>By trial and error I've only managed to like my own comment, and passing textOriginal was also required to make it pass. – Jacka Dec 18 '15 at 10:34
Только КАК? В теле метода update нет возможности реквеста(? или есть)
Небольшой update:
Может я смогу передавать реквест через body
т.е
update_result = youtube.comments().update(
part='snippet',
body={'id' : id, 'viewerRating' : 'like'}
).execute()
Но это возвращает:
>>HttpError 400 when requesting https://www.googleapis.com/youtube/v3/comments?part=snippet&alt=json returned "The request metadata is invalid."
Я не читаю всю ту хуйню что ты тут пишешь, но всегда есть явное рабочее решение - симуляция. Так что смотри свои селениумы, фантомжсы и прочее. Производительности не жди, разумеется.
Держи нас в курсе.
>print('"Nice to meet ya,'), (name), ('"')
https://pyformat.info/
>for object in cell_enviroment
object - зарезервированое имя
Поделить код на функции, а саму игру оформить как класс
Например, чтобы работало:
> a=1
> b=a
> b=2
> a
2
У меня такая ситуация, что нельзя просто взять и завернуть неизменяемый тип данных в лист. Есть готовый кусок чужого кода, который я хочу расширить, но мне больно следовать традиции автора делая переменные в духе: Вася_ХП, Вася_МП, Петя_ХП, Петя_МП и функции типа:
> def drain_hp(кто, сколько):
> > if кто == 'Вася': Вася_ХП -= сколько
> > elif кто == 'Петя': Петя_ХП -= сколько
Я бы хотел писать свою часть собрав Петю и Васю в экземпляры класса и обрабатывать их методами класса, но нужно чтобы и старый индусский код тоже продолжал работать, а для этого изменение Вася_ХП должно без дополнительных манипуляций в старом коде изменять и Вася.ХП.
Напиши для тех, которые будешь у себя в классе использовать, например.
Вроде помогло. Спасибо за подсказку.
Как можно заставить джангу прочитать строку или файл с текстом как собственный шаблон для html?
import time
number = 0
while True:
....number+=1
....time.sleep(60)
while True - бесконечнй цикл
sleep() устанавливает задержку в секундах.
Спасибки:3
r1 = random.randint(0, 8)
r2 = m2.index(r1)
Ошибка:
r2 = m2.index(r1)
ValueError: 6 is not in list
if r1 in m2:
Выбери себе какое-то задание, типа "написать консольное говно, которое будет хуи аски-артами рисовать". Ну и сделай, собственно. Не знаешь - гуглишь. А может это вообще не твое.
Вот этого двачую.Практика лучший учитель.
Она не спрашивала "что?", она спросила "как?".
хмм, вопрос такого плана:
Можно ли, посылать keystroke(инпут с клавиатуры) в много-МНОГО приложений одновременно?
Т.е НЕ: Выбираем окно А(чтобы оно стало активным) -> Отсылаем инпут -> Выбираем окно Б -> Отсылаем инпут... и т.д.
А одновременно, что то вроде pywin32 (Win 32 Api), pywinauto.
Если нет, то:
Можно ли Эти приложения(в которые я хочу инпут отсылать) сгруппировать в одно БОЛЬШОЕ приложение?
ОЙ, как раз в pywinauto, pywin32 нет такой возможности, чтобы сразу отсылать во все окна, сори.
Поддвачну, курил мануалы месяц, но так нихуя ничему и научился, пока не стал ставить реальные задачи. Просто встаю с утра, и говорю: хочу йобу, которая будет считать время работы компа, или например, парсер тредов из б по нужным мне словам. Если не знаю как сделать, гуглю. Так знания и приходят.
Сегодня кстати написал консольные крестики нолики. Просто, захотелось.
Стоит ли перекатываться сюда после джавы? Сам работаю джава разрабом, но меня что-то подзаебало. Хочется разнообразия.
continue попробуй
Что мешает изучить и использовать параллельно с джавой? Вы какие-то странные.
Что мешает изучить и использовать параллельно с джавой? Лишним точно не будет. Вы какие-то странные.
Как нужно скобку поставить.Помогите давну
есть строка: 'esdfd((zxcv)(esdf' нужно получить все подстроки вида:
(zxcv , (esdf - то есть строки с открывающейся скобкой, если перед открывающей стоит открывающая ее нужно проигнорить.
проверил тут: https://regex101.com/r/ZghzBE/1 вроде находит, делаю эту регулярку в питоне, не находит: http://pastebin.com/ZJuNqmYp
ЧЯДН?
спасибо, с этим я разобрался теперь другая задача, как найти все не закрытые скобки, например:
из esdfd((zxcv)(esdf нужно получить (esdf, а эту группу проигнорировать: esdfd(
хз как сделать
Просто взять и добавить их к объекту? Или ты хочешь именно property сделать, а не методы set_x, get_x? Тогда всё сложнее. Можно, например, засабклассить оригинальный класс и сменить класс твоего экземпляра, не забыв при этом сохранить и присвоить старые значения атрибутов, котоые на проперти меняешь, иначе ошибочки вылезут.
http://ideone.com/Iqmnd6
Решение, впрочем, довольно спорное, за такую смену класса могут и по башке тимлиды дать, наверное.
http://rextester.com/FRJ6745
Я правильно все сделал?
Или это нормальный вид кода?
Нет
Короч,action1 приравнял к функции action и сравнивая значение action1 должен выводиться результат,но че то не получается.ЧЯДНТ?
for i,value in enumerate(iterable):
модели http://pastebin.com/UELvxntf
сделал так:
> p_qs = Product.objects.filter(price__gte=100).values('category__name').annotate(product_count=Count('category'))
группирует норм:
> [{'category__name': 'apples', 'product_count': 12}, {'category__name': 'oranges', 'product_count': 2}]
теперь нужно вывести только те категории, в которых > 10 и я хз как фильтровать по product_count
Может кто подсказать?
С блок-схемы. И гугла всего двух запросов: "питон сделать http запрос", "питон записать данные в файл", но на английском, разумеется.
Хотя если важен только результат, я бы начал с изучения уже готовых решений.
пиздец. пришлось ради этой хуйни скюэль писать http://pastebin.com/MJBiNSDZ
выводит вроде правильно, но я в sql нуб нубский, скажите хуйню нагородил?
class KeyPressEater(QObject):
...
keyPressEater = KeyPressEater(self)
И оно почему-то работает. Что это такое, куда передается self?
И почему объявление def __init__(self): ... в KeyPressEater все ломает?
И, тем более, def __init__(self, other_self): ...
Сап,/pr.Есть многоуровневый словарь и нужно чтобы случайным образом выбирался ключ,совершался переход на подуровень и т.д.,в конце выводя результат.Это как нибудь можно сделать?
Для рандома есть
random.choice
А вот переход на подуровни при условии что неизвестна структура я не помогу. Можно, конечно, проверять в цикле каждый раз данные на тип и если словарь то делать это циклом жо победного, но кажется это бред.
>>907679
Что такое структура?Можешь показать как правильно использовать random.choice?
>Мимонуб
Я тож,няш:3
Есть вполне адекватная документация по стандартным модулям. Также есть поиск по коду гитхаба где пример использования понятен за пару секунд.
Твоя грубость попала прямо в сердце,сенпай.
>пагинация
Ну вроде бы со списками тоже работает.
https://docs.djangoproject.com/en/1.10/topics/pagination/#example
работать то работает, но ты предлагаешь сначала выбрать хуелярд записей из бд в список, а потом пагинацию устроить. смысл такой пагинации?
Да, ты прав, смысла нет. Тогда остается думать как это все получить в один queryset.
А если вот так?
p_qs = Product.objects.filter(price__gte=100).values('category__name').annotate(product_count=Count('category')).filter(propduct_count__gt=10)
Ставь GIT он идет с Bash'ем
Есть еще такая штука https://docs.djangoproject.com/en/1.10/ref/models/conditional-expressions/
И пост на so http://stackoverflow.com/a/33777815/5201699
То есть, если тебе в итоге нужен нормальный queryset из категорий, а не словарей, которые возвращает values(), то можно попробовать сделать так: http://pastebin.com/jTf6FtHH
Оно должно вернуть все категории в которых есть больше 10 продуктов стоимостью от 100 (проверять это я, конечно же, не стал)
Если работает, то это решение будет покрасивее, чем то.
class Set:
def __init__(self):
....
class Multi
def __init__(self):
Set.__init__(self)
Что я делаю не так ?
Ок, напиши потом, а то мне самому интересно стало.
Возможно, тебе стоит наследоваться от класса Set и вызывать метод родительского класса с помощью super()
class Multi(Set):
....def __init__(self):
........super().__init__()
для python2 будет так:
super(Set, self).__init__()
Короч,action1 приравнял к функции action и сравнивая значение action1 должен выводиться результат,но че то не получается.ЧЯДНТ?
сорри за перепост,но нехуй игнорить,пидоры
Всегда бы так,антош.Лю тя:3
Бля,антон.Цикл пропал.Когда было return action() это дело крутилось бесконечно.А теперь че делать?Я только для этого функцию юзал.
Пожалуйста. Но лучше пройди какой-то курс по питону, если планируешь дальше на нём что-то писать.
Да прошел я его уже.
Гуры, ну же. Никто питоне классы с наследованием не делал чтоли?
Всем спасибо, сам разобрался.
Для наследуемых классов неявно определен __init__ примерно как super(Classname, self).__init__(*args), и это нужно определить заново.
import anus и from anus import *
Просто чтобы не использовать anus.funcname, а сразу funcname? Исполняется ли init в обоих случаях?
Первое просто импортирует модуль, но ужимает его в намспейсе заставляя тебя писать перфикc модуля anus.huy() шоб ты легко мог ориентироваться, уточняя какой ты будешь вызывать объект.
Второе как ведро мусора, содержимое вывалили сверху в пространство имен, а значит пишешь просто huy(), но помни что может пойти по пизде, если у тебя уже была объявлена функция.
Да что с этими функциями не так?Почему elif и else только со второй попытки водятся?
помести их в список и потом делай random.choice https://docs.python.org/3/library/random.html#random.choice
http://rextester.com/KSJXP39090 Так сойдет ? Просто онлайн движок не видит input() и raw_input() и поэтому у тебя в коде http://rextester.com/GIL97824 возбуждаетммм EOF error+ show input в жёлтом окошке введи action().
Так же ты просто написал бесконечный цикл потому что True никак у тебя не изменяется. Поэтому он доходит до 10 секунд и говорит идти нахуй.
Input() вроде еще и нихуёвую уязвимость имеет, индус в байт питоне дал ссылку на redfox мамкиного специалиста.
Что за хуйню ты тут наделал? На 14-ой строке же всё по пизде пойдёт.
input возвращает строку, а ты это потом с числом сравнить пытаешься.
Конечно можно было int.__add__ и int.__sub__ заместо лямбд, но так было бы совсем не красиво
120 долларов в час. к твоим услугам, kaggel топ 50.
Если кому интересно я могу скинуть весь код и можно вместе его доделать
http://pastebin.com/FAmCchFh
Не знаю сколько по времени писал, я около недели гуглил и читал уроки по питону, мне главное чтоб он работал и можно было копировать текст в анки, я его в exe файл компилировал и использую
>>908513
Я не знаю как, я это еле сделал
а)Без задания ВСЕХ аттрибутов Header невозможно было создать Body
б)Чтобы Body не был вложен в Header, то есть не Message.Header.Body, а именно Message.Header и Message.Body
Вопросы:
1.Это вообще реально?
2.Это вообще нужно, или есть менее извратные способы?
3.Если реально, то как?
Ты написал полнейшую чушь. Определись, откуда ты хочешь что-то удалить и куда это записать. Расставь везде принты, посмотри, что и на что ты изменяешь.
>Чтобы Body не был вложен в Header, то есть не Message.Header.Body, а именно Message.Header и Message.Body
Не знаю на счет питона, но в других языках в одном файле можно описывать сколько угодно вложенных классов.
Снаружи они не видны понятное дело - они внутренние, служебные.
Обращение идет к классу Message, а он в свою очередь стучится к своему подклассу.
>Без задания ВСЕХ аттрибутов Header невозможно было создать Body
Ну так опиши логику этого в классе Message, или в хидере.
Если свойства накапливаешь, т.е. наполняешь хидер свойствами через несколько вызовов - в Message создай и наполняй структуру хидера, и либо контролируй ее целостность каждый вызов, либо проверяй целостность по какому-нибудь методу header.complete/header.iscomplete.
Если все свойства передаются зараз, обьяви один конструктор хидера, перечисли в нем свойства, и проверяй их заполненность - тогда если хоть одного свойства не будет, конструктор выбросит ошибку/исключение (как оформишь).
>одном файле можно описывать сколько угодно вложенных классов
Это да. Но я просто долго не мог придумать, как проверять заполненность Header при создании Body, если они формально независимы и просто являются членами одного класса. Думал, что придётся делать один класс вложенным в другой.
>Message создай и наполняй структуру хидера
В Питоне, эммм... Беда большая, с этими C-like structures.
Объясню логику: Создаём Message.Header, в него запихиваем кучу битовых данных.
Message.Body глядит в этих битовые данные хедера по определённому адресу, находит там значение и в зависимости от него создаёт экземпляр с тем или иным набором свойств.
То есть если у нас в хедере, по адресу 0x0215 лежит "1A", то мы создаём Body со свойствами "login", "password", "speed" и константой INIT_SEQ_FINISH в конце, а если там лежит "1B", то мы тупо создаём array of string. На самом деле там куча разных вариантов может быть.
Был бы хотя бы пример кода, млять... Упёрся в то, что никогда толком объектно не писал
flask - проще стартануть. Подойдет для написания маленьких приложений. Если захочешь написать что-то сложное, то нужно устанавливать всякие сторонние пакеты и следить за тем, чтобы оно все работало, потому что во фласке почти нихуя нету по умолчанию.
django - стартануть чуть сложнее. Плюс ее в том, что содержит кучу всяких приложений типа админки, регистрация пользователей и т.п. - много всего полезного. Возможно, для твоей задачи подойдет лучше.
По django есть книжка Адриана Головатого. Но она пиздец какая старая, примеры оттуда не смотри. А вот в целом почитать про фреймворк и как он устроен там можно. Ну и официальная документация, конечно. По фласку ниче не подскажу.
sqlite хорошо. нихуя настраивать не надо, питон его поддерживает, в джанге проект создается с ним по умолчанию - очень удобно. для маленьких и средних сайтов норм.
>То есть если у нас в хедере, по адресу 0x0215 лежит "1A", то мы создаём Body со свойствами "login", "password", "speed" и константой INIT_SEQ_FINISH в конце, а если там лежит "1B", то мы тупо создаём array of string
Т.е. хидер это просто селектор, который выбирает список полей тела?
И тебе нужно проверить, чтобы все свойства конкретного списка были заполнены?
Тогда решение очевидно: заставь проверять наполнение списка того, кто знает этот список - сам этот список. Т.е. запили списку метод header.isFull
Тело создавай, опросив метод isFull, и убедившись что все ок, а если не ок - надо как-то прореагировать: ошибка/исключение/запрос донаполнения/следующего атрибута
Сами списки полей можешь либо хранить в операторе селекта (select case/switch/что там еще у питона), либо, что в стиле ООП - каждый список опиши в отдельном подклассе/конструкторе подкласса.
Если списки пересекаются, во всех случаях можно сократить код, переопределив вызовы. Например если один опкод генерит структуру abc, а другой bc, то первую можно переписать в стиле: abc=a+bc, тогда bc будет вызываться в нескольких случаях.
Также, если в питоне есть наследование, можно сократить код за счет него, вынеся все общие части в общий класс, а разницу запилив в наследниках.
Хидер -- не просто селектор, там ещё куча всего передаётся, вообще это API для жутко древнего и считающегося очень надёжным протокола, который должен гарантированно передавать данные на скорости 4800, чуть ли не в глубокий космос, после ядерного удара и в условиях ведения РЭБ всеми вероятными противниками разом.
Документации нет. Исходников нет (да они бы мне и не помогли, если только тут есть кто-то, кто знает А68К). Нихера нет. А сделать надо, чтоб человеки работать с этим могли, а не голову себе ебать.
За консультацию огромное спасибо. Понял, что и где, буду реализовывать. Мегаполезный пост, всегда знал, что на Дваче мне нормально ответят.
Как просто, спасибо! Я догадывался, что он ссылается сам на себя. Хотя не пойму как твоё сообщение наставило меня на путь и все сразу получилось.
Я можно сказать вчера впервые учить язык программирования начал. Питон это нормальный выбор для новичка? Ну ещё и by_three(3) можно было написать и без x обойтись.
Давай разным вещам разные имена, уж хотя бы в пределах одной фукнции, ни до чего хорошего твой подход не доведёт.
Коротко о проекте: текстовая мморпг для мобильного приложения telegram.
Делаю это чисто ради фана, кто хочет/может помочь чем-то, пишите на почту, скоординируемся.
sekrvyatoixduhANUSgq+)mailPUNCTUMco,bRm
ещё один впечатлительный неофит? ты и на 1с писать будешь радостно улюлюкая, главное мотивацию подобрать.
У меня лежит funcs.py, в котором я храню функции для обработки данных чтобы не плодить говнокод во вьюхе. Как то разбиение данных регулярками, отправка реквестов и т.п. Вид файла соответственно:
import re
import grequests
import chlen
def regex_search():
def send_req():
def otsos_chlena():
Когда я импортирую во вьюху при помощи from funcs import regex_search, будет ли дополнительно импортирован только re, использующийся в ней, либо же будут выполнены инициализации нахер не нужных в этой функции grequests и chlen?
Конкретно и попунктно пажалста?
Например я пишу, тому що ненавижу сложные перлоподобные конструкции, нечитаемый код и сишный синтаксис. За долгие годы я его возненавидел так, что даже горькая редька сахаром покажется. А на Питоне, конечно, можно изъ...ваться, но совершенно необязательно, в отличие от тех же крестов и решёток. А скорость его мне по...й как-то, я макет на нём ваяю, а кодеры на крестах переписывают.
Блядь, ну вот а попробовать так сложно, что ли? Как вы вообще можете что-то там программировать, если банально не в состоянии даже поковырятся хоть немного, 5 строк текста в трёх файлах написать, вместо задания вопросов на сайте?
Да, всё будет импортироваться, потому что модуль всё равно целиком загружается. Да и откуда питону было бы знать, что ты там в какой-то конкретной функции используешь?
Но импортироваться они будут лишь один раз, потом из кэша уже.
А как же рекурсия при импорте. Я думал питон обходит функцию, импортирует вложенные объекты когда на них натыкается, и так далее.
При чём тут рекурсия? Он импортирует модуль и все его зависимости. Он не знает ни о какой функции, пока не заимпортит модуль. Вдруг ты там с одним именем нахерачил десять функций? Или в одном из импортов, напрямую не используемых в функции, изменяешь глобальную переменную другого модуля, который уже и используешь в функции? Пропускать что-то было бы очень опасно.
main.py http://pastebin.com/ZeB5eVZn
views.py http://pastebin.com/bmxsYFgF
settings.py http://pastebin.com/05PyA0ze
Как-то так. Когда загружается страничка,он выкидывает ошибку декрипт куки по 5-6 раз. Потом она загружается. Но стоит опять рефрешнуть - снова орет про куки. Хуй знает, что делать.
О, спасибо.
Я уже если честно сам не помню, лол.
Извиняюсь,что врываюсь и не по теме,но подскажите что за символы в названии ,гугл игнорит и пропускает мимо ,видя их как обычные символы
Широкие/узкие символы для отшибленных, http://www.utf8-chartable.de/unicode-utf8-table.pl (диапазон U+FF00 ~ U+FFEF выбери).
Если создавать новую сессию на каждый реквест, то как тогда держать в ней данные?
Гет сессион здесь -
https://github.com/aio-libs/aiohttp-session/blob/master/aiohttp_session/__init__.py
>придется отсказаться от aiohttp
Да, безусловно верное решение. Зачем пытаться решить проблему, создать issue на гитхабе или еще каким-то образом помочь в развитии библиотеки. Лучше сразу выбросить на хуй этот aiohttp.
Похоже, спотыкается на методе decrypt() https://github.com/aio-libs/aiohttp-session/blob/master/aiohttp_session/cookie_storage.py#L37 и бросает исключени IvalidToken
А вот причины, по которым это исключение может вызываться
https://cryptography.io/en/latest/fernet/#cryptography.fernet.Fernet.decrypt
https://github.com/pyca/cryptography/blob/master/src/cryptography/fernet.py#L73
Возможно это как-нибудь тебе поможет .
Раньше юзал sqlite, но памяти оно дофига жрет, по проивзодительности хз.
Pickle - памяти мало жрет, но нагрузка на диск по идее.
Можно же как-то запихнуть в оперативку пару значений и не таскать мертвым грузом?
Что не так?
Эээ. Ну если это какие-то констаты, то просто в модуль их выпиши. Как в джанге есть файл settings.py. Если ты хочешь перемещать данные куда-то, то тут сериализация поможет. Самый популярный вариант - просто джейсон в файле. В базу тоже можно писать, если у тебя данные подходят под это. Например я держал всякие настройки в таблице key_value в sqlite. Но у меня база и для других данных использовалась, только для настроек я бы не стал ее заводить.
Не, мне не конфиги, а меняющиеся довольно часто данные. Просто думается, что есть какие-то более изящные решения, чем просто жестко записывать на диск.
Ну ладно, буду по старинке. Вроде даже борда какая-то sqlite юзает.
Чем тебе обычный словарь не подходит?
Лол, если хочешь сохранять какие-то данные между запусками программы, то конечно надо на диск писать. В базу или в файл. Зависит от ситуации. Можешь нам ее описать подробнее и мы скажем.
Redis?
Ребята , посоветуйте годных идей для проектов. + Если не трудно , расскажите какие задачи дают перед принятием на работу (хоть отдалённо)
Настоящее асинхронное файловое апи для asyncio.
Асинхронную либу для web интерфейса с виджетами qt, чтобы можно было ui файл скормить.
> расскажите какие задачи дают перед принятием на работу
Зависит от работы.
Блог, на несколько пользователей, типа твиттер, с возможностью подписки на отдельных людей и лентой новостей которая формируется из записей тех пользователей на которых ты подписан.
(реальная тестовая задачка)
БОЖЕБЛЯТЬ, 10/10!!!!! Самая охуенная либа для анализа данных из всех виденных (помимо R, да и то не факт). Сколько раз эта няша меня спасала, когда приходилось обрабатывать ебанутейшие объёмы разноформатных данных и приводить их к единому знаменателю.
Но! Ей надо уметь пользоваться!
Я такое в ночь перед сдачей курсача на втором курсе делал. На питоне слишком просто, да и в интернете наверняка есть уже готовое.
Ниплоха. А если за 10 часов? Го общедвачевское соревнование? Через 10 часов выкладываем тут ссылко на Гитхаб с кодом в той степени готовности, в которой он находится? Ну либо отдельный треад запилить? Только чур код свой!
А. И сразу вопрос -- это Pyre Python если, или Django-Flask?
Потому что если второе, то бэкэнд этой фигни можно вообще за 2 часа напейсать
В Django by example было такое только с картинками и ещё чем-то модным. Рекомендую.
winter = (12,1,2)
spring = (3,4,5)
summer = (6,7,8)
autumn = (9,10,11)
if x == winter[0:3]:
print('Now is Winter!')
else:
print('Something is wrong !(')
season(2)
Это копия, сохраненная 3 февраля 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.