Это копия, сохраненная 23 июня 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
https://github.com/TheKnightsWhoSayNi/info/wiki/Hat
Алсо, обсуждаем идею создания наглядного веб-приложения для примеров на джанге или добавляем свои примеры в репозиторий.
https://github.com/TheKnightsWhoSayNi/
Прошлый тред.
>>474099
Пусть живёт, можно редактировать же. И джангу пусть нубы смотрят. Всяко лучше чем в 100500й раз пояснять одно и то же.
Любой впс тащемта. Сейчас еще ОБЛАЧНЫЕ впс есть, разница в том что платишь за заюзанные ресурсы, а не месячную абонетку. Такшта можно купить на час-два чуть ли не мейнфрейм.
Просто хотел чтобы конкретный посоветовали. Мне наверно даже хватит мощности обычного компа, просто чтобы он месяц без остановки крутился.
>мощности обычного компа
Хех. Ну vps обычно намного слабее обычного компа. Особенно остро ограничены место на харде/ссд и оператива. Это если дешёвые. Обычный комп можно снять на месяц где-то за 2к руб.
У тебя какие-то наркоманские понятия о хостинге. Впс не значит слабый или дешевый, впс значит только виртуалку, в противоположность дедику, которое настоящее железо. Вот и все.
https://www.digitalocean.com/pricing/ Например, с почасовой оплатой.
Ну да. Там 1 ядро - $10 в месяц. Хотя если так подумать, то питону то как раз одного ядра хватит. Я не буду писать какой-то супер-многопоточный скрипт.
http://ideone.com/yKCMYP
Нахуя ты пользуешься цсс-селекторами? ты не можешь скопировать из firebug'a xpath? ты ебанутый? not callable — итерация не на том селекторе.
Лол, третий (или какой?) тред со ссылкой на репозиторий этого пидораса, а там по-прежнему только REAME.md АХАХАХАХАХААХАХАХАХАХ))))))))))
Чтобы все ахуели как я могу.
>not callable — итерация не на том селекторе.
Тю, а как тогда отдельно функция работает?
Тю блять. Спасибо, помог очень. Я в ступор впал. Теперь буду pcharm запускать, он хотя бы предупредил, что я дебил.
первая страница - полет нормальные, ответ 200
дальше по ссылкам начинает редиректить(301) на ту же самую страницу
DEBUG: Redirecting (301) to <GET http://www..ru/item/52> from <GET http://www..ru/item/52/>
куки везде одинаковые, нормальные
юзер-агент подсунул моего браузера, пробовал в реальном браузере отключить js, никаких редиректов не видно.
с чем может быть связано?
str="Python, Bash, Linux, CSS3, Sex Anal Plugs"
print(str.split(","))
['Python', ' Bash', ' Linux', ' CSS3', ' Sex Anal Plugs']
так чтоле? или тебе нужно нужные слова просто отгрепать в нужный массив когда текст большой?
Я решил пока сделать так.
def get_tags(self):
ting = self.skills.replace(" ", "")
words = ting.split(",")
for item in words:
self.tags.add(item.lower())
Вопрос, может кто знает как генерить для моделей уникальные id, а то у меня тут совпадают сука.
Чет я не одупляю. Может есть проще способ... У меня короч есть 2 модели и я в обоих случаях добавляю их по modelName.id в закладки. В итоге короче модели сука пересекаются в итоге если есть Model1 с id=2 и Model2 с id=2 то она очевидно удалит Model1 вместо добавления к ней Model2. Как разграничить? Мне пришло в голову только генерить уникальные id, но примеров что-то не могу найти нормальных.
Алсо как тогда будет выглядить URL и как он будет выглядить например для такого id ~01a181d25ae5361c81
https://docs.python.org/2/library/uuid.html
uuid никогда не пересекаются, так как дохуя длинные.
вопрос как генерируются у тебя айди.
пусть оно при генерации смотрит последний айди и инкрементирует его... вообщем хз как там у тебя это работает. Джанго чтоле?
Что-то вроде SESSION.query(model.Translation).all().filter(id<=10)
Ну или как-то так. Гугли session.
Ну вообще-то то, это тру в некоторых случаях, перекладывать на код такие дела.
http://docs.sqlalchemy.org/en/improve_toc/orm/query.html
вроде есть лимит, который делает как select * from anal LIMIT 1,10; и выдаст первые десять
Да. id тупо от 1 до N. Есть какой-то способ переназначить это поле или надо ебашить еще одно?
class Resume(models.Model):
id = models.CharField(max_length=255,primary_key=True, default=uuid.uuid4, editable=False)
И получаю "Python int too large to convert to SQLite INTEGER"
сажа прилипла
https://djangosnippets.org/snippets/1262/
Сделал у себя
class Resume(models.Model):
id = UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
Получаю
ValueError: invalid literal for int() with base 10: '5e1e0735-e674-4a6c-a613-3a7cdb19e005'
Хули не так поясните?
>>479447
потому что могут быть только цифры...
если у вас проблемы с айдишниками именно в базе, нужно прихуячить автоинкримент.
https://www.sqlite.org/autoinc.html
Когда модель создает забить, и не указывает инкремент, берется прошлое значение и +=1 но уже в самой базе.
короче, я решил не делать клон, а просто скачивать сорцы. Такие дела.
Да никак! Вопрос дебильный, ответ такой же. Эта хуйня не имеет отфошения к пифону как к таковому.
Да никак! Вопрос дебильный, ответ такой же. Эта хуйня не имеет отфошения к пифону как к таковому.
Пифона изрешетили стрелами и он сгнил. И вонял оче вонюче.
Вставь себе зубы наконец, пифонец ебаный.
я ответил, к пифону отношения не имеет. что тебе не нрафится?
Да мне бля не это нужно. У меня есть ебаная таблица с колонкой id, которая маркируется джангой по дефолту как 1,2,3 и так далее, мне нужно, чтобы вместо 1,2,3 были другие хуёвины. Вроде тех что генерит uuid, я могу в поле id записать это или мне надо хуярить отдельно в поле uuid и по нему устанавливать уникальность?
Мне нравится элегантность with statement'ов. Особенно, с __enter__/__exit__. И в них удобно делать аналог RAII. Но если я хочу механизм именно как в RAII, что мне теперь делать – в Питоне же нет деструкторов?!
Так как для сбора вычислений и последующем сборе статистики желательно чтобы это еще и быстро работало.
Почему в питоне нет деструкторов? А __del__? Если я правильно понимаю что такое деструктор - метод, вызывающийся при удалении объекта.
И продолжу покуда у тебя буттхирт будет случаться.
>джангой по дефолту как 1,2,3
Не знаю как там джанга, но обычно нумерования айди перекладываю на базу с автоинкрементом, а фреймворк уже потом смотрит по факту.
любой функции. В Питоне скопинг на уровне функций делается. В отличии от плюсов, где любой вложенный блок (будь то if/while или просто скобочки {}) определяет свой скопинг, при выходе из которого объявленные в нем на стеке объекты освобождаются.
Поэтому можно делать a = new A(), и __del__ для a будет вызываться, когда ты выходишь из функции.
Так я понял.
Используй pip, Люк.
>есть файл
Который модуль? Ну так импортируй его как локальный. Положи в каталог рядом со своим исполняемым, и в нем же пиши import mylocalmodule. Самый дружественный метод для нюфагов. Или пип, да. Или pythonpath. Способов много, зависит от того что тебе нужно.
сап, /pr
Поставил на windows 8.1 python 3.4.
Хочу изучить django, запилить простенький бложик, изучит как работаем паттерн MVC. Т.к. перекатился с php, и у меня багет от всяких вьюшек, темплейтов и т.д, т.к. нихуя не понимаю как оно работает. Таки вот, поставил джангу командой.
pip django install вроде. Оно поставилось. И теперь вопрос. Куда оно поставилось?
Как запустить? Спасибо
А что, в пыхе чтоли нет шаблонов и мвц? Или ты хеллоурорлды писал? Очевидно pip все это куда-то ставит, самое первое что приходит на ум, почитать доки pip и доки django.
мимо-знаю-питон-на-уровне-hello-world
https://docs.djangoproject.com/en/1.8/topics/http/urls/
Django runs through each URL pattern, in order, and stops at the first one that matches the requested URL.
Да, тоже запускаю. Но не знаю, как дальше выжимать. Сдавал задание в Яндекс.Контест. Он все ругался, что времени не хватает. А я, как мне кажется, все по максимуму оптимизировал. Это что получается - те, кто с питоном, мимо. Дискриминация.
У него `преждевременная оптимизация` просто.
Покажи в каких местах код тормозит, мы тебе поможем.
z = []
z = x.split()
N = int(z[0])
M = int(z[1])
L = int(z[2])
R = int(z[3])
a = []
b = []
m = 0
for i in range(N):
if (N % (i + 1) == 0):
a.append(i + 1)
for i in range(M):
if (M % (i + 1) == 0):
b.append(i + 1)
for i in range(len(a)):
for j in range(len(b)):
if L <= a * b[j] <= R:
m += 1
print(m)
Вот мой лучший по результатам тестирования вариант. Давайте добьем. Там есть возможность "дорешевания" для себя.
z = []
z = x.split()
N = int(z[0])
M = int(z[1])
L = int(z[2])
R = int(z[3])
a = []
b = []
m = 0
for i in range(N):
if (N % (i + 1) == 0):
a.append(i + 1)
for i in range(M):
if (M % (i + 1) == 0):
b.append(i + 1)
for i in range(len(a)):
for j in range(len(b)):
if L <= a * b[j] <= R:
m += 1
print(m)
Вот мой лучший по результатам тестирования вариант. Давайте добьем. Там есть возможность "дорешевания" для себя.
Упс. Форматирование слетело к чертям. Как это удобней тут реализовать? Картинки неудобно.
может тебе ещё ключи от квартиры?
мне этот код принесет сотни тысяч, нахуй мне это сюда выкладывать
Конкурсы заточены под плюсы. Чтобы правильный™ алгоритм «входил» в ограничение по времени, а неправильный фейлился. Так как пифон медленней как числодробилка, то и правильный алгоритм зачастую не укладывается в ограничения.
Раз никто не знает, приходится пилить самому.
Удели немного внимания, анон.
Класс RationInt - расширение list'а. Это представление числа в любой системе счисления и арифметические действия над ним. Пока только сложение. Прошу помочь в реализации. Как бы сделать так, чтобы все быстро работало, а то 10 6 сложений занимают ~25 секунд. Это, наверно, много.
Ок, с этим разобрались. Давай дальше. Почему ты говоришь что __del__ вызывается при выходе из функции, когда:
Во-первых, у объекта не функции, а методы.
Во-вторых, __del__ вызывается при удалении объекта.
>Во-первых, у объекта не функции, а методы.
При чем здесь методы? Я говорю, что для объекта вызовется __del__ после выхода из его области видимости (на самом деле, я не уверен, возможно вызов будет отложен до какого-нибудь общего запуска gc). А областью видимости для объектов является скоп функции. Поэтому можно сделать RAII для Питона, если в __init__ открывать ресурс, а в __del__ закрывать. Механизм похож на плюсовый.
Но опять же, я не уверен, что __del__ вызывается всегда сразу после выхода из скопа.
>Во-вторых, __del__ вызывается при удалении объекта.
Ну удаляй его сам. Тогда его удаление не будет вызываться интерпретатором.
Понял.
ну короче графики функций. И как можно более красивший.
А именно для Django всё нужно сделать.
Matplotlib, Google Chart, что использовать? Может ещё что не знаю?
google: javascript chart
Вот такую картинку я хотел для питона запилить.
https://contest.yandex.ru/algorithm2015/
Это вот. С квалификационного этапа. На отборочных посложней. Они больше про математику, а не про код.
маргинал, плз)))
Я начну, а вы добавляйте. Это сделано в Coggle, кстати.
https://coggle.it/diagram/555a282055294fbd060c230b/f5c634fccac1408bf5e4a2ba325ce88054ab0cc5a34b26f664e908a9022bf339
Оставляйте свои почты, будем вместе пилить. А вообще, я пошел диплом делать пока что.
СДЕЛОЙ ЛУТШЕ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Не, серьезно. Там любой может редактировать. Твои ценные познания в английском нам пригодятся.
Что это за говно? Я нихуя не разобрался как оно работает и что там делать. Давай лучше в ТеХе сверстаем.
Чет я не уверен насчет Теха.
Там просто надо инвайты присылать грубо говоря. Сделай себе фейко-гугло-аккаунт и пости почту в тред, я тебя приглашу.
Потому что ты тупорылый.
Быстрее гуглоаккаунт зарегистрировать (3 минуты бесплатно, без смс), чем учить латех.
Спасибо, бро
Судари, смилостивитесь и накатайте регулярку, которая:
Определит, присутствует ли в строке , предположим:
'<iframe width="854" height="510" src="https://www.youtube.com/embed/IVpOyKCNZYw" frameborder="0" allowfullscreen></iframe>'
(и им подобным) ссылка на ютуб-видео, и выдернет из него (из кода для вставки) id видео. Спасибо.
http://ideone.com/j7Yfqb
Вот так пока. Дальше сам сделаешь? string замени на нужную строку, ideone ссылки прячет.
А нет, нельзя. Как выудить конкретный фрагмент?
Т.е. "Вася сосет ХУЙ до обеда", необходимо проверить, что он таки сосет а сгруппировать что именно, чтобы regexp.search(string).group() было равным 'ХУЙ'??
Я бородат, не выйдет. Буду тихо фапать на чужих тян.
Пришло время изучать регулярки. Регулярки хоро сами себя не изучат, но спасибо.
Меня интересовало что-то подобное: http://stackoverflow.com/questions/9889635/regular-expression-to-return-all-characters-between-two-special-characters. Без срезов строк и прочих костылей. Сам я не допетлял, вы - тоже. Но, опять же, спасибо.
http://sperasoft.ru/job/%D0%B8%D0%BD%D0%B6%D0%B5%D0%BD%D0%B5%D1%80-%D0%BF%D0%BE-%D1%80%D1%83%D1%87%D0%BD%D0%BE%D0%BC%D1%83-%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8E/
А фирма аутсорсинговая. Только не знаю зачем это тестеру, действительно. Хотя у них и сами моделлеры нифига не на разговорном уровне владеют.
Сап, пр. Питон только недавно начал изучать, сейчас пытаюсь написать текстовый редактор и у меня возникла такая проблема: не могу найти способ вывести текст на бумагу, то есть распечатать. Надеюсь на вашу помощь.
Хули тут не понятного. Методология тестирования это например умение писать Юнит тесты именнуемое "МОДУЛЬНОЕ ТЕСТИРОВАНИЕ". Просто сидишь на википедии врубаясь в это говно и почитывая, гуглишь примеры и делаешь парочку для наработки уровня. Этапы разработки ПО еще проще стандартное Проектирование, Разработка, Тестирование, Отладка, Сопровождение заменили на пафосные Пре Альфа, Альфа, Бета, Релиз и Пост релиз. Смысл в том, чтобы ты понимал, что в пре альфе тебе и альфе тебе придётся писать дохуя, в бете еще больше, в релизи тебе надо будет ебало заткнуть о багах, а в пост релизи править патчами вечность.
Начинай отсюда. Тут описаны все научные и инженерные названия вариаций и методик.
https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F
Зависит от того чего ты хочешь от веба. Пользуюсь джанго вполне удобно, рельсами не пользовался, но вроде господа недовольны гемами, php на мой взгляд мёртв, но дремучесть заказчиков даёт гарантированную постоянную работу.
Django
>LAMP
>LAMP (software bundle), a platform consisting of Linux, Apache, MySQL and Perl/PHP/Python
Какой же ты наркоман.
Руби со своими рельсами сдох, выбирай из php и питона.
Просто в универе будет курс на выбор по вебу, где нужно будет выбрать между ними
Лол, виндовыблядку НЕПРИЯТНО
Питон тоже сдох. Остается только php или 1c.
На 1с можно писать rest api http://habrahabr.ru/post/148658/
Береш его и ангуляр и делаеш SPA, даже английский учить нинужно
Вот еще подождем пару лет и сделают транслятор 1с в джаваскрипт и тогда ваще ничо не нужно будет знать
За 1с будущее, уже сейчас много работы, а потом работы будет еще больше. Не то что rails
Питон настолько сдох, что шестой по популярности tiobe и stackoverflow, третий по гитхабу, и везде только растет, лол.
>1c
1с - продукт манямирка пост-совка, используется только в нем, и имеет такое же светлое будущее.
Толсто карочи.
http://redmonk.com/sogrady/2015/01/14/language-rankings-1-15/
Петон на 4, раби на 5
1С там конечно нету, это же пендосы исследование делали
В империи только 1с и используется, сам зайди на hh и проверь, там петон твой никому не нужон
Интересно как это я на пестоне в Империи работаю, да еще не на фрилансе как рубисты, а по ТК.
>В империи только 1с и используется
>только
Ясн. Катись обратно в 1с тред и не засирай наш.
Да похуй как ты там работаешь, статистика от этого не изменится
Я вот знаю трудоустроенных по ТК рабистов, от этого же не прибавится работы на раби, как думаешь?
hh.ru по ДС
>программист ruby Найдена 91 вакансия
>программист python Найдена 228 вакансия
>программист php Найдена 455 вакансия
>программист 1c Найдена 723 вакансия
Вполне норм, питонам работу найти реально. Я проблем не испытывал. Главное что популярность языка растет, а не падает в отличии от руби/перла. И количество вакансий тоже растет.
Еще не стоит забывать что питон серьезно используют юниксовые админы, и если откинуть "программист" то:
>python Найдено 419 вакансий
>php Найдено 589 вакансий
Вполне норм, раби работу найти реально. Я проблем не испытывал. Главное что популярность языка растет, а не падает в отличии от перла/ерланга.
Есть ли люди работающие со связкой nmap+python? Я сча использую libnmap и как-то оно не стабильно - иногда зависает процесс нмапа без всякой возможности это контролировать кроме как просто убивать весь тред в котором запущен libnmap.process - есть альтернативы?
Ну короче либо ищешь библиотеку нужную, либо гуглишь что такое PostScript или как-то так.
Спасибо.
У меня работает на Питоне 3.2, поставь его.
word in text
Например, такой код
for line in open(file, 'r').readline():
print (line.split(':')
Вылетает с IndexError: list index out of range
Спасибо, то, что нужно.
C++ - не хватает скорости и низкоуровневости - ассемблерные вставки в питоне пока не очень есть
Java - вполне может заменить, но embeded python пока не очень есть
Благодарю! Кстати, слышал, что в Python можно испльзовать библиотеки C/C++, а что насчёт библиотек Java?
Можно вроде, есть така хуйня - Jython
Почему нет? Если ебучий жопаскрипт в лице ноды на мой сервер-сайд пришел, то я приду на клиент-сайд жс. Да и чем питон хуже коффескрипта/тайпскрипта и всего этого говна - https://github.com/jashkenas/coffeescript/wiki/List-of-languages-that-compile-to-JS ?
Компилироваться в жс нынче не умеет только ленивый. Вот мне и интересно, как оно там.
> Если ебучий жопаскрипт в лице ноды на мой сервер-сайд пришел, то я приду на клиент-сайд жс.
Хорошо сказал.
Наверно тебе придется самому погуглить. Вряд ли тут есть кто с этим связывался.
Свежая статья о моей любимой библиотеке.
Опакетить я и без хабралюдей смогу. Разбуди когда киви с py3 подружится. Прямо болдом в шапке напишем, такая то радость.
Да, было бы годно конечно. С другой стороны что конкретно требуется от питона третьего в киви?
С пунктуацией налажал.
Хорошая у тебя каша в голове. Я начал расписывать, а потом все стер. Потому что охуеть какая хорошая каша.
Нуууу. Начни по порядку. Я понимаю, что сайт - это обычный скрипт, вызывающийся программой сервером, которая в свою очередь крутится в бесконечном цикле, слушая определенный порт. Просто я не знаю что там конкретно у этого digital ocean'а внутри.
Внутри обычная виртуалка с линуксом, которая хостится на линуксе, через kvm или lxc насколько я знаю. Такую хуйню часто называют сервером/vps. Чтобы запустить хоть что-то, будь то скрипт или веб-сервер тебе нужно предоставить все, что нужно интерпретатору/Веб-серверу, а это обычно полноценная ОС, или минимальный чрут, или тот же lxc+docker.
У DO ты получишь свой полноценный сервер с линуксом, с ssh доступом и рутом, а дальше крути там что душе угодно. Можешь вообще майнкрафт запустить, поебать.
Блять, дополню. "Сервером" может называться и физическая железка, и виртуалка, и программа. Зависит от контекста. А то ты похоже под сервером понимаешь только программу, а другое почему-то называешь "компом", лол.
Все понял, спасибо.
А вот такой вопрос тогда. Обычно же vps управляется через SSH? Или есть другие способы. Просто вот например запустил я через SSH какой-нибудь бесконечный скрипт и он работает. Но как только я отключился, то и скрипт выключается? Как включить что-то чтобы это что-то работало независимо от меня и чтобы я мог просто посматривать все ли в порядке там?
Демонизируй. Если уже есть systemd - удобно с его помощью. Там юнит в две строки пишется. Если нет и лень писать инит то максимум просто - setsid prog &>> log &
в двух словах.
когда ты запускаешь любую аппу, то она запускается от родительского процесса(ssh консоль), и когда родительский процесс завершается, система завершает все дочерние(чтобы память не текла и вообще нах нужно).
чтобы запустить процесс на долго, то его нужно запускать от процесса который там будет вечно крутится(запихать в скрипты загрузки, что дефакто трувей), либо поменять айди родительского процесса на инит.
Ну это как бы именно то, что сейчас делает libnmap - запускает nmap и парсит xml. Мне-же ищется какая-то более глубокая интеграция, тк нмап имеет свойство время от времени подвисать, а писать обертку вокруг треда с нмапом мне не хочется тк я не уверен, что это правильное решение.
Не знаю, у меня нмап никогда не подвисал. Посмотри его ман или доки апи на таймаут. Если нет - можно по хардкору /usr/bin/timeout 10 nmap -... через шелл.
Вот в этом проблема - если убивать нмап по таймауту то xml сгенеренный будет не валидный и его будет не спарсить (штатными средствами).
Кароч ситуевина такова - нужно периодично сканить N хостов, где N > K, а K ~ 7500. Хосты сканятся группами разных размеров от 0 до 5000, время от времени нмап увлекается и висит на группе 14+ часов без видимого прогресса - ессно, что висит он на конкретном хосте каком-то - но мы не знаем на каком и варианта "пропустить хост" у нмапа нету. Плюс никак не проконтролировать чтож там у нмапа внутри происходит
>Кароч ситуевина такова - нужно периодично сканить N хостов, где N > K, а K ~ 7500
Кароч так бы сразу и сказал, хакир. Тебе нужен zmap, а не нмап. Им хоть все интернеты за день просканить можно.
А ты парси обычный лог.
Тащемта в скрипты умеет все, что можно вызвать из шелла. Но АПИ тоже есть, правда сишное. И кастомные пробы есть, тоже сишные.
https://zmap.io/documentation.html Смотри 5.1 и 5.2
Если тебе лень ебаться с си или биндингами питон-си, то змапом можно просто сделать первичное сканирование через шелл, найти нужные хосты, а потом уже более точно тыкать нмапом. А просто нмапом ты даже 7500 охуеешь делать. Он не для того.
Ну вот сейчас нмапом+питоновские тесты оно работает примерно 24 часа - ну там +-
Сегодня попробую подсунуть туда zmap посмотрим, что получится. Спасибо!
>А просто нмапом ты даже 7500 охуеешь делать. Он не для того.
Я миллионы хостов сканировал, на наличие открытых прокси.
>При том что кастомные пробы для змапа делаются через модули на си.
https://nmap.org/book/vscan-fileformat.html
>Вот скажи, умеет ли в скрипты nc?
При чём тут nc, мудак, если тебя спрашивают про NSE?
Кароч смотрю я на zmap, он вроде хорош в том плане, что он простой как палка, но блин сканит ОДИН порт.. грусняво как-то
>Какой нахуй NSE
https://nmap.org/book/nse.html
>Какой нахуй нмап.орг, если мы давно говорим про Zmap
Маня, тебя спрашивают есть ли такое же в змапе?
>Маня, тебя спрашивают есть ли такое же в змапе?
Маня, он дергает бинарник с опциями и парсит его вывод. Про NSE в треде слова не было, пока ты не вкатился.
Блять, ебаный дегенерат, ты понимаешь, что nmap использует скрипты при сканировании?
Но ведь nmap не использует скрипты для сканирования и NSE это нашлепка сверху для моддеров, сканирует нмап все тем-же сястым кодом, что и много лет назад
Именно скрипты и использует, для определения версий сервисов, подбора паролей и т.п.
Хорошо, ты прав, мы говорим о разном сканировании - подбор паролей и подобные действия не входят в "сканирование", а все то, что передается в параметре -sX - реализовано таки в сястом коде.
Кстати - посмотрел код - баннеры -sV тоже в сястом коде выдираются
А потом мне с этими данными что делать? Вообще, что-то слишком много получается. У меня в базе одна таблица. Там шесть полей. Пять int'ов, включай id и одно поле TEXT. И получается для 315к записей вес бд 1.9 гб. Сейчас посчитаю точно - получается ~8кб. Может разделять на несколько бд или какие методы то существуют?
по почте пересылать.
так как sqlite это просто говнофайл, и логика ложиться модуль языка, а он в оптимизации заморачиватся не будет, так как важно чтобы сохранялась скорость инсертов... Поэтому файл будет расти. на стековерфлоу(первая ссылка в гугле по твоей проблеме) люди жалуются на базы в 160 гигов....
Там рекомендуют юзать это.
http://www.sqlite.org/lang_vacuum.html
Это говно проходит валидацию, но не обновляется http://ideone.com/m7ijQf
Маня узнала про скрин на хабрике и рефлексом пихает его где нужно и не нужно.
А чо не так со скрином? Это, конечно, не продакшн решение, но свою задачу выполняет. В отличие от & процесс не прибьется когда закончится ssh-сессия.
Два нормальных ответа в треде, нет, надо пропихнуть скрин. Ой, все, иди из своего путти трояны вычищай.
ls - coreutils. Скрин - нет. Жопу с пальцем сравниваешь. Нахуй ваш парашный скрин, если есть правильные методы?
>ls - coreutils. Скрин - нет.
>кукарекает за coreutils
>советует systemd
Говорю же, ебонутый. Скрину почти 30 лет, хуй знает как можно пользоваться ssh без screen, да даже в повседневной консольке он полезен.
Помимо systemd есть правильные способы. Все, что нужно - передать управление иниту и отвязать дескрипторы от консольки. Посмотри на инит-скрипты, видишь там хоть где-то скрин? Нету там его. Потому что нормальные люди делают правильно, а не пихают единственный известный им способ во все дыры.
perdolik way
http://ideone.com/BkwVbd
https://docs.djangoproject.com/en/1.8/topics/forms/modelforms/#the-save-method
> This save() method accepts an optional commit keyword argument, which accepts either True or False. If you call save() with commit=False, then it will return an object that hasn’t yet been saved to the database.
А где их искать? Если это имеет, то я использую python + tkinter и хочу, чтобы выводилось окно настройкой печать, выбором принтера и пр. Позволяет ли tkinter это сделать, если нет, то какой гуй лучше всего выбрать и каким модулем для печати лучше всего в таком случае воспользоваться?
Да, и насчет PostScript 'а. Гугл говорит, что он используется для создания всякого рода изображений. Может я не то пооткрывал и не так искал, но нашел только это.
Тащемта только коммит фоллз убрать, если ты уберешь якобы избыточное и юзера, то у тебя будет каждый раз пустая форма, потому что ты нихуя не забираешь данные.
Анончики, какой есть годный аналог pygame? Буду пилить простое демо интегрирования Верле, чтобы мышкой можно было графы дергать, по типу WorldOfGoo.
pyglet. Но он посложней будет.
https://stackoverflow.com/questions/7296716/what-is-dict-keys-dict-items-and-dict-values
Кажется адекватный ответ. Сам тоже не знал.
>def f(foo):
Понятно что под foo может скрываться что угодно, от инта до жирного класса. Как ИДЕ может осилить автодополнение такого foo? Какая умеет?
не понял.
ты вот создал метод
def f(foo):
где foo это та хуйня которая будет внутри метода. По факту, так как она внутри метода, она приват и уникальна, поэтому дополнять ее не имеет смысла.
Во, примерно такое и представлял. Но в чужом коде еще ни разу не видел. Ну, кроме длинных портянок аргументов где это действительно нужно. Как на такое смотрят всякие пепы?
На самом деле не нужно, если тебе не нужно менять логику работы в зависимости от того чего тебе нужно.(как например Сортед тут недавно обсуждали)
короче если код читаем, и при этом испольняется лучше. то заебись
У меня просто немного припекает. Допустим передаю в длинную функцию жирный класс с кучей методов, а потом по всей функции дергаю его методы. Вот тут автодополнение подводит, и приходится вручную смотреть что у него там есть.
нахуя если жирный класс можно испортировать из отдельного файлика и нормально дергать его статик-методы?
Инстанс класса, ок. Уже сделанный где-то вне функции. Ну вот такой вот код достался, и в попытках его понять я уже волосы на жопе рву.
Чет бэд дезигн какой-то
"""a
b
c
d"""
вывелось как abcd?
Сам опытным путем получил что надо просто \ в конце каждой строки ставить.
Как-то нерационально.
>>482560
Короче я понял как делать правильно, без таких дефолтных присваиваний. type hinting называется, почти все IDE умеют. Вот для vim/jedi например https://jedi.readthedocs.org/en/latest/docs/features.html#type-hinting
Блять, тяжело в динамическую типизацию.
анон, тебе полностью рабочую программу чтоли надо?
яделаю диплом на питоне мне блять даже не обязательно сделать работающим основной модуль.
Пусть вообще сосут с этим, буду я показывать свою прогу. которая миллионы мне потом принесет
сдавал диплом с кодом, который я даже не писал, и сомневаюсь даже в правильности синтаксиса в нем. Не говоря о том что он должен быть рабочим.
>сомневаюсь даже в правильности синтаксиса в нем
Ничего не сказали? Так и в псевдокоде писать можно.
другой анон включается в диалог
вообще кто будет проверять твой код там?
У тебя фиксированное время, за которое ты должен дать максимум фраз о своей теме диплома и как ты его делал. остальное приложится
Я бы позапускал, если тема интересная.
Я в программе явно сказал - каждые 1000 добавленных строк в базу данных надо комитить. Но я смотрю в другом просмотрщике баз данных и вижу, что новые записи постоянно появляются. Почему так? Ведь в документации написано что только после connection.commit() все записывается.
Да.
а как этот список выглядит?
Я бы завёл бинарное дерево, затем перебирая исходный список добавлял бы в это дерево ноды. Затем итерация по дереву и установка связывающих пойнтеров in-place.
Суть такова, есть задачка:
Write a program to read through the mbox-short.txt and figure out the distribution by hour of the day for each of the messages. You can pull the hour out from the 'From ' line by finding the time and then splitting the string a second time using a colon.
From [email protected] Sat Jan 5 09:14:16 2008
Once you have accumulated the counts for each hour, print out the counts, sorted by hour as shown below. Note that the autograder does not have support for the sorted() function.
Застрял на добавлени значений из словаря в список:
fname = raw_input("Enter file name: ")
if len(fname) < 1 : fname = "mbox-short.txt"
fh = open(fname)
for line in fh:
line.rstrip()
dic = dict()
if not line.startswith('From '):
continue
else:
words = line.split()
time = words[5]
q = ':'
t = time.split(q)
hours = t[:1]
for cnt in hours:
dic[cnt] = dic.get(cnt,0) + 1
lst = list()
for (k,v) in dic.items():
lst.append( (k,v) )
print lst
Выдает в результате [], что не так сделал?
Суть такова, есть задачка:
Write a program to read through the mbox-short.txt and figure out the distribution by hour of the day for each of the messages. You can pull the hour out from the 'From ' line by finding the time and then splitting the string a second time using a colon.
From [email protected] Sat Jan 5 09:14:16 2008
Once you have accumulated the counts for each hour, print out the counts, sorted by hour as shown below. Note that the autograder does not have support for the sorted() function.
Застрял на добавлени значений из словаря в список:
fname = raw_input("Enter file name: ")
if len(fname) < 1 : fname = "mbox-short.txt"
fh = open(fname)
for line in fh:
line.rstrip()
dic = dict()
if not line.startswith('From '):
continue
else:
words = line.split()
time = words[5]
q = ':'
t = time.split(q)
hours = t[:1]
for cnt in hours:
dic[cnt] = dic.get(cnt,0) + 1
lst = list()
for (k,v) in dic.items():
lst.append( (k,v) )
print lst
Выдает в результате [], что не так сделал?
fname = raw_input("Enter file name: ")
if len(fname) < 1 : fname = "mbox-short.txt"
fh = open(fname)
for line in fh:
line.rstrip()
dic = dict()
if not line.startswith('From '):
continue
else:
words = line.split()
time = words[5]
q = ':'
t = time.split(q)
hours = t[:1]
for cnt in hours:
dic[cnt] = dic.get(cnt,0) + 1
lst = list()
for (k,v) in dic.items():
lst.append( (k,v) )
print lst
И пример входных данных из этого текстовика.
From [email protected] Sat Jan 5 09:14:16 2008
Return-Path: <[email protected]>
Received: from murder (mail.umich.edu [141.211.14.90])
\t by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
\t Sat, 05 Jan 2008 09:14:16 -0500
X-Sieve: CMU Sieve 2.3
Received: from murder ([unix socket])
\t by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
\t Sat, 05 Jan 2008 09:14:16 -0500
Received: from holes.mr.itd.umich.edu (holes.mr.itd.umich.edu [141.211.14.79])
\tby flawless.mail.umich.edu () with ESMTP id m05EEFR1013674;
\tSat, 5 Jan 2008 09:14:15 -0500
Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
\tBY holes.mr.itd.umich.edu ID 477F90B0.2DB2F.12494 ;
\t 5 Jan 2008 09:14:10 -0500
Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
\tby paploo.uhi.ac.uk (Postfix) with ESMTP id 5F919BC2F2;
\tSat, 5 Jan 2008 14:10:05 +0000 (GMT)
Message-ID: <[email protected]>
Mime-Version: 1.0
Content-Transfer-Encoding: 7bit
Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 899
for <[email protected]>;
Sat, 5 Jan 2008 14:09:50 +0000 (GMT)
Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
\tby shmi.uhi.ac.uk (Postfix) with ESMTP id A215243002
\tfor <[email protected]>; Sat, 5 Jan 2008 14:13:33 +0000 (GMT)
Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
\tby nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m05ECJVp010329
\tfor <[email protected]>; Sat, 5 Jan 2008 09:12:19 -0500
Received: (from apache@localhost)
\tby nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m05ECIaH010327
\tfor [email protected]; Sat, 5 Jan 2008 09:12:18 -0500
Date: Sat, 5 Jan 2008 09:12:18 -0500
X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to [email protected] using -f
To: [email protected]
From: [email protected]
Subject: [sakai] svn commit: r39772 - content/branches/sakai_2-5-x/content-impl/impl/src/java/org/sakaiproject/content/impl
X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
X-Content-Type-Message-Body: text/plain; charset=UTF-8
Content-Type: text/plain; charset=UTF-8
X-DSPAM-Result: Innocent
X-DSPAM-Processed: Sat Jan 5 09:14:16 2008
X-DSPAM-Confidence: 0.8475
X-DSPAM-Probability: 0.0000
Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39772
Author: [email protected]
Date: 2008-01-05 09:12:07 -0500 (Sat, 05 Jan 2008)
New Revision: 39772
Modified:
content/branches/sakai_2-5-x/content-impl/impl/src/java/org/sakaiproject/content/impl/ContentServiceSqlOracle.java
content/branches/sakai_2-5-x/content-impl/impl/src/java/org/sakaiproject/content/impl/DbContentService.java
Log:
SAK-12501 merge to 2-5-x: r39622, r39624:5, r39632:3 (resolve conflict from differing linebreaks for r39622)
На пасту хз как, кидаю скрин.
Получается что если ставлю после dic[cnt] = dic.get(cnt,0) + 1 печать print dic то все занчения добавляет в словарь, но с новой строки если print dic делаю результат []
From [email protected] Sat Jan 5 09:14:16 2008
Return-Path: <[email protected]>
Received: from murder (mail.umich.edu [141.211.14.90])
\t by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
\t Sat, 05 Jan 2008 09:14:16 -0500
X-Sieve: CMU Sieve 2.3
Received: from murder ([unix socket])
\t by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
\t Sat, 05 Jan 2008 09:14:16 -0500
Received: from holes.mr.itd.umich.edu (holes.mr.itd.umich.edu [141.211.14.79])
\tby flawless.mail.umich.edu () with ESMTP id m05EEFR1013674;
\tSat, 5 Jan 2008 09:14:15 -0500
Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
\tBY holes.mr.itd.umich.edu ID 477F90B0.2DB2F.12494 ;
\t 5 Jan 2008 09:14:10 -0500
Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
\tby paploo.uhi.ac.uk (Postfix) with ESMTP id 5F919BC2F2;
\tSat, 5 Jan 2008 14:10:05 +0000 (GMT)
Message-ID: <[email protected]>
Mime-Version: 1.0
Content-Transfer-Encoding: 7bit
Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 899
for <[email protected]>;
Sat, 5 Jan 2008 14:09:50 +0000 (GMT)
Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
\tby shmi.uhi.ac.uk (Postfix) with ESMTP id A215243002
\tfor <[email protected]>; Sat, 5 Jan 2008 14:13:33 +0000 (GMT)
Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
\tby nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m05ECJVp010329
\tfor <[email protected]>; Sat, 5 Jan 2008 09:12:19 -0500
Received: (from apache@localhost)
\tby nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m05ECIaH010327
\tfor [email protected]; Sat, 5 Jan 2008 09:12:18 -0500
Date: Sat, 5 Jan 2008 09:12:18 -0500
X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to [email protected] using -f
To: [email protected]
From: [email protected]
Subject: [sakai] svn commit: r39772 - content/branches/sakai_2-5-x/content-impl/impl/src/java/org/sakaiproject/content/impl
X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
X-Content-Type-Message-Body: text/plain; charset=UTF-8
Content-Type: text/plain; charset=UTF-8
X-DSPAM-Result: Innocent
X-DSPAM-Processed: Sat Jan 5 09:14:16 2008
X-DSPAM-Confidence: 0.8475
X-DSPAM-Probability: 0.0000
Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39772
Author: [email protected]
Date: 2008-01-05 09:12:07 -0500 (Sat, 05 Jan 2008)
New Revision: 39772
Modified:
content/branches/sakai_2-5-x/content-impl/impl/src/java/org/sakaiproject/content/impl/ContentServiceSqlOracle.java
content/branches/sakai_2-5-x/content-impl/impl/src/java/org/sakaiproject/content/impl/DbContentService.java
Log:
SAK-12501 merge to 2-5-x: r39622, r39624:5, r39632:3 (resolve conflict from differing linebreaks for r39622)
На пасту хз как, кидаю скрин.
Получается что если ставлю после dic[cnt] = dic.get(cnt,0) + 1 печать print dic то все занчения добавляет в словарь, но с новой строки если print dic делаю результат []
Берешь и копируешь код на ideone.com/pastebin.com/whatever
У тебя проблема в области видимости dic. Перенеси его, вот так http://pastebin.com/G43rQsgv
*точно
Сервера приватные, один хуй я никогда ими не пользовался и мне нужен какой-то. Я пробую pythonanywhere, но он сука не дает почему-то smtp и выдает Service 500 на самое простоё мыло, хотя я всё прописал правильно. Теперь ищу чуть более простой и терпимый к smtp сервисам хуйню.
>pythonanywhere
Это параша уровня шаред-хостингов из нулвых? Воу-воу, не думал что они еще живы. Ну тогда да, хуй тебе, а не почта.
Идешь в гуголь, пишешь "впс дешева безсмс", берешь нормальный сервер с линуксом, делаешь на нем что хочешь. Могу digital ocean посоветовать, но вообще похуй, смотри сам по ценам и качеству.
>digital ocean
Да мне нужно ебаный простой сайт с почтой, чтобы послать ебаные письма. Сайт от силы проработает день или два и потому нужен бесплатный.
Ну ахуеть теперь.
Но можно провернуть иначе. Не городить smtp, "сайт с почтой" и прочую хуйню, а отсылать через публичный ящик на каком-нибудь яндексе. Питоном надо только залогиниться в него и собственно отправить. Посмотри на imaplib, например.
Это конечно круто, но нихуя не понятно.
Вот моя форма с использованием дефолтного send_mail. http://ideone.com/tkMlAE
Как она должна выглядить с использованием smtplib?
pythonanywhere на бесплатных тарифах не дает тебе работать с чем-то не локальным.
У меня есть код отправки писем с обычный почты. Сейчас найду. А вот и он.
http://ideone.com/gfdNBp
>fullspace.ru
>поддержка языков и технологий python 2.7
Мой проект на 3.4, таки дела, но спасибо.
Что должен уметь пиздон/джанго джуниор?
Алсо, стоит ли использовать ОРМ и в каких случаях?
Сори анон, tkinter юзаю.
Все посоны, решил проблему. Есть оказывается параметр rowspan.
Поссал на тебя.
a = Color(r, g, b, alpha)
b = a
В таком случае, если я поменяю a, то b тоже изменится? А если поменяю b? И если да, то как этого можно избежать и сделать их независимыми друг от друга? Посоветуйте, где можно почитать поподробней про такие ситуации.
>>483543
А как это можно обойти? Например, как вот здесь в render_color просто перенять значения color, не обрастая ненужными связями?
http://pastebin.com/ZdqjbQzx
У меня для SСSS bless на проекте нужен был руби. Я его два дня ставил, оно настолько конченое. И гем этот просто ниочем. Японцы такие японцы.
Это так жирно, что тебе прийдется вытечь из треда.
Ну например мы запихнули список файлов\коннектов\сайтов, хотим завернуть их обьекты, чтобы потом с ними что-то синхроно\асинхроно в несколько или один поток делать. Что можно почитать на эту тему.
вообще есть ли книга, про prodaction-way, с примерами и шаблонами, как надо реализовать те или иные вещи правильно.
Просто обхекты запихивать в лист\дикт и оттуда с ними общаться?(как на пике?)
Ну есть python cookbook 3rd edition.
А в чем проблема создать сколько-то там объектов и каждый из них поместить в список. У тебя будет список объектов. К каждому можешь обращаться по индексу и делать с ними что захочешь.
Есть цикл, в цикле выводятся данные в консоль. Для того, чтобы эти данные не буферизировались, и не выбрасывались в консоль большими кусками, в версии 3.3+ у функции print() есть аргумент flush.
Но у меня есть машина (raspberry pi) с python версии 3.2, обновляться, ради одной функции в одном приложении, пересобирая питон, не хочется.
Подскажите, как это оформить без помощи этого аргумента?
Признаться даже не очень понимаю о чем речь, но вот что выдало в первой строке гугла.
http://stackoverflow.com/questions/230751/how-to-flush-output-of-python-print
Надо чтоб qwerty-only результат нажатия на клавишу не зависел от выбранного языка. q - й, u - г, и т.д. Можно конечно делать in (q,й), но в мире еще дохуя раскладок, где на клавише q совсем другие символы.
На Си я делал это легко, просто брал keycode клавиши через libxcb. На питоне ничего толкового найти не могу, только предложения соснуть хуйца использовать Си.
А, тогда не знаю, не сталкивался. Я бы копал в сторону PyGame какого-нибудь - или прямо с ним, или что-то, что оно использует для обработки юзеринпута. Ну и вообще на pypi по слову input посмотрел.
http://rghost.ru/8PgqTwNGV
class T():
class T:
По сути между ними различий нет? Как правильней в py3 делать?
Нет, нету. Как хочешь. Но очевидно что если пишешь 2/3 совместимый код, то лучше объявлять с object.
Спермопроблемник щтоле?
Как унаследовать класс window?
>print(curses.newpad(2,2).__class__)
<class '_curses.curses window'>
Не, я конечно могу сделать self.window = newpad(), но просто интересно как унаследовать. Или нельзя? Почему?
[1.0, 1.1, 1.2000000000000002, 1.3, 1.4000000000000001, 1.5, 1.6, 1.7000000000000002, 1.8, 1.9000000000000001, 2.0, 2.1, 2.2, 2.3000000000000003, 2.4000000000000004, 2.5, 2.6, 2.7, 2.8000000000000003, 2.9000000000000004, 3.0]
При C такой хуйни не было! Хотя может и была но я не замечал Не серьёзно откуда на таком простом вычислении ошибка и почему она зависит от фазы луны (прогон в разное время выкидывает погрешность в разных местах)?
def selection():
\t#global m, v, mom
\tprint """\
Enter:
'1' for kg, m/s
'2' for g, cm/s
\t\t"""
\tx = input()
\t
\tif x == 1:
\t\tm = 'kg'
\t\tv = 'm/s'
\t\tmom = 'kg-m/s'
\telif x == 2:
\t\tm = 'g'
\t\tv = 'cm/s'
\t\tmom = 'g-cm/s'
\telse:
\t\tprint 'Error: Wrong number'
\t\tselection() #I have to set loop, rather than a recursive call
\tcalculation(m, v, mom)
[/code]
a.insert(0, [])
print(a) #[[...]]
[/code]
Что это за еботека? Я правильно понял, что создал бесконечный пустой массив? Как оно так вышло? Почему питон мне ничего об этом не сказал? Это можно как-то использовать?
Мои мысли: я загадываю число от 1 до 100, компьютер должен рандомно вывести мне первое число, а я ему в ответ больше оно моего или нет, в соответствии с этим, половина чисел отбрасывается. Например я загадал число 65, он мне рандомом пишет число 45, я говорю мол больше, и все числа до 45 отбрасываются. И так пока не всплывёт мое число. Я уверен что у этого способа есть какое-то название. Хотелось бы почитать об этом. Это не с логарифмированием ли связано?
И соответственно если я примерно представляю как это должно работать на словах, как реализовать не питоне? Это вопросы после главы к книге М. Доусона - программируем на python. Спасибо.
Двоичный поиск, тащемта.
http://ideone.com/YQ8aBP
Неее, не то. Вынеси из класса - будет работать. Заверни в класс - перестанет.
Да, уже смотрю его. Но мне интересно что за странный класс такой <class '_curses.curses window'>, и можно ли с ним работать как с нормальным классом?
Ок, спасибо. Думал туплю.
В комментах явно флоу описан. Лист компрехешшон работает как функция. Костылить ради такой ерунды явно не стоит.
Если честно я ничего не понял. Совсем. Даже если как функция, что мешает ей съесть ещё параметров из класс скоупа? В глобальном же съедает. И не давится.
"Костылить" - это то что мне придётся сейчас сделать вместо компрехеншена.
«Статические»/классовые переменные недопступны пока определение класса не закончено. Ибо обращаеться к ним надо Yoba.a, а Yoba ещё не определено.
Ишь ты! Первый раз такое вижу. Не могу понять почему это работает, но не рекомендую так делать. Думаю это «случайность», что это работает, а не умышленно созданное поведение.
Зачем тебе вообще это понадобилось?
С фига ли нельзя?
https://docs.python.org/3/reference/datamodel.html#executing-the-class-body
Методы, свойства - всё это создаётся прямым выполнением кода как есть.
Как же я хочу уже выкроить свободного времени и выучить хаскель с теоркатом.. Заебала уже эта борьба с ветряными мельницами.
Ты читать умеешь? Там написано о вышестоящих скоупах. Типа класс в функции или обращение к глобальным переменным при определении класса.
>>484278
Не нужно это всё. Надо просто проще писать. Вся эта херня про компактность кода и «фичи» от лукавого.
>>484262
Кстати, для такого лучше использовать декоратор или метакласс. Для этого они, собственно и задумывались.
>The class body is executed (approximately) as exec(body, globals(), namespace).
>компактность кода и «фичи»
Не, там другое. Там меньше головной боли. И функциями можно воротить как хочется не задумываясь о быстродействии.
>декоратор или метакласс
Запили код, посмотрим.
25-лвл кун, пытающийся в кодинг уже более года и вечно упирающийся в то, что его максимум - написание консольных конвертеров величин или генераторов чисел по правилам
> approximately
Хотя может я и не прав.
> Запили код, посмотрим.
http://ideone.com/p4VJyj
Ну, вот так можно. Метаклассы лень гуглить, там тоже самое по сути через __new__ (насколько я помню). В общем они для этого и создавались.
> не задумываясь о быстродействии
Ну, я о быстродействии не часто задумываюсь, честно говоря. В основном-то всё не упирается в вычисления.
>генераторов чисел по правилам
если ты это уже написал, то Итератор, полиморфизм, и наследование должен уже знать(да и про инкапсуляцию уже тоже)
Мимо Админо-менеджер. 26лвл, который тоже пытаеться в кодинг. обнаружил овер 150 разных книг по питону на торрентах, сейчас сортирую.
Читать-гуглить-вникать-экспериментировать с кодом.
>итератор
Это такой перебиратор по некоторому списку значений с простейшим интерфейсом: одной только функцией next() (давай ищщо). А внутри итератора может быть что угодно: проход по списку, по дереву, да хоть по Аллаху.
>полиморфизм
У тебя есть 100 разных классов, у которых есть нечто общее. Вот ты можешь написать код, который будет знать только это общее и с ним оперировать. В итоге объекты всех 100 классов в этом коде отработают без проблем.
>инкапсуляция
Закрываем внутренности, оставляем простой интерфейс, чтобы народ голову себе не ломал. Ты же не разбираешь микроволновку чтобы подогреть мамкин борщ, а только кнопку нажимаешь.
>наследование
Всё что было в предке переходит в потомок. Тот самый общий код классов из полиморфизма. Он становится классом-предком. Если бы наследования не было, то пришлось бы на все 100 классов писать одно и то же.
Лол. А я вот не знал что можно на класс декоратор повесить. Какой продуктивный тред.
Ну правда у себя в коде я эту функцию просто вызвал из тела класса. С = yoba(A, B)
Метаклассы луче декораторов (из названия хотя бы следует). Завтра если не лень будет загуглю их снова, лол.
Метаклассы это такие магические методы для стадии инстанцирования y = Yoba(). А мне нужно прямо в классе значения получить, до инстанцирования.
Не особенно, если честно, хотя учился на кодера 5 лет назад в технаре лол. Ну как генераторы.. Наверное неправильно сказал. Недавно делал - выбираешь вводом 1-3 уровень сложности (количество попыток) и пытаешься угадать число, которое генерится от 1 до 9, угадал - молодец и запрос на повторную "игру" или смену лвла сложности. Суть в том, что постоянно упираюсь в то, что не знаю, куда развиваться после изучения простейшей математики и ввода-вывода текста. Баловался одно время C# в VS мышкой, но быстро понял, что без хорошего и досконального знания базы лезть в графику тоже самое, что ехать с спиной на роликах человеку, который впервые на них встал. Вот и пытаюсь как-то нарастить эту "базу".
>>484293
Спасибо за понятные объяснения, анон. Вот бы книжку написанную таким языком почитать, если честно. Сколько не пытался в тот же полиморфизм - не понимал, а тут вроде как всё ясно. Код, который содержит только общие части из классов. Правда, спасибо.
Ну, декоратор тоже до инстанциирования не отработает.
>не знаю, куда развиваться после изучения простейшей математики и ввода-вывода
Писать имиджборду, очевидно.
И чтобы 5000 запросов в секунду.
>>484292
тоже по комментирую, и за одно свои знания проверю, антоны поправят если что
>>итератор
>Это такой перебиратор по некоторому списку значений с простейшим интерфейсом: одной только функцией next() (давай ищщо). А внутри итератора может быть что угодно: проход по списку, по дереву, да хоть по Аллаху.
Интересная фишка итератора в питоне в том, что ты можешь реализовать свой итератор, так как все в питоне объекты(как в рубях)
то есть ты делаешь класс, в котором у тебя описан __next__(), а он уже становиться итератором.(ну и еще эксепшен обрабатывать надо когде next кончается например)
Самое интересно, что __next__ является интерфейсом, и этот обьект можно использовать в конструкция For i in %твой_обьект%
>>полиморфизм
>У тебя есть 100 разных классов, у которых есть нечто общее. Вот ты можешь написать код, который будет знать только это общее и с ним оперировать. В итоге объекты всех 100 классов в этом коде отработают без проблем.
ближайший пример: for i in string и for i in list, например умеют обрабатываться инструкцией for, или например в рубях, всем обьектам можно делать sort без особого гемороя. (опять же за счет интерфейса) то есть имея разные обьекты, ты общаешься с ними одинакого, и эти обьекты полиморфы.
>>инкапсуляция
>Закрываем внутренности, оставляем простой интерфейс
ближайший пример, Классы,
ты делаешь sorted(list) и он тебе его сортирует, хотя хуй знает что там внутри происходит(тим-сорт там у него внутри)
или делаешь list("op hui") и оно тебе делает из стринга в массив, само понимаю что у него строка. и как оно это делает хуй знает(потому что все в сях написанно где-то там внутри.)
>>наследование
>Всё что было в предке переходит в потомок. Тот самый общий код классов из полиморфизма. Он становится классом-предком. Если бы наследования не было, то пришлось бы на все 100 классов писать одно и то же.
то есть ты можешь относледовать класс string, и переписать функцию __next__ чтобы она всегда возращала "op hui", и создать из нее обьект.
В продакшене применяется так же когда нужно сделать новый функционал не ломая старый(так как старый например писался аутистами)
Например в ООО "foobar", есть билинг со статистикой. и нужен еще одна статистика но другая.
Ты наследуешь класс статистики в другй класс.
class new_analitics(old_analitics):
и переназначаешь старую функцию своей логикой.
>>484292
тоже по комментирую, и за одно свои знания проверю, антоны поправят если что
>>итератор
>Это такой перебиратор по некоторому списку значений с простейшим интерфейсом: одной только функцией next() (давай ищщо). А внутри итератора может быть что угодно: проход по списку, по дереву, да хоть по Аллаху.
Интересная фишка итератора в питоне в том, что ты можешь реализовать свой итератор, так как все в питоне объекты(как в рубях)
то есть ты делаешь класс, в котором у тебя описан __next__(), а он уже становиться итератором.(ну и еще эксепшен обрабатывать надо когде next кончается например)
Самое интересно, что __next__ является интерфейсом, и этот обьект можно использовать в конструкция For i in %твой_обьект%
>>полиморфизм
>У тебя есть 100 разных классов, у которых есть нечто общее. Вот ты можешь написать код, который будет знать только это общее и с ним оперировать. В итоге объекты всех 100 классов в этом коде отработают без проблем.
ближайший пример: for i in string и for i in list, например умеют обрабатываться инструкцией for, или например в рубях, всем обьектам можно делать sort без особого гемороя. (опять же за счет интерфейса) то есть имея разные обьекты, ты общаешься с ними одинакого, и эти обьекты полиморфы.
>>инкапсуляция
>Закрываем внутренности, оставляем простой интерфейс
ближайший пример, Классы,
ты делаешь sorted(list) и он тебе его сортирует, хотя хуй знает что там внутри происходит(тим-сорт там у него внутри)
или делаешь list("op hui") и оно тебе делает из стринга в массив, само понимаю что у него строка. и как оно это делает хуй знает(потому что все в сях написанно где-то там внутри.)
>>наследование
>Всё что было в предке переходит в потомок. Тот самый общий код классов из полиморфизма. Он становится классом-предком. Если бы наследования не было, то пришлось бы на все 100 классов писать одно и то же.
то есть ты можешь относледовать класс string, и переписать функцию __next__ чтобы она всегда возращала "op hui", и создать из нее обьект.
В продакшене применяется так же когда нужно сделать новый функционал не ломая старый(так как старый например писался аутистами)
Например в ООО "foobar", есть билинг со статистикой. и нужен еще одна статистика но другая.
Ты наследуешь класс статистики в другй класс.
class new_analitics(old_analitics):
и переназначаешь старую функцию своей логикой.
норм курс?кто пробовал ?
http://pastebin.com/bkYg6w0Y
захожу на http://localhost:8000/
вижу:
Directory listing for /
cgi-bin/
CGILauncher.py
В cgi-bin/ положил hello.py
http://pastebin.com/VEk5qsYS
Открываю http://localhost:8000/cgi-bin/hello.py, показывается код, ожидаю увидеть Hello World
Что я делаю не так?
Теоретически да, учитывая что нынче все транслируются в жаваскрипт. На практике - нет, ибо зависимости, прибитое гвоздями апи, другой стек технологий, вся хуйня. И это касается не только питона, а вообще всего, что не js. Браузерный вариант - только js. Ну еще флеш или жава-апплеты какие, но за них обоссут.
Тогда еще один тупой вопрос: какой фреймверк или какую библиотеку нужно освоить, чтобы сделать браузерную игру на пайтоне?
Или проще вместо браузерной версии реализовать, допустим, версию для андроида, на каком нибудь Kivy или еще на чем-то?
Haskell
Не думаю что что-то готовое уже есть. Но ты погугли, всякое бывает. Суть в том, что питон можно транслировать в жс, а на жс есть куча готовых геймдвижков "в браузере". Можно извернуться и написать обвязки для питона-в-js, которые будут дергать игровой движок на js.
Но насколько все это реально.. Нутыпонел.
>>484675
Тоже можно. В kivy как раз пигейм и сидит, кстати. Так что тут легче и реально обойтись одним питоном.
Подскажите, пожалуйста, чем (с помощью какого модуля?) лучше ловить нажатия клавиш клавиатуры? И как? Нужно, чтобы нажатия клавиатуры (желательно, без привязки к локали) вызывали функцию, например.
Хз, похоже на виндопроблемы.
>$ touch 't:\file'
>>> open('t:\file','w')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: 't:\x0cile'
>>> open(r"t:\file",'w')
<_io.TextIOWrapper name='t:\\file' mode='w' encoding='UTF-8'>
https://pythonconquerstheuniverse.wordpress.com/2008/06/04/gotcha-—-backslashes-in-windows-filenames/ почитай тут.
Спасибо. Действительно нужно было из-под админа запускать.
Хотя сегодня днём и без этого работало. Магия какая-то.
Спермопроблемы теперь магией называют?
Ну сорри, не слежу за вашими тредами. А какие именно направления? Только openstack могу вспомнить навскидку и все.
https://github.com/search?l=Python&o=desc&q=language:Python+stars:>1000&ref=advsearch&s=stars&type=Repositories&utf8=✓
Отсортируй по количеству звезд и хоть дальше первых пяти страниц пролистай.
Хочу к уже существующей модели добавить внешний ключ на пользователя. Как правильно сделать миграции? А то что-то не выходит. Пишет ошибку - поле не существует. Питон третий, джанга последняя.
Попробуй golang, там это вроде уже решено
Бамп вопросу.
yoba\yoba-package
yoba\tests
Ну, и как можно меньше окунаться во всё это, потому что я не фанат тестовой хуиты, но тут реально нужно. Ещё было бы неплохо запускать это всё в travis-ci, там вроде конфиг несложный и всё для людей зделано. В общем, кто чем пользуется?
unittest + nosetest + coverage
Pykeylogger
А почему ты не использовал генератор?
class MyClass:
..def __init__(self):
....def do_something():
......self.b = B() # плохо
....self.a = A() #хорошо
..def other_method(self):
....self.c = C() #очень плохо
Зависит от использования, если ты везде проверяешь hasattr, то похуй. Если нет, то конечно лучше в __init__ всё зделать. ну, и 2 пробела ты чё долбоёб, сука это финиш, похоже на пердунов, которые кроме numpy ничего не используют
Братан, это чисто потому что макаба пробелы опускает внатуре, а 12 точек для трех отступов — это чересчур, по-моему. По жизни 4 пробела использую. Тут — 2 точки.
Помню у рубей есть клевые подкасты. Где говориться про всякие новинки(узнал оттуда про гитлаб(аналог гитхаба чтобы у себя развернуть)) хинты фишки и тд.
>Манада (фр. Florence Masnada, род. 16 декабря 1968 года, Визий) — французская горнолыжница, призёрка Олимпийских игр и чемпионата мира, победительница этапа Кубка мира.
Код на пикрилейтед. Первый вариант - четыре ебаных строки с отступами для тривиальной задачи. Второй вариант через компрехеншонс (как по русски бтв?) будет создавать в памяти ненужный массив, если я правильно понимаю, и будет работать медленней. Можно ли сделать красивый и быстрый oneliner для этой задачи?
Начинал с 3.4 вроде, потом вычитал что им никто не пользуется и решил попробовать 2.7, который для нуба отличается тем, что можно писать print a, вместо print(a), что мне и больше по душе. Но илитке с двача виднее конечно, лучше б по задачке подсказал, умник ебаный.
Есть функция reduce(), в которой ты сам можешь запилить нужную сумму.
Решение:
>>> reduce(lambda res, x: res + (x if (x % 3) == 0 or (x % 5) == 0 else 0), rang
e(10), 0)
Хотя твой первый вариант понятнее, на мой взгляд.
>>485481
Антоша, не слушай хуйни. Создавай вместо листа генератор, тогда память листом засераться не будет. Для этого надо просто квадратные скобки на круглые заменить только и делов:
print sum((x for x in range(1,10) for y in (3,5) if x%y==0))
ПыСы : можно вообще никакие скобки не ставить, если уже есть скобки от суммы, тогда генератор создастся автоматом:
print sum(x for x in range(1,10) for y in (3,5) if x%y==0)
да и похуй. "Преждевременная оптимизация -- корень всех зол" как папка вещал. На самом деле генераторы нужны при очень больших объемах данных. Я сам пользую листы - дебажить если что удобнее.
Раз такое дело, давайте добавим в шапку репу с живым сайтом, например
https://github.com/RaD/djbookru
>>485496
Добра няши, генераторы - то что я исках. Думал их использовать, но не совсем понимаю, как они работают. Просто иногда эти ебучие отступы, если они создают "горки кода" нифига не читаются, и хочеться впиндюрить ванлайнер. Вот и два стула, использовать вложенные циклы/ветвления, которые не читаются в большом масштабе, или нечитаемые генераторы, которые опять же, плохо читаются и малом. проблемы в голове
>>485485
>>485489
Ой, да иди нахуй
http://www.i-programmer.info/news/98-languages/8269-python-2-versus-python-3-revisited.html
>Думал их использовать, но не совсем понимаю, как они работают.
Так же, как вызов функции по указателю в Сишке.
Ничего нового с 1968 года.
Сейчас пытаюсь быстренько освоить джангу и такой вопрос.
Когда у нас есть внешний ключ (стандартно - пользователь из таблицы User) то когда я добавляю новую запись в таблицу, как я должен добавлять пользователя? Это должен быть просто его айди или что?
>вызов функции по указателю в Сишке.
Хотел сказать что-то плохое, а потом сел и взгрустнул чет.
Тут приличные господа сидят. Хочешь помощи - веди себя как подобает. А пока сходи нахуй, дебил.
>2ch.hk/
>Тут приличные господа сидят
>2ch.hk/
никогда не сидели. По крайней мере не в том соотношении, в котором хотя бы можно округлить.
к тому-же, что за приличные господа первыми переходят на мат? Меня кстати всегда удивляло, как граммар-наци выпячивают свою грамотность, и так же резко переходят на личности. Как будто пытаются компенсировать отсутствие других необходимых навыков.
Тебе не помогут, не старайся.
Ну, не также, не гони. Во-первых у них стейт сохраняется автоматически, на си тебе придётся самому свитч пердолить. Во-вторых, можно сделать сколько угодно генераторов, а в си ты бы не смог использовать генератор, когда он уже «занят».
Есть две таблицы, одна User, вторая Post, например. В модели таблицы Post добавляем поле
author = models.ForeignKey(User)
При создании записи Post(text=text, author=user)
где user - пользователь, что создает пост.
Я правильно тебя понял?
Спасибо... так же хотелось бы видео\звук, чтобы можно было параллельно чем нибудь заниматься кушать
Какие фреймворки для этих дел посоветуете? Чтобы можно было также удобно верстать интерфейс, как на шарповом wpf с xaml?
Ну и по 2д вопрос такой же, нужен удобный фреймворк.
Видел какую то приблуду, но она еще с 11 года, стремно такое юзать и на такое полагаться.
Забудь про эти айди. Их нет, понимаешь. Просто оставь это на Django ORM, а сам в это время отдыхай на пляже в компании первой красотки. Ты должен осознать, что работаешь с обьектами.
Ну. Я и спрашиваю что за объект user и откуда его обычно берут. Он где лежит? В какой нибудь сессии поди?
А Лутц себе позволяет такое. В примере текстового редактора из "Программируем на Python". В файле textEditor.py. Там в классе TextEditor элементы GUI создаются в методе makeWidgets. Причем метод вызывается из базового класса.
http://pastebin.com/ZQHn7f4K
Но, как мне кажется, получился какой-то набор костылей... Или нет? Что стоит переделать и как?
днепропетровск
Аноны, передо мной сейчас 2 стула:
работатть пхп-девом или пройти курсы питона и кодить на питоне. Что посоветуете? А если в долгосрочной перспективе и что лучше, если хочу завести трактор?
Ну нихуя себе.
Да, но тыкал ли его кто из местных? Сырой или готов?
>Рашка
>документы
Чего?
Всем поебать на твои документы. Даже на диплом из лучшего вуза страны поебать. Покажешь скилл - возьмут, не покажешь - ну и нахуй иди со своими бумажками, поехавший.
Надо, его тебе на собеседовании дадут. Какие лицензии, ты о чем?
Ну а что ты еще хотел услышать? Советов мудрых? Тебе уже сказали, что практика превыше всего.
можно ли работать с двумя разными версиями Python на компьютере?
И на джанго последней версии 1.8 запустится ли норм сайт написанный на 1.4 и например 1.6?
В шиндоус проблематично, даже с virtualenv придется ебаться периодически, без него ебля будет вообще вечной. В прыщах проще простого.
в общем, если кому надо, то вот доступное объяснение нашёл - http://nedbatchelder.com/text/unipain.html
А какой там пиздец, в третьем то? Это во втором адский ад был.
ЗЫ прости за сумбурный текст
спасибо, чего то я про осом не подумал сразу
не плеер, просто хочу что-нибудь 3Д написать и динамичное, что может быть динамичнее музыки
Накатал что то вроде этого, только как то хуево работает
import random
S = range(100)
while len(S) > 1:
S = S[:random.randint(0, len(S)-1)]
print(len(S), S)
я не понял, ты хочешь что-то вроде такого:
http://ideone.com/Tq8Oic
так вот при твоем алгоритме, он у тебя будет не слишком рендомным, так как первый элемент у тебя будет всегда большим, и последний будет всегда состоять из одного.
Нужно генерировать ренжы заранее, и потом их дернуть, тогда все диапазоны будут истинно рендомные.
Алсо, с окон обязательно переходить или можно оставатьсяи жрать говно и все будет удобненько?
можно жрать говно и не давиться, если юзать PyCharm, даже модули сам ставит. за CE версию можно не платить денег.
>>486973
ООП работает практически так же как и в любом другом ООП язык, ты с какого языка перебрался?
я бы взял бы Лутза, с мышом на обложке.
А потом пошел бы на пират бей и выкачал все 150 книг по питону, и навернул еще по общему ООП.
C# же, CofeeScript под ВС.
>ООП работает практически так же как и в любом другом ООП язык, ты с какого языка перебрался?
Тащемто ни с какого. Я студент третьего курса, знаю всего понемногу. Просто был курс ООП вводный курсе на втором кажется, а сейчас проходим углубленно, всякие паттерны, принципы SOLID и тд. Препод очень заинтересовал этой темой, вот решил двигать в эту сторону, а Python просто считаю годным языком для ООП, знаком с ним в качестве синтаксиса немного. Думаю еще над JS, одно время занимался пилением лендинг пейджев, т.е. если двигать в сторону веба, то JS вполне себе, вместо питона.
Хочу в виджет Label выводить текст, как до этого выводил через принт текст в консольку, то есть сразу несколько типов данных - допустим пара чисел и текст. Например print('Числа',a,'и',b). Не могу понять как это сделать: через свойство лейбла text могу только текст выводить, при этом один, через свойство textvariable он выводит только опять же 'текст', на остальное ругается мол много аргументов.
Понятно что вопрос скорее всего идиотский, но вы всё же подсобите.
Серьезно, их же миллион попыток сделать что-то асинхронное и работающее. Будь то неявная асинхронность с манки-патчингом в гевенте, ивент-луп в Твистеде и Торнадо. Сейчас вот еще asyncio в 3.4. При том, что в asyncio даже нет возможности прочитать файл без блокировки.
Зачем столько ивент-лупов? Питон by design (читай, by implementation) плохо масштабируется в одном процессе (см. GIL, даже в Pypy она не решена).
Все эти огороды из асинхронных и ивент-драйвовых фреймворков сейчас вызывают у меня чувство отторжения. Складывается ощущение, что лучше взять язык, где нет попыток вставить костыль плохо едущей лошади, а есть модель которая работает. Будь то акторы в Эрланге, горутины в Го или честный event-driven Nodejs.
Сумбурно, но как-то так.
я понимаю, что async != concurrency, если что. Замените в первом предложении.
Я сделал это вот так:
[code] a = input().split(' ')
for i in range(int(input()), len(a) - 1):
a, a[i + 1] = a[i + 1], a
print(a.pop()) [/code]
Я не понимаю, почему же в ответе мне выводится то самое число, которое я сдвинул, а не список без этого элемента.
Есть соображения?
Короче я не совсем понял зачем тебе там фор, можно сделать проще - a[-1], a = a, a[-1]
Принт печатает индекс потому что его возвращает метод поп().
a.pop()
print(a)
А, бля. Тебе же сдвинуть а не свапнуть. В глаза ебусь, пойду спать лучше.
Но про поп все правильно написал.
Спасибо. Щас потестим
блядь, ну почему нужно объяснять различие между процессами и тредами? Гилопроблемы вызваны реализацией интерпретатора, переключение на процессы это другое.
>>487005
>А на каком языке можно читать файл без блокировки?
в nodejs есть чтение через стримы. Стримы имитят ивент.
>в asyncio есть run_in_executor
Ну да, то есть чтобы прочитать файл нужно заводить заводить отдельный процесс или тред.
>>487022
>Concurrency и GIL мешают друг другу? Чё?
GIL нужно иметь в виду и не охуевать потом.
> в nodejs есть чтение через стримы. Стримы имитят ивент
Вот это манёвренность! А что с записью? В asyncio есть add_reader и add_writer. Но запись всё равно блокируется, даже если селект скажет, что заебись, можно писать. Неужели ты думаешь, что если бы это было возможно это бы не внесли во все языки?!
Так для write тоже стрим есть. И в Nodejs не селекты, там epoll'ы. Дескриптор готов – отдал чанк.
>В asyncio есть add_reader и add_writer
Но чтение-то все равно блокируется! И пока ты файл не прочитаешь, все твои селекты будут сосать пачку хуев в сторонке. Есть решение с отдельным чтением в другом треде, но это же не асинк.
Я люблю Питон очень нежно, но складывается впечатление, что когда нужна максимальная производительность от железки, это не самый лучший выбор...
Не знаю про label и про питон, но по логике вещей - сначала присвой переменной полностью собранную и отформатированную строку, а потом уже передай одну эту переменную в label.
Перекатился.
>А что делать надо?
Нужно будет реализовывать систему развития когнитивных способностей операторов систем безопасности подводных лодок.
Как я понял, то психолог будет писать всяческие тесты и прочую хуету для операторов, а моей задачей будет это все наформошлепствовать.
Плюс что-то втиралось про матстат пакеты и трекер глаз, но так невнятно, что я не понял с какого бока они это дело юзают.
>>487351
>Что за фирма такая?
Какая-то околовоенная конторка, разрабатывающая софт для операторов систем безопасности подводных лодок.
Изначально согласился, ибо рассуждал с позиции "нужна хоть какая-то работа". Но сейчас подумал, что судя по описанию ебли там будет очень много, и крепко задумался - стоит ли оно того? Может поискать что-то попроще?
И что спрашивали на собеседовании? Что-то специфическое? Если ты не хочешь туда пойти, то оставь ссылку тут, может другой анон вроде меня сходит.
Из за чего такое может быть? У меня на компьютере уже была установлена старая весрия? Если так, то как тогда удалить старую версию полностью?
У меня оказывается было 2 питона. Удалил оба, позже переустановлю последний. Думаю это поможет.
Но я дрищ.
Я 90 жму. А ты – дебил, не способный себе программу установить на компьютер.
Спрашивали про матстат, математику в целом ну и стандартное "зачем вам нужна эта работа?" А в конце еще что-то про сайтошлепство спросили, вот после этого я еще больше задумался. Попахивает шаражной конторкой, пилящей гранты\бюджеты.
Во вторник оформляться, есть еще время подумать, но я так ни к чему и не склонился.
>Если ты не хочешь туда пойти, то оставь ссылку тут, может другой анон
Я бы дал ссыль, но ее нет, они меня сами на хедхантере нашли и вызвонили.
Господа, мы же тонем!
Помимо очевидного веба? Ну, боты всякие, веб-"пауки", автоматизации, еще раз автоматизации, воровалки контента, парсеры и обработчики портянок текста, может клиенты (cli/curses) к каким демонам. Нутыпонел. Но в основном веб, сервер-сайд.
>>487804
Спермовор? Или кто ты? Для спермы можно сделать очевидную ассоциацию .py с питоном, запускать даблкликом по файлику с рабочего стола. Выходной файл генерировать самому, входной получать через input() в окне терминала. Да и для линуксов тоже. Но пускать таких идиотов за линукс - моветон. Если таки нужен гуй - tkinter самый простой, одобренный питоном. По 'tkinter tutorial' гуглится навалом.
блять ну ты и даун, если для тебя даже установка питона - проблема. Баранов земля русская понарожала, расхлебываем блять.
К примеру, вот код, где занозой в заднице выступает эта вот кавычечка - ’
[code]
a = "‘Привет’"
print(a)
[/code]
И если запускать через консоль, то мне фровается экспешен:
[code]
Traceback (most recent call last):
File "test.py", line 2, in <module>
print(a)
File "C:\Python34\lib\encodings\cp866.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u2018' in position
0: character maps to <undefined>
[/code]
Пробовал прописывать в консоли chcp 1251 перед запуском скрипта, тогда ошибка перестаёт вылетать, но весь русский текст в консоли, включая тот, что выдаёт мой принт, превращается в кракозябры.
В общем, мне нужно каким-то образом вывести текст из cp1251 в консоль, где стоит cp866, и при этом не хотелось бы лезть редактировать сами либы. Ну или можно сделать какой-нибудь костыль и каким-нибудь образом скрыть символы, выдающие юникод ошибку.
Заранее благодарен за любую помощь справиться с моей болью с кодировками.
У них же есть пример для конференций, ты чего?
http://xmpppy.sourceforge.net/examples/logger.py
Пробовал, не взлетело.
Вот трейсбек:
Traceback (most recent call last):
File "..\bot\logger.py", line 45, in <module>
cl.Process(1)
File "..\bot\xmpp\dispatcher.py", line 303, in dispatch
handler['func'](session,stanza)
File "..\bot\logger.py", line 32, in presenceCB
if text: LOG(pres,nick,text)
NameError: global name 'LOG' is not defined
Что делаю не так?
Упс, трейс перепутал.
Traceback (most recent call last):
File "\bot\logger_.py", line 75, in <module>
cl.Process(1)
File "\bot\xmpp\dispatcher.py", line 303, in dispatch
handler['func'](session,stanza)
File "\bot\logger_.py", line 62, in presenceCB
if text: LOG(pres,nick,text)
File "\bot\logger_.py", line 20, in LOG
tp=time.mktime(time.strptime(ts,'%Y%m%dT%H:%M:%S %Z'))+3600*3
File "C:\Python27\lib\_strptime.py", line 467, in _strptime_time
return _strptime(data_string, format)[0]
File "C:\Python27\lib\_strptime.py", line 325, in _strptime
(data_string, format))
ValueError: time data '20150530T06:45:58' does not match format '%Y%m%dT%H:%M:%S %Z'
def fun(param):
____if param:
________return 'foo' , 'bar', 'one', 'two'
____else:
________return None, None, None, None
Есть какой-то более python-way способ возвратить эти 4 None?
Засунь их в тюпл или лист:
http://pastebin.com/u4p0ineS
Если ты хочешь, когда уже получишь их из функции, иметь их в виде нескольких объектов, а не пачки, то можешь ещё распаковать при помощи *
http://pastebin.com/QqquKj0c
>>487957
>>487974
Хули вы ему насоветовали, блядь. Вот так надо делать (если вообще надо возвращать в какой-то ситуации столько ноунов):
return (None, ) 4 # Запятая обязательно, иначе получится не кортеж с одним элементом, а просто None и, по сути, будет то же самое, что и None 4
ну или
return [None] * 4
return (None, ) * 4 в первом случае
Перекат.
Если более сложный запрос, то лучше использовать raw sql
В доку глянуть религия не позволяет?
возможно сделать так, чтобы код смещался вверх и оставлял мне чистый лист
Похоже на болезнь. Наверняка для всех нормальных редакторов есть/можнозделать плагин.
ну да, проблемы с психикой видимо
ибо если делаю маленькую помарку на листе бумаги, сразу его выкидываю
Читаю Dyve into Python и не очень улавливаю что да как.
Суть в том, что есть строка. В строке есть имена персонажей. Есть еще две строки, которые надо заполнить именами персонажей, находящихся в первой строк.
Надо сделать так, чтобы первые пять имен попали в во вторую строку, следующие пять имен в третью строку, ну и т.д
Я пошел через тернистый путь, как я сам догадываюсь.
aa=[1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,19,20]
l=0
flag=0
q=[]
w=[]
for i in aa:
if flag==0:
q.append(aa[l])
if (i%5)==0:
flag=1
if flag==1:
w.append(aa)
if (l%5)==0:
flag=0
l+=1
print(q,w)
Решил применить флаги, ибо иначе хз как(начинающий макака-кодер)
Но как можно уже понять, код нихера не работает, дрочился как только мог. Помогите решить проблему!
Суть в том, что есть строка. В строке есть имена персонажей. Есть еще две строки, которые надо заполнить именами персонажей, находящихся в первой строк.
Надо сделать так, чтобы первые пять имен попали в во вторую строку, следующие пять имен в третью строку, ну и т.д
Я пошел через тернистый путь, как я сам догадываюсь.
aa=[1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,19,20]
l=0
flag=0
q=[]
w=[]
for i in aa:
if flag==0:
q.append(aa[l])
if (i%5)==0:
flag=1
if flag==1:
w.append(aa)
if (l%5)==0:
flag=0
l+=1
print(q,w)
Решил применить флаги, ибо иначе хз как(начинающий макака-кодер)
Но как можно уже понять, код нихера не работает, дрочился как только мог. Помогите решить проблему!
так понятней будет
то есть первые пять имен в первый сток, следующие пять во второй, а потом снова всё повторяется: 5 в первый, 5 во второй
блять, во второй append-е не i, а l
ошибся, но это не играет никакой роли,все равно ничего не работает
Можешь внятно сформулировать? Приведи пример данных на входе и на выходе. Работы со строками в твоем коде вообще нет.
Очень понравилось, как сделан учебник у пхпшников
https://2ch.hk/pr/res/487138.html
Нет бесполезной воды, нормально объясняется, нормальные задания. Есть что-то подобное для питона?
Ткните носом в какую сторону гуглить.
Да-да, иди в Web.
Вы мне поясните, какого хуя, в методе form_valid UpdateView еще до вызова супера self.object внезапно становится равным form.instance?
Т.е. в посте мы получаем self.object = self.get_object() где мы получаем объект c данными из базы, объект, у которого поле title заполнено. Попадаем в form_valid и начиная с этого момента self.object.title становится равным form.instance.title, который равен u''?
> Codeacademy - на английском всё же трудно учиться.
>на английском трудно
>/pr/
Пиздуй в /b/ или https://2ch.hk/pr/res/494598.html.
Недавно я нашел одну интересную пасту http://pastebin.ru/bfamtIJ1,
прочитал и до меня дошло, что я учусь в технаре разной хуйне и надо брать все в свои руки.
Годна-ли паста? Сейчас я просто хочу выучить Питон до конца лета, смогу-ли, анон?
Еще хочу, если это можно на Питоне, написать простой платформер-бродилку. Смогу?
Сам язык нравится, хоть я ничего и не видел другого, кроме паскаля да делфи.
Разделение пробелами каждого блока - вообще замечательно, после помощи тупым одногруппникам, которые пошли на профессию чтобы откосить\проебать четыре года, и которые вообще забивали на какое-то разделение.
И еще анон, подкинешь годных уроков, практики?
Смогу же я за лето хотя бы что-то?
А теперь слушай сюда уёбок. Завтра! ЗАвтра же сносишь к хуям своё говно, ставить Линух! Похуй что это будет, путь даже сраная Убунту! У тебя день, что бы освоить Линух.
На второй день бери последний учебник Лутца и читай его! Забудь свои вконтактики, у тебя ЛУТЦ блять! Читай все его последние книги! Все примеры в книгах сам набирай и выполняй, никакого копипаста нахуй!
Когда всё это провернёшь. Пиши снова свою приблуду сам! Без всяких интернетов блять! Или иди нахуй.
Через threading, после запуска самого аппа, какого-то хуя спавнится второй процесс, а Celery+Redis - ебаный оверкилл. мне и без них говна в виде гуникорна и супервизора хватает Какого черта, анон?
В наличии http://pastebin.com/Lxx7qwwR
Как сделать, чтобы после ввода pluma в консоли открывалась плума? И помимо этого цикл с отслеживанием буфера обмена не останавливался.
Сделал, чтобы после копирования в буфер открывалась плума, но заебался копировать.
Подскажите какие вопросы задают джунам на собеседовании
http://blogs.msdn.com/b/wpfsdk/archive/2007/10/02/data-validation-in-3-5.aspx
Как объявить в нем хрень по типу:
> public string this[string name]
Это копия, сохраненная 23 июня 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.