Это копия, сохраненная 2 июля 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Как бы вы сделали? Как бы вообще разложили список на самое оптимальное дерево? inb4 отсортировал бы по алфавиту и "ел" повторения в начале строки.
У ОПа ЕГЭ в школе, ему не до /зк/.
>>487820
За что угодно берись - лишь бы тебе было интересно этим заниматься, так-то любую почти любую херню можно развить до такого уровня, что это уже будет полезный опыт. И да, игра для этого хорошо подойдёт, если не дропнешь.
with open('output.log', 'w') as output:
Всё нормально записывается и работает, но есть два минуса:
1) Содержимое файла с логом нельзя посмотреть, пока он открыт в этой программе (показывает просто пустой файл.
2) Если python.exe каким-нибудь образом помрёт, то лог будет просран. А это более-менее важно в моём кейсе.
Я так понимаю, что как первый, так и второй минус связаны с тем, что питон сохраняет данные в файл, которые я ему давал на запись в течение своего скрипта, только в конце программы. Как можно разрешить эту проблему?
Почему не :
with open('output.log', 'a') as output:
?
Так оно у тебя и дописывать будет и норм.
'a' не подойдёт, потому что мне всё равно нужно, чтобы файл каждый раз перезаписывался.
Нашёл решение, стоило немного погуглить - https://docs.python.org/3/library/functions.html#open
В общем, если кому интересно, у open() есть ещё параметр, где указывается, сколько максимум может держаться в буфере данных перед тем как зафлюшить это всё в файл. И если поставить у этого параметра 1, то в буфере будет держаться лишь одна строка.
http://pastebin.com/LTcEwmbT
Если открыть параллельно с исполнением этого скрипта ещё и output.log, который создался, то можно увидеть, что он обновляется каждую секунду. И соответственно, если наебнуть питон, то в файле всё равно что-то уже будет сохранено.
а что стандартный логгер не используешь?
как сюда пихнуть ядро K_t(x, y) =[e^(t∆)]_x,y
питоно-боги, молю вас
Паста про питон.тхт. Кроме шуток, она действительно описывает неплохую схему. Читай викиучебник/Dive into python или вообще вот тут http://learnxinyminutes.com/ узнай азы за пять минут. А потом смотри стандартную (или какую тебе там надо) либу и пиши программы.
Очевидные доки же. Туториал пройди, дальше понятно будет, что изучать.
Спрашивай в треде конкретику, когда в ступоре окажешься.
Нужно создать хтмл-страничку, которая запускала бы ру скрипт через баттон. Но блять она не запускает его, а предлагает сохранить. Что я делаю не так. Говорят, надо дать скрипту права на выполнение, но я хз как это сделать на шиндовс.
Почему бы не взять код в скрипте в отдельную функцию, а в обработке django просто сделать импорт и вызвать эту функцию?
На самом деле я конечно вроде разобрался в чём проблема была, но осадок то остался.
ой, начинается...
алсо, по факту ты просто сильно привык к остальным язык...
сейчас вот смотрю на руби с его ендами, и думаю как я наэто смог что-то писать(ведь раньше писал), гляжу на перлу, и думаю чо это за говно.
сейчас мне удобно и приятно использовать инденты, и считаю это главным достижением питона.
Какое впечатление от руби осталось? Стоит сейчас им вообще обмазываться? Просто выбираю, на какие курсы пойти, и что-то сомневаюсь немного в выборе.
Почему? Мне тоже интересно. Вроде ж судя по зарплаткам - деньги идут. Или высокие зарплаты это из-за того, что на нём мало кто пишет?
Руби сейчас, это Рельсы...
И в итоге сами Руби это просто DSL к рельсам... По крайней мере в России.
И на коммунити это тоже отличаеться сильно...
Если Питон, это не только джанга, а еще тулзы, парсинг, в сисадминстве сильная штука... Аспиранты там пишут анальные расчеты... то Руби это Рельсы. в других страннах может быть кто-нибудь и тулзы пишут наподобие чефа и паппета... в россии нет... Так что если ты веб-разраб, то руби ок.
А ну и по поводу впечатления... приятный сахарный язык такой... бесит только что у каждой штуки внутри есть как минимум две реализации(while и until например... и тд)
куча разных модулей\гемов, часть из них может вообще кривой...
а так норм
вся логика приложения должна находится в представлениях (views). Создай файл views.py в директории с приложением, напиши функцию-обработчик get и post запросов, которая будет импортировать нужный тебе модуль и выполнять требуемые действия. Функцию нужно замапить наопределенный url или на регулярное выражение в файле urls.py
свой фреймворк хуякнуть.
цель ООП создать логическую прослойку, чтобы с этой прослойкой было проще работать.
Ещё попробуй Буча почитать, там без пайтона, но в общем про ООП рассказано хорошо.
http://www.ozon.ru/context/detail/id/3905587/
Да, лучше в оригинале.
Вероятно не смогу в ентерпрайз-разработку на пистоне и сьебу с работы через недельку-другую. Сам согласился на нее, т.к. сейчас по шарпу ничего не найти было, а в профиле на хедхантере я указал знание питона, и в итоге меня вызвонили и предложили работку. Теперь думаю почему я такой дурак и при опыте использования питона уровня "простенький парсер для сайта", согласился на это.
нормальные форму завели только на СиШарпе, сходу больше ничего придумать не могу. даже у жавы вроде своя параша.
А что не так-то?
Ну хуй знает, qml же всякие есть ещё. А вообще в энтерпрайзе говно – частая практика.
Я сделал, но кажется по-уебански. Сначала запускается скрипт, потом вылетает хтмл. А надо наоборот, сначала хтмл, там юзер вводит слово, нажимает баттон, запускается скрипт, который ищет введенное юзером слово. Помоги, анон! Целый день проебал уже.
Суть в том, что есть строка. В строке есть имена персонажей. Есть еще две строки, которые надо заполнить именами персонажей, находящихся в первой строк.
Надо сделать так, чтобы первые пять имен попали в во вторую строку, следующие пять имен в третью строку, потом снова следующие пять в первую и т.д.
Я пошел через флаги, ибо иначе хз как, что со школы осталось
Вот пример кода, который я накидал для решения:
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 (l%5)==0:
flag=1
if flag==1:
w.append(aa[l])
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 (l%5)==0:
flag=1
if flag==1:
w.append(aa[l])
if (l%5)==0:
flag=0
l+=1
print(q,w)
Как вы понимаете, ничего не работает. Всячески пытался забить всё это костылями, но даже костыли не помогали, хотя задача-то легкая! Прошу, помогите макаке
>qml же всякие есть ещё
уже близко, но все еще хуета, в сравнении с давно не развивающимся wpf'ом
Ну я же ньюфаг еще, что с меня взять. А если вы конкретно про несоответствие, то это верно, просто не вижу смысла пилить сюда весь код
import itertools
a = [1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,19,20]
a = [a[i:i+5] for i in range(0, len(a), 5)]
a = [a[i::3] for i in range(3)]
a = [list(itertools.chain(*x)) for x in a]
print(a)
Получается:
[1, 2, 3, 4, 5, 17, 18, 19, 20]
[6, 7, 8, 9, 10]
[12, 13, 14, 15, 16]
names=list(range(20))
q=0
for i in names:
..if q<5:
....list2.append(i)
..if 5<=q<10:
....list3.append(i)
..if 10<=q<15:
....list1.append(i)
..q=q if q<14 else 0
..i+=1
не питонично. Если длинна входного списка изменится - нужно переписывать код.
YAGNI же, вполне питонично.
Почему это?
Если тебя смутила первая строка, про names=list(range(20)), то это мне было лень писать 20 str-значений-"имен".
Если хочешь, можешь сделать хоть range(532) и все будет правильно работать.
/Сейчас только заметил, что нужно чуть-чуть исправить код. Ночью затупил немного. Из-за этого бага иногда втыкало не 5 значений, а 4 в строку. Правильный код на пике./
Как заставить BSoup методом find() выдать мне второе совпадение, как сказать, что то что я ищу это 'summary-alt' а не 'summary-alt adfeatures'(которое он мне выдает как первое совпадение)?
Знаю есть метод find_all(), но он возвращает несколько другой объект. Может есть регулярное выражение, типа 'summary-alt<this is the end of word>'?
Отклеилось.
Всем любителям клёвых компрехеншенов посвящается:
b = [[elem for lst in [aa[i:i+5] for i in range(5*n, len(aa), 15)] for elem in lst] for n in range(3)]
Ты просто не умеешь.
Надо поменьше стейтментов в него пихать - делать несколько компрехеншенов подряд. Тогда вместо здоровенного вложенного цикла с кучей проверок получится буквально несколько строк повышенной читаемости. Ступай делать компрехеншены!
> list(map(something, some_list))
> [something(x) for x in some_list]
Очень компактно и удобно, давай дальше.
Пробывал хpath? Что-то аля html.xpath('//ul[@class="summary-alt"]') выберет только те, что строго с тем классом. Хз можно ли такое в супе, пример из lxml.
Как большой любитель костылей я иногда делаю вот так:
def someFilter(tag):
..return tag.name = 'ul' and ''.join(tag.get('class')) == 'summary-alt'
bs.find(someFilter)
Наверное, как-то лучше можно, но заебался уже - у соупа абсолютно везде, где я пробовал, фильтр на класс выставляется только на часть класса, т.е. то, что ты указал, должно в классе быть, а вот то, что только оно там будет этого никто не гарантирует.
Пистон
Гвидон
Пиздон
Пифон
Пердон
Поддон
Плафон
Сифон
Дракон
Пион
Понтон
Футон
Страпон
Тритон
Масон
Хуён
Платон
Пахом
А что ты хотел с таким порогом вхождения в язык?
По-моему, лучше задрочить что-то продвинутое и нераспространенное и работать по этой области.
Но я просто веб-технологии не люблю.
my_file.flush() же, сливает из буфера в файл когда захочешь.
a.encode('cp1251', 'ignore').decode('cp1251') # где в a какой-нибудь utf8
Я, конечно, завернул эти все вызовы в функцию, но нет ли в питоне какого-нибудь варианта прописать вообще всем попыткам питона заинкодить чего-нибудь (например, когда в файл пишешь, выводишь через принт и т.д.) этот самый 'ignore', чтобы он все символы, какие не может заинкодить просто пропускал?
Красивый суп.
Экзепшены же, хули не?
алхимию эскуел
алхимию эскуел
Сделай РПГ, там чтобы в лесу. Можно быть эльфом, человеком. И корованы грабить.
Борду напиши)
незачто.
поддвачну. Я предлагаю еще собрать гитхаб-аккаунтов популярных питонистов и выложить их куда-нибудь, чтобы можно было фолловить и быть в курсе всех дел в мире Python-dev'а.
Можно и их изучать. Только понимай, что это переходный этап и ограниченный сверху. Когда эти фреймворки создавались, веб был другим.
Посмотри на Торнадо и asyncio, если ты так хочешь писать бекенд на Питоне. Но это сложнее чем синхронный thread-per-connection подход, рили.
Сейчас веб ивент-драйвен со всякими веб-сокетами.
Когда читал его, он засрал мне всю ленту со своей sjw и феминистической хуитой. Ну его нахуй.
for strk in strks:
strk = 'хуй'
^ нихуя не заменяет, как быть?
strks = ['хуй'] * len(strks)
Блять, ебучая макаба с какого-то хера брекеты сожрала. Ну похуй, уже вариант лучше дали.
Спасибо, попробую!
Пайчарм. На рутрекере можно украсть кейген, сгенерить ключик, и он будет работать в нормальном пайчарме с офф. сайта.
Ты можешь на глаз подобрать функцию. А потом профитировать её в scipy
Не пизди.
Ты дебил или придуриваешься? Я если могу достать бесплатно что-нибудь обязательно достану бесплатно. Вот такая я пидорашка, которая свалит за бугор скоро.
Есть подозрение, что Анон выразил свое непонимание по причине наличия бесплатной версии IDE PyCharm, которая называется "Community Edition". Но если тебе нравится "доставать", то никто не против.
Это я и имел в виду. Я вообще сейчас с него слез временно, ибо не запоминаю, ни черта из-за автодополнения. Лол.
Jupyter.
Рефакторинг, всякие хитровыебанные анализаторы кода, автодополнения, быстро можно создавать и масштабировать проекты, легко с ними работать и много чего ещё.
Сравнивать IDE и текстовый редактор глуповато на самом деле, я дрочу код в виме, но если надо именно РАЗРАБОТКА и с этим точно будут работать другие макакичи - беру IDE. Плюс там множество перделок чтобы работать в команде эффективнее.
но он почему то не поднимает тред, в чем дело, проделки макаки?
и за одно ответьте кто нибудь.
>>487667
Всякие анализаторы, автодополнения, миллион видов интеграции с гитом, рефакторинги и т.д. можно и в сублайм себе накачать. А чего там есть для того, чтобы совместно с кем-то кодить? И это всё платное и на серверах джетбрэинс?
И да, чего так вим многие дрочат? Ни разу не пробывал, но прям интересно стало, чего там такого лампового.
Тот тред в бамплимите давно, наркоман. Посмотри книжки в шапке. Интуит говно какое-то, тем более по второму питону.
http://www.diveintopython3.net/ щитаю для нубов ок, без воды.
Не нужно.
Если тебе нужно чтобы всё разжевали, скачай с nnm-club уроки от школы программирования, плюс загугли pybursa скачать, вроде тоже были в паблике.
Для ньюфага самое оно, от хеллоу ворда до написание приложений на джанге. А дальше уже можешь штурмовать книги и гугл, ну и ПРАКТИКА, без неё ты нихуя не научишься.
и ещё, если будешь искать, то сразу ищи материал по третьему питону и скипай всё со вторым, потому что несмотря на все эти высказывания, которые часто встречаются в интернетах, "но на втором же все библиотеки уже есть, а на третьем ни хуя нет", во-первых, на третьем уже всё, что тебе понадобится, есть, а во-вторых, все потихоньку съебывают со второго и недостающие библиотеки уже пишутся и это вопрос времени (уже небольшого).
Мимо другой анон, мне хватает PyCharm CE, для бизнеса он не подходит, но для моих поделок идеально.
Поставил, и у тебя сразу Дебагер, подсветка, коммиты, и прочее дерьмо... Конечно можно это все сделать в виме, и саблайме. С другой стороны все это у меня есть и без еботы.
Большой плюс, то что дома я кожу на венде, и на работе на макоси, и пайчарм там и там, и заебись(для венды еще тем хорошо, что ставить модули без лишнего гемороя, удобно)
Так что на вкус и цвет, все реадкторы разные... Вы тут еще емакс вспомните.
По своему опыту скажу - в pycharm они куда продвинутее чем в саблайме или виме. Особенно работа с джангами всякими и подобное, всё таки на этом огромный упор и делают. Просто попробуй на практике, можешь своровать на рутрекере самую жирную версию и что-то сделать. Для промышленной разработки решения лучше не придумаешь.
Саблайм это именно текстовый редактор, а не IDE. А ещё в плане мультиплатформы-переносов проектов и прочего у джетбрейна всё очень круто. Ты просто ставишь IDE, нажимаешь одну кнопку и весь твой проект и настройки уже у тебя. Ну и опять таки, все внутренние инструменты, плюс очень всё это удобно когда в офисах работаешь.
Ну и плагинов к IDE от джетбрейнов тоже много.
А в виме удобно то, что ты полностью всё делаешь клавиатурой и очень эффективно. Всякие хитровыебанные работы со строками, переносы и всё такое, притом когда надрочишься, то делаешь всё это очень быстро. Скажем так, разница как между рисованием мышкой и на графическом планшете.
Ладно, раз ты такой растеряша в интернетах, вот тебе ссылочки.
http://nnm-club.me/forum/viewtopic.php?t=859590 - Школа программирования | Python Разработка веб-приложений (2013) PCRec [H.264/720p-LQ]
https://cloud.mail.ru/public/6ab7b9c8294c/Python_online/ - PyBursa, пароль от архивов www.cogamesmoney.ru
А вот эти на английском!
http://rutracker.org/forum/viewtopic.php?t=4821521 - Working with Algorithms in Python
http://rutracker.org/forum/viewtopic.php?t=4821909 - Intermediate Python
http://rutracker.org/forum/viewtopic.php?t=4380161 - Learn Python The Hard Way (есть ещё книга, можешь своровать, очень-очень хорошая).
В шапке есть FAQ, там есть ссылки на udacity, там тоже много интересных курсов по созданию всяких клевых штук. Преподают олдфаги с гугла которые разработали весь поисковик такие как Норвиг. Он очень-очень умный.
Да, многое на английском, но без него совсем туго. Минус такого материала видео и переводов ещё в том, что большая часть на python 2.х, но я так понимаю опыта у тебя совсем-совсем мало, поэтому тебе сейчас будет без разницы, учись программировать и писать код, усвоить отличия 3 от 2 займет у тебя пару вечеров чтения статеек на хабре и медиуме.
Из двух книг выше лучше Доусон, она полегче для восприятия. Потом уже Лутца читай, он любит много воды лить, тяжело будет переварить.
Из начальных редакторов, я бы поставил на твоем месте что-то вроде Sublime, а уж потом перелез на PyCharm если надо. Учись рыться в коде сам, автокомплиты будут сначала больше отвлекать, чем помогать. Если ориентируешься под веб и джангу, советую сразу почитать про VagrantUp.
Ну и LPTHW в любом случае отличная своими задачами!
Главное пиши больше кода, иначе от теории будет мало толку.
И впрямь.
Спасибо бро за ссылки и наставления, в первый раз получил дельный совет в pr/.
добра тебе и чаю джва.
Traceback (most recent call last):
File "C:\Python34\Scripts\pycallgraph", line 25, in <module>
with __pycallgraph.PyCallGraph(config=__config):
File "C:\Python34\lib\site-packages\pycallgraph\pycallgraph.py", line 32, in _
_init__
self.reset()
File "C:\Python34\lib\site-packages\pycallgraph\pycallgraph.py", line 53, in r
eset
self.prepare_output(output)
File "C:\Python34\lib\site-packages\pycallgraph\pycallgraph.py", line 97, in p
repare_output
output.sanity_check()
File "C:\Python34\lib\site-packages\pycallgraph\output\graphviz.py", line 63,
in sanity_check
self.ensure_binary(self.tool)
File "C:\Python34\lib\site-packages\pycallgraph\output\output.py", line 97, in
ensure_binary
'The command "{}" is required to be in your path.'.format(cmd))
pycallgraph.exceptions.PyCallGraphException: The command "dot" is required to be
in your path.
Чего ещё можете посоветовать из профайлеров и т.д.?
Ещё хотел спросить, что думаете по поводу дебаггера пайчаровского - насколько он удобный, чего умеет?
Скриптинг, дата майнинг (наверное), веб.
aa=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
q=[]
w=[]
tmp = q
for i in range(len(aa)):
\tif i % 5 == 0:
\t\ttmp = w if tmp == q else q
\ttmp += [aa]\t
print(q,w)
это как-то вообще не пайтон-вей, проще тот гигантский компрехент разобрать на несколько частей - будет куда эффективней
императивщина, гадость. Либо map либо list comprehension нужно заюзать.
Проще или эффективнее? Сомневаюсь, что эффективнее. А проще это субъективная оценка. Я не знаю как там под капотом работают листы, но почти уверен, что разбивать их более затратная задача, чем один раз проитерировать.
>>490829
>comprehension
Пайтон больше императивный язык, чем функциональный. Какой смысл кодить на пайтоне, если угараешь по функциональщине? Хаскель в помощь.
Читал не так много статеек про то, как оптимизировать код на питоне, но везде писали (вот например первая ссылка из гугла -> https://wiki.python.org/moin/PythonSpeed/PerformanceTips ), что использовать компрехеншены (или мапы) гораздо эффективнее, чем просто делать каждую итерацию append() (+=).
>Пайтон больше императивный язык, чем функциональный. Какой смысл кодить на пайтоне, если угараешь по функциональщине? Хаскель в помощь.
Потому что можем. Какой ты скучный, погромист
И было бы круто чтоб содержимое столбика автоматом обрезалось если оно больше самого столбика.
1. Создаю класс с несколькими методами, которые должны выполнять некую работу
2. Обявляю экземпляр класса
3. Создаю бесконечный цикл, в котором эти методы по очереди выполняют эту самую работу, но существует определенные условия в самих методах, при которых метод должен прекратить свою работу и программа должна вернуться в тело цикла
Как это сделать? Имею примерно следующее:
class A:
....def method1(self):
........Тут некая логика и условия прерывания
....def method2(self):
........Тут некая логика и условия прерывания
instance = A()
while True:
....if <bla bla bla>:
.......instance.method1()
....else:
.......instance.method2()
Спасибо, попробую
Знаю что можно создать окно и уже потом к этому окну добавить событие (нажатие клавиши) и в дальнейшем обработать его. Вопрос в том, как не создавая окна добавлять события?
Что пишешь - то и читай. А для совсем начинающих обычно в учебниках достаточно кода.
А так, ну, модули из стандартной библиотеки можно посмотреть. И вот тут например https://github.com/vinta/awesome-python
Во время жизни приложения у меня создаются синглтончики. Ну, кустарным способом - статическая переменная хранит объект, а спец метод, если надо , создает объект по запросу. Так вот, периодически пропадает содержимое всех статических переменных. То пропадает, то появляется. Локально все збс. Главное подозрение, конечно, падает на хероку. Как лечить? что я делаю не так?
в бд будет медленно. По идее это грубо говоря лайвчат. пока сделано просто в лоб, даже без вебсокетов. Есть пул консультантов, пользователи инициируют диалоги, соответственно есть хеш диалогов.
Все это хозяйство надо где-то хранить. Просто в памяти, значит, не получается. Что делать-то? В бд такое пихать стремно, что за кеш?
в redis все ебашь
Если я соберусь использовать memcached , то если я сохраню объект целиком там, это будет копия обекта или ссылка на тот самый объект?
Слайсы, братан, слайсы...
a[-n:] = b
a = list(range(10))
a[-5:] = 'x' 10 #заменяем последние элементов листа
print(a) # [0, 1, 2, 3, 4, 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a']
Если интересно, при помощи слайсов можно ещё кучу не особо читаемой еботеки творить. Например, замена всех чётных элементов массива:
a[::2] = 'x' 8 # Важно, чтобы количество присваемых элементов было такое как количество элементов в записанном слева слайсе
print(a) # ['x', 1, 'x', 3, 'x', 'a', 'x', 'a', 'x', 'a', 'x', 'a', 'x', 'a', 'x']
(str(x) for x in input().split(" ")) . split("\n") не работает.
Инпутом разве многострочную строку принять? Он вроде бы берёт только первую введённую строку, а на остальное забивает.
А вообще, если тебе нужно что-нибудь разбить на строки, обычно работает .split('\n') или .splitlines()
Спасибо
как ты будешь сплитить по строкам что-то, что пришло из input(), если input() принимает только одну строку.
Вот пример если передать ему несколько строк:
http://ideone.com/iOrX8P
Если ты хочешь, чтобы у тебя был многострочный инпут, нужно делать что-то типа вот этого http://ideone.com/CD5wpU
Если я тебе какую-то херню втираю, так как не правильно тебя понял, то напиши пример того, что ты хочешь ввести и что программа должна при этом вывести.
Проверяю если нет объекта то вызывать форму для создания, но потом эта форма остается даже если создаю форму, как поправить?
http://pastebin.com/17VhXQR0
Вкатился в программирование год назад, сейчас работаю пхп-макакой.
Стоит ли параллельно работе учить питон?
Имею представление о MVC, ООП, базовых алгоритмах.
Если время есть - стоит. И не только питон. Нормальный программист знает несколько языков, знаком с большинством мейнстримных, а с помощью такой-то матери и гугла может "писать" на всех. Расширение кругозора, все такое. Плюс это дает возможность грамотно участвовать в языкосрачах.
Очень понравилось, как сделан учебник у пхп-господинов
>>/pr/487138
Нет бесполезной воды, нормально объясняется, нормальные задания. Есть что-то подобное для питона?
Перестань скроллить /б/ и сократи число просматриваемых тайтлов/сериалов и игорей.
Да, спасибо, что-то типа такого и хотел. Просто думал можно покороче это все сделать, но ладно.
Как сложить строки из двух разных файлов?
>Обязательно задрачивать теорию баз данных?
Обязательно или профессия не для тебя.
И не беспокойся так, ещё в 90-е, ещё до появления MySQL и питона норот страдал-мучался тем же вопросом.
Главное, в верстальщики-эникейщики не ходи.
Прочитать в две переменные, не судьба?
Ах да, у тебя же в программе только одна переменная. Тогда никак.
Да я в принципе не против выучить теорию баз данных. Одна проблемка, я постояно боюсь что слишком поверхностно изучил и постоянно лезу еще глубже. Хуяк и я уже пытаюсь вникнуть в алегебра множеств. хуяк и куча времени проебано. А мне всего то нужно в SQLite немного шарить. Дико бесит то что нет книг например выучить теорию реляцонных баз данных и все это на примере sqlite.
СMS че делать? Читать доки пока катарсис не догонит?
>верстальщики-эникейщики не ходи
Куда угодно пошел бы лишь бы 100$ платили и не заставляи тягать тяжести, заебало.
with open("foo.txt", "r") as foo, open("bar.txt", "r") as bar:
foo_data = foo.read()
bar_data = bar.read()
Извините, что побеспокоил - надо было цикл прервать, а я и не допер сразу, как это делать. Хеллоуворлдщик же.
Качаешь любую книгу-справочник с примерами по нужной тебе БД. Издание Packt Publishing выпускает дохуя таких, там страниц на 150-300 максимум книжули, как раз идеально тебе подойдут.
А про матан почитай дискретная математика для программистов скачать торрент
У нас тут не принято отвечать помогающим. Запомни. Тем, кто помог отвечать не нужно вообще. Нужно получить инфу и съебать, оставив собеседника в недоумении, прочитали ли его пост, и если да - помогло ли.
Ты портишь всю атмосферу нашего гадюшника и должен уйти.
>>488690
https://youtu.be/S-RjiMAxHio?list=PLmqFxxywkatStbd9hdzVOS1hZa9dc56k4 годно стелит чувачок, все по делу
Оказываеться в Джанго 1.8 нет такого модуля from django.conf.urls.defaults import *. Похерили они defaults. Откатываться до 1.6 - лениво, все заново переделывать. Посоветуйте как мне наебать Platа и подсунуть ей этот defaults.
Бля. А там еще какая нибудь хуйня вылезет. Современное программирование во фреймворках превратилось в настоящий ад зависимостей. Хливкая башенка из детского конструктора, вытянешь один кирпичик - розвалилось все к хуям. Если бы программисты строили цивилизацию, ее мог бы уничтожить случайно залетевший дятел. Ага , такой дятел как я.
>>492568
Я не понял тебя. В defaults лежат нужные мне функции. Гуглил эту проблему. На стэковерфлоу советуют заменить на "from django.conf.urls import patterns, url, include" если свой код. Но это не мой код ,а провить PLata я заебусь. Вот поетому я и спрашиваю можно ли скормить эти модули - patterns, url, include как "from django.conf.urls import pattrens, url, include AS DJANGO.CONF.URLS.DEFAULTS"? Сомневаюсь что три библиотеки можно импортировать под одним именем.
при попытке загрузки файла.
Через браузер загружается. Что я делаю не так?
Бля, посмотрел половину этой хуиты. «приватный конструктор публичный getinstance», для какого же быдла это расчитано?! Я про паттерны вообще.
Оно уже на сервере крутиться. Блять, ладно переделаю под django 1.6. Сук.
Как же бесят такие арты.
Лучше половину всего курса посмотри. Вещи там действительно полезны рассказывают. По одному синглтону о паттернах е судят.
Посмотрю конечно, но не думаю что буду впечатлён.
Ты видимо невнимательно слушал (или не дослушал до того момента), лектор прямым текстом говорит что использовать паттерны в лоб это стремно и что перед использованием надо трижды подумать подойдет ли он под поставленную задачу и при любом сомнении забить на паттерн.
Питонисты привет.
Можно ли на питоне сделать проект аля камшоурум. Лайк зис - 4cam.com
Или аналог твиттера?
Да.
Дать права на выполнение файлу?
Всё падает ещё в реквесте, соответственно никакого файла нет.
Это urllib проблема вроде. http://stackoverflow.com/questions/13303449/urllib2-httperror-http-error-403-forbidden
Паттерны привязки к языку не имеют. Так что пох что смотреть, главное понимать что излагают.
Ну как сказать, выполнял задания в книгах, но тут уж нагуглил этот сайт, что можно попрактиковаться, выполнил только пару заданий потратив все подсказки.
Прочитал - типа посмотрел на буквы и нихуя не делал заданий, думал, что сейчас знания сами влетят в твою голову, пока ты смотришь на строчки и забываешь предыдущий абзац, начиная следующий?
В чекио челлендж нарастает, гуглишь просто и всё.
Помимо заданий пиши свое. Если учу новый язык то к концу первой книги у меня уже написана какая-нибудь ненужная хуита на ~2k строк.
Короче практика практика кладбище пидор
А ты думал, кек.
Для получения реальных знаний нужна практика, без неё хуйцы сосёшь. Может ты до этого не знал как решить эти задания, а теперь знаешь и это главное. Опыт и практика это как раз то, на что и требуется больше всего времени и терпения. Ну унывай, всё у тебя получится.
Дам совет - когда не можешь решить задачу, сделай небольшой перерыв и потом попробуй придумать алгоритм решения на листочке. Очень помогает.
Что угодно. Игорь уровня марио, бложек, бот, реализация клиентского xmpp, ну вот такая хуйня. Хоть имиджборду пиши, но пиши.
Ты видео-то посмотри. Паттерны GoF писались java-говноедами для джавы, половина не имеет смысла для питона, так как есть в нем by design.
>Паттерны GoF писались java-говноедами для джавы
>Первое издание книги 1994 год .
>Релиз Java 1995 год.
Если ориентироваться по примерам из книги то тогда уж крестопидорами.
И пролистай к первоначальному посту ветки >>488682 , там человек просит что то что бы влиться в ООП и архитектуру приложений. Так что ему для понимания и GRASP и GOF пригодится.
В этом есть часть правды, но есть и другая сторона - новичок будет отвлекаться на особенности джавы, которые ему не нужны. Для него все эти знания одинаково неизвестны, и его силы будут распыляться на не интересующие его вопросы.
Общий принцип при изучении - изолировать интересующий объект как можно сильнее. Поэтому понятно стремление изучить что-то на примере питона. И уж когда потребуется что-то продвинутое, воспользоваться инструменто-независимыми знаниями.
Последние, как правило, советуются людьми, которым как раз не нужно ничего изучать, и я не перестаю удивляться тому, что они не понимают таких простых истин. Воистину, хочешь стартовой годноты, а не хуйни - реквестируй у других ньюфагов.
мимо
Можно делать критические части на Си. У питона очень удобная интеграция с Си.
Эффективно писать - это избегать излишней сложности типа O(n^2) там, где это излишне, притом без хитрых байтоёбских оптимизаций а путём правильного кодописательства и организации циклов? Я считаю - только опыт и хорошая голова. Или ты собрался рендеринг на питоне делать?
Эффективно это быстро писать код или что бы он быстро выполнялся?
Если второе то прочти тут раздел https://ru.wikipedia.org/wiki/Python "Профилирование и оптимизация кода" там пара тезисов есть.
В лекциях таки от джавы толком и нет и уж точно не расписываются её особенности, все таки там упор на паттерны а не на язык, примеров именно кода дам раз два и обчелся, больше UML и в общем виде.
Вот назрели к тебе несколько вопросов :
1) Обязательна ли зубрежка терминов и прочего,особенно при чтении Лутца? Я вот читаю его и частично чувствую,что я половин не запомню. А как мне написать код,если я не смогу что то вспомнить?
2) За сколько в среднем приходит понимание коддинга? Через сколько недель-лет-месяцев ты,анон,без напряга решал задачи,не набигая в гуглы и не делая правки часто
3)вот допустим аутизм меня отпустит и я просвященный буду хотет писат КОД. Какие задачи и на каком уровне лучше решать?
2) За сколько в среднем приходит понимание коддинга? Через сколько недель-лет-месяцев ты,анон,без напряга решал задачи,не набигая в гуглы и не делая правки часто
3)вот допустим аутизм меня отпустит и я просвященный буду хотет писат КОД. Какие задачи и на каком уровне лучше решать?
>зубрежка
Нет.
>не смогу что то вспомнить
Посмотришь в книжку.
>За сколько в среднем приходит понимание коддинга
За тысячу лет в тибетских горах.
1) Названия ты всегда можешь подсмотреть в гугле/лутце/автокомплите лол
2) Зависит от количества практики
3) Лучше всего начинать с каких-то программ, которые тебе были бы полезны/относительно бесполезны, но тебе было бы их интересно писать, постоянно доделывать и т.д. Это может быть что угодно, хоть менеджер картинок с /b/
>>492862
1) Знание терминологии приходит с применением на практике. Простой пример - если ты начнёшь объяснять рандомному человеку из чего собран твой пека, он скорее всего не поймет это и не запомнит. Но стоит ему самому поковырять компьютер, у него появится четкая ассоциация термина и предметом, который он обозначает. Также и тут.
2) Никогда. Всегда будут задачи которые требуют изучения чего-то ещё, правок и гугла. Это как требовать от писателя чтобы он писал книгу без правок. Интернет дал тебя возможность делится знаниями и получать их, находить решение сложнейших задач, а ты такой "хочу выучить всё то, что учат миллионы других годами", и в добавок "изобретать велосипеды". Да ты даже в документацию языка после несколькоих лет работы с ним постоянно лазить будешь, чтобы узнать что-то. Забудь уже эту поехавшую мантру "НАДО ДЕЛАТЬ ВСЁ СВАИМИ ЗНАНИЯМИ ТОЛЬКА НИГДЕ НИСПИСЫВАТЬ НИЧЕГО НЕ БРАТЬ ИНАЧЕ ТУПОЙ", главное в этой жизни решать задачи, а не пытаться всем доказать, что ты можешь тоже въебать дохуя времени на то, что решили уже другие.
3) Любые.
Млинлол. Смотрю второе видео и лектор говорит: "Я в люксофте всех собеседователей обучал, так что..."
Из-за двачей люксофт теперь - как обзывательство.
ПИздос, на OpenShift не работают старые версии джанги. БЛять. Сукка , нахуй блять так хостить? На хероку чоть можно установить 1.5?
Почитал rhc tail. Закоммитил строку 'django.contrib.auth.middleware.SessionAuthenticationMiddleware' в файле settings. Хуй его знает для чего она нужна наверно для аутинфикации сессии, да?, но сейчас сайт работает. Если блять вступлю в еще какое нибудь дерьмо - попробую хероку.
>java-говноедами
>крестопидорами
Ну ты понел.
> там человек просит что то что бы влиться в ООП и архитектуру приложений. Так что ему для понимания и GRASP и GOF пригодится.
Не знаю, пока сам с таким не поработаешь, это все в режиме прочитал-"типа-понял"-забыл или прочитал-вызубрил наизусть, что совсем ебанатство. Для въезжания в ООП я бы посоветовал Буча читать: http://www.helloworld.ru/texts/comp/other/oop/ch01.htm
Установил я значит на шиндоус это окружение, допустим в папке C:\Python34\env.
Соответственно все проекты должны быть C:\Python34\env\ ?
После, если я ставлю virtualenv в папку C:\hui, то джанго и все прочее надо заново ставить?
'{}{}\n{}{}.{}{}{}: {}'.format(... выглядит уебищно.
str(n)+s+'\n'+b+'.'+str(c)+': ' еще хуже.
Нет, тебе надо запустить virtualenv, она создаст в заданной папке окружение, ты его активируешь и получаешь виртуалку, в которую начисто ставишь все свои либы для текущего проекта, чтобы не было пересечений и косяков от зависимостей в других проектах.
P.S: Буду благодарен, если кто-нибудь сможет помогать с возникающими трудностямифейкомыльце: memayasekun@gmail.com
Охуенно. Спасибо.
Ты предлагаешь запускать через интерактивный режим?К чему этот тон, я же ещё ньюфаг и не понимаю многого.
Я предлагаю осилить нормальную ось с терминалом linux/mac. Или по крайней мере взять вендовый поверщель/редактор со встроенным терминалом. В итоге для консольных приложений это куда удобней чем костылять инпутами, слипами и интерактивными режимами.
>К чему этот тон
Добро пожаловать.
p=sys.argv[1]
sql ="""SELECT src FROM cdr WHERE src=p;"""
Вот эту переменную надо которую вводишь с терминала.
В баше вот так работает.
sql ="""SELECT src FROM cdr WHERE src=$1;"""
А тут как не подскажете в python как ему обьяснить что p это переменная?
>>> p='lal'
>>> """SELECT src FROM cdr WHERE src={};""".format(p)
'SELECT src FROM cdr WHERE src=lal;'
Штож макаба сегодня так тупит. С третьего раза отправилось.
Спасибо большое работает!
Через формат можно в скобках указывать название кейворда, может поможет. Например вот: 'Hello, my name is {name}'.format(name=my_name)
Кстати, крайне не советую совмещать несколько строк в одну через +, потому что питон, когда так делаешь, начинает творить просто невероятный пиздец в памяти я, конечно, преувеличиваю, но это не очень эффективная херня и вообще существует в языке, скорее всего, только потому что это достаточно интуитивно выглядит
>начинает творить просто невероятный пиздец в памяти
Строки иммутабельны же. Что по-твоему должно происходить?
Каэшн. Для этого его и зделали, что бы не было промежуточных «сумм строк» и память не насиловалась.
http://ideone.com/uGZCbr
Да я после подсказки сразу нагуглил что как это юзается, спасибо. Вот вроде работает как раньше. Получает 2 параметра, выгружает нужные строки мускула в csv. Заюзал join хех. Кстати запрос вообще к мускулу нормально сделал?
p=sys.argv[1]
i=sys.argv[2]
t="".join((time.strftime('%y-%m-%d-%H-%M-%S'),'-',p))
# соединяемся с базой данных
db = MySQLdb.connect(host="localhost", user="root", passwd="m", db="testdb", charset='utf8')
# формируем курсор
cursor = db.cursor()
# запрос к БД
sql ="""SELECT src,calldate,dst,billsec INTO OUTFILE '/tmp/{}.csv' FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM cdr WHERE src={} AND calldate > curdate() - interval {} day;""".format(t, p, i)
# выполняем запрос
cursor.execute(sql)
db.close()
Не в смысле сам запрос, а метод обращения к мускулу, я что то столько вариантов их нагуглил пока пробовал и так и так. В итоге вот этот подошел. Люди кстати кто тоже спрашивал как на python выгрузить строки в csv почему то так не делали одним запросом. А сложные варианты с записью в csv которые у меня не заработали почему то. В итоге тот запрос который из баша работал и тут справился.
Данные подаются из другого скрипта где не пропустит длиннее 3х цифр, или все равно догуглить закрыть?
кстати да, я забыл про слак. Познакомился с ним на cs50. Годная вещь...
Бампану вопрос
>придумать алгоритм решения на листочке
Программирование дало мне возможность аутировать так, как я люблю — рисовать всякие "хитровыебанные" схемы для алгоритмов, лол. SPASIBO, PYTHON!
Прочитал твой пост, вчера несколько часов пердолился с этим сублаймом, но таки заставил его работать с 3-м питоном. Теперь просто охуительно. Написал какую-то ебалу, CTRL+S, CTRL+G это у меня запуск кода такой, и всё, сразу смотришь результаты своего творения. 10 из 10, г-споди!
Кошелек. Я у мамы нещеброд. Бесплатных нет. Или строк -1 месяц.
Пидор, откуда ты знаешь о чом я пишу диплом?
http://habrahabr.ru/sandbox/84639/
Прошу не закидывать дерьмом, но блять полдня вожусь.
Хуйня какая-то.
Полагаю, что здесь много кто этим пробовал заниматься?
Не знаю, что ты там пердолился, может, линуксовый сублайм требует большего участия, но на шинде просто сохранил файл с расширением .py и нажал F7. Погугли хабр про настройку сублайма под питон - там много ништяков типа sublime jedi и pylint. Всё сразу не ставь, просто имей в виду. Главное - поставь package control. Всеобъемлющее Меню открывается по Ctrl+Shift+P - там команды располагаются. Многие аддоны не интегрируются в интерфейс, например, а просто существуют в качестве команд, которые можно повесить на хоткей.
>>493170
Но ведь ты никогда так делать не будешь. Чего время терять.
А для чего его можно применять? Тралькать? У меня тут знакомый зарабатывает на actionpay. Нашел группу вконтакте и присвоил ее траффик себе. И получает не кислые деньги. Я тоже так хочу.
Да я бы просто со статистикой поиграть хотел.
Не, F7 нихуя не даёт, просто пишет
> [Finished in 0.3s]
Нужно было поставить package control, потом через него SublimeREPL, и повесить его на хоткей тот же F7
Спасибо , что ответил)
Но разобрался.
Я с доступом долбился - неправильно указывал.
А надо было просто словами : wall написать и все.
Скриптопидрствую, либоёбствую.
Дан непустой массив целых чисел (X). В этой задаче вам нужно вернуть массив, состоящий только из неуникальных элементов данного массива. Для этого необходимо удалить все уникальные элементы (которые присутствуют в данном массиве только один раз). Для решения этой задачи не меняйте оригинальный порядок элементов. Пример: [1, 2, 3, 1, 3], где 1 и 3 неуникальные элементы и результат будет [1, 3, 1, 3].
non-unique-elements
Вх. данные: Список (list) целых чисел (int).
Вых. данные: Список (list) целых чисел (int).
Как это используется: Эта задача поможет вам понять, как манипулировать массивами. Это полезный базис для решения более сложных задач. Также эта идея может быть легко обобщена для реальных задач. Для примера: если вам необходимо очистить статистику от редко встречающихся элементов (шум).
Предусловия:
0 < len(data) < 1000
Обьясните ,в чем суть вот этих строчек:
for el in data:
if data.count(el) > 1:
result.append(el)
чет ам делать то надо ? учу неделю язык,думал хоть прктикум легкий сделать
Проходим по списку элементов
если элемент встречается больше раза
добавляем элемент в список-ответ
Просто пых самый популярный для веба. Питон как язык четче и правильней, и фрейморвки вроде джанги достаточно легки для понимания. Пхпшные фреймворки вроде симфони, например, еще хер осилишь, такой то bloated ад.
Ок, спасибо!
Прежде чем браться за джангу посоветую посмотреть - почитать про протокол http, https. Хотя бы поверхностно ознакомиться что это.
Блять посоветуйте какой нибудь бесплатный впс. host1free - закрывают. Заебали меня эти платформы saas. Openshift нельзя установить старую версию django, а если устанваливаешь - теряешь суперузера и нету доступа к админке. В хероку можно установить старую версию django?
Я пользовался, когда захотел скрапнуть кое-какой контент, но bs как раз не трогал. Заебался насмерть, но мне понравилось. Но в итоге скрапнул совсем другое, так как задачу не выполнил - не осилил обход защиты от воровства, как ни ебался. Решил ворованной мокрой писькой WebHarvy.
>посоветуйте какой нибудь бесплатный впс
cloudatcost.com
Не бесплатно, но можно купить навечно. А не платить абонентку.
Бля. Ты или что-то НАСТРОИЛ или хуй знает. Аутпут должен идти туда:
Hello world
[Finished in 0.1s]
Он с самого начала так работает. Да и он мне не нужен вообще, я уже поставил SublimeREPL.
Ладно.
Значит, у тебя стандартный конфиг и ты ничего не менял. Тогда открой tools -> build system -> new build system...
И в открывшийся файл засунь вот это:
[code]
{
\t"shell_cmd": "python -u \"$file\"",
\t"file_regex": "^[ ]File \"(...?)\", line ([0-9]*)",
\t"selector": "source.python",
\t"encoding": "cp1251"
}
[/code]
Сохрани и обзови как-нибудь. Затем заходишь опять (может быть надо перезайти в сублайм, не уверен) в tools -> build system -> и ищешь название конфига, который только что сохранил. Тогда нормальный вывод заработает. Но учти. вывод будет в кодировке 1251 и если что-то надо будет через принт вывести, то это нужно учитывать. Например, если какой-то текст с некоторыми символами из utf8, то нужно будет писать вот такую ебаку:
print(message.encode('cp1251', 'ignore').decode('cp1251'))
Я так понимаю, на винде по дефолту пиццон принтит в консоль в цп1251.
Сидит рыбак , ловит рыбу. Вылазит жаба из воды и говорит "Можно я возле вас посижу?" Рыбак пожимает плечами и говорит "Сиди, только не шуми". Жаба села. Сидела , сидела потом спрашивает " А как вас зовут?" . "Коля" отвечает рыбак. Сидят дальше. Тут из воды вылазит вторая жаба и говорит "Можно я возле вас посижу?" Вторая кричит "ПОШЛА НАХУЙ!! Правда, дядь Коль?"
Не понял. Это какой-то чисто русский юмор?
Это фреймворк. Плюсы -- очень много чего уже сделано за тебя, меньше велосипедов и говнокода, пониженный wtf-фактор. Минусы -- нужно разбираться в устройстве фреймворка, в большинстве случаев он слишком громоздкий (для меня по крайней мере).
Пошёл писать на си. Теперь сам выбираю на чём писать, использую Python.
Луче aiohttp и bs4.
Спасибо)
Его нужно отсортировать. Сначала нужно отсортировать по a[0] (по первому элементу каждого внутреннего списка), затем, если a[0] где-то окажутся равными, то нужно сортировать по a[1].
Желаемый результат: [[28, 0], [28, 5], [28, 7], [33, 1], [33, 8], [35, 3], [41, 9], [51, 4], [95, 2], [99, 6]]
Прочитав про многоуровневую сортировку, вроде бы выяснил, что в моём случае нужно писать a.sort(key=itemgetter(0,1)). Соответственно, порядок аргументов в itemgetter задаёт и порядок сортировки. Поэкспериментировав, выяснил, что вызов sort() без указания ключевых аргументов даёт тот же резутьтат. Вопрос: всегда ли sort() без ключевых аргументов ведёт себя так, т.е., если в списке есть элементы sequence type, то она сначала сортирует по первому элементу внутренних элементов, затем по второму и т.д.?
Сажа приклеилась.
Уже месяца два ничего не писал.
вот сегодня начал.
http://pastebin.com/U3CActpm
в общем получил на выходе такой список.
Но хоть убей не врублюсь - как красиво вывести вложенный словарь. или надо было б куда-то копировать и оттуда уже?
for item in a['items']:
print('{first_name} {last_name}, id{id}'.format(first_name=item['first_name'], item['last_name'], item['id'])
Или тебе чего надо?
С радостью, но как мы тебя узнаем?
for item in a['items']:
print('{first_name} {last_name}, id{id}'.format(first_name=item['first_name'], last_name=item['last_name'], id=item['id'])
Есть один диплом, нужно реализовать несложную программулину, которая будет классифицировать отзывы. Т.к. меня подписали на это говно, я поискал инфы и нашел решение - scipy. Ну, думаю, заебись. Нашел Anaconda, поставил. Придумал заебашить нормализатор текста с помощью pymorphy и алгоритма Левенштайна. Прикрутил это. Но я никогда не писал на питоне, все слилось в то, что я не могу это тупо написать. До этого писал всякую парашу для саморазвлечения на делфи,с++ и помогал пару раз с с#, но там задачи попроще были. Самая серьезная моя работа - визулочка для работы с sql таблицами, единственный курсач, который заставил подумать. Хотелось бы найти человека, который помог бы мне с кодингом. Сейчас у меня не выводится массив в файл, я не могу разобраться, а сроки жмут. Рассмотрю любые варианты но бабла до июля 500 р. осталось, я днище-студент же
Факт того, что провафлился сам осознаю, но 1,5 месяца украл ебаный военкомат.
Скайп - anonimed1
Страдай, ебта
Это норма для сортировщика, иначе бы он возвращал не отсортированный результат. Многоуровневая нужна, когда тебе нужно по 3, 1, 5 отсортировать, например.
Вместо айтемгеттера в сортах можно говнолямбды использовать, кстати:
sorted(list, key=operator.itemgetter(3,1,5))
sorted(list, key=lambda x: (x[3], x[1], x[5]))
>Сейчас у меня не выводится массив в файл
Очень детальное инфо! Попробуй то, что ты ещё не пробовал, а также то, что ты пробовал, но может, неправильно что-то пробовал и не заметил этого.
Пару лет назад брался, но не осилил. Я пробовал поднять его на серваке, но оказалось, что нужно использовать жуткий костыль.
Поясните, для чего этот язык нужен? Для каких задач?
>жуткий костыль
Это какой же?
>Для каких задач?
Почти для любых. Проще сказать, что на нем нельзя сделать.
Можно писать прямо как на пикрилейтед?
Web2py, то ли CherryPy.
>Почти для любых.
Расскажи, как прикрутить его на сервак, чтобы было удобно? Я нихуя не понял.
Блядь, как мне припекает. Вот столько нужно сделать действий ради говноязыка.
Гугли в интернете. Django projects source.
> "глобальный,_(перен.:_всеобщий)": "global",
> "Pов": "pow",
> "Исполнительный": "exec",
Годнота!
>>492819
Спасибо за советы, нашёл на checkio задачки полегче которые более-менее получается решить, правда потом когда смотрю на решения других людей немного припекает когда вижу у них простую функцию с парой строчек кода, всё просто и лаконично, а у меня какой-то велосипед с 8 колесами и без одной педали, хоть он и едет.
И чего такие простые задачки?
Во второй там какой-то фэил, если я правильно понял, len(login) >= 1 or len(login) <= 20 будет True выдавать абсолютно всегда, разве нет? Там and нужно или 20 >= len(login) >= 1
С вебом незнаком? Так в любом языке.
http://pastebin.com/B3jJa316
Мой код показался оче вырвиглазный. Скажите, у меня есть шансы?
Что за поделка?
Давай по порядку:
>в виде ax^2+-bx+-c
Зачем минусы? Они здесь не нужны, зря загромождают консольку. В UTF8 есть знак "плюс-минус", можешь использовать его. Либо же оставь просто плюсы (можно ведь под b подставить -5 и все логически и математически будет верно). К тому же, зачем переписывать человеку все уравнение, почему бы не дать ему возможность просто вписать a, b и c?
Не проще ли сделать (я не ловлю ошибки, можешь учесть это сам чуть позже, как дойдешь до них)
print("Введите множители квадратичного уравнения вида ax+bx^2+c=0.")
a=input("a: ")
b=input("b: ")
c=input("c: ")
>a = int(a) - здесь тоже вопрос. А вдруг a==4.5, а ты его обрезаешь до 4? Тут нужен float. (И, кстати, писать через точку с запятой - плохой тон в пайтоне, лучше с новой строки писать каждую операцию).
>x1 = (-b+math.sqrt(diskr))/2a
Доебусь за быстродействие: быстрее будет выполняться такой код:
x1 = (-b + diskr0.5) / 2a
Звездочки съело. diskr(две звездочки)0.5 должно быть.
МОЧААА, я не буду с этим поехавшим на одной борде сидеть!
Может потому что эти задачки дают еще до самого собеседования.
Бля, "Второй день изучаю" не заметил. Забей.
https://www.djangosites.org/with-source/
Можешь еще исходники того мезанина глянуть.
https://github.com/stephenmcd/mezzanine
питонач. Я вот нихуя не могу разобраться с логикой работы джанго. Как быть? Я привык - регаешь хостинг, расставляешь нужны права на папках, заливаешь вордпресс и далее его ковыряешь. Всё понятно. Все в индекс.пхп подцепляется. Как же с джангой то быть? Читал тутор и как-то не густо...
А какой у тебя сервер? В любом случае гугли django deploy apache|nginx или че у тебя там?
какой же сервер... я ж в продакшн ничего не выпускал даже. Банально в сонсоле написал python manage.py runserver. Проходил офф тутор джанги. Ну я понимаю что написано. А суть то не могу уловить. Как будто на иностранном языке каком-то. Там всякие модели, контроллеры, ещё чего-то там... вот именно это мне не понятно. Урлсы всякие...
Конкретизируй.
urls - это какой класс/функция будут вызываться при обращении к данному адресу. Класс или функция должны вернуть объект HttpResponse или вроде того.
Модели - это просто оболочка над базой данных. Благодаря им тебе почти не надо писать SQL. Грубо говоря. Каждый класс модели - это таблица в бд.
Что конкретно тебе не понятно?
Как к этому привыкнуть, если мой мозг привык к обычным цмс, а с фреймворками я прежде не работал? Просто дальше практиковаться?
Да.
Пока получается вот так - просто линии, а надо хоть чуть чуть нагляднее.
В логарифмическом масштабе построй.
Ты сначала попробуй.
import re
regexp = re.compile(r'"/[^(\w)|(\@)|(\.)|(\-)]/"')
s = "test lol@mail.ru big"
mail = re.findall(regexp, s)
print(mail)
Зачем такие сложности? В 98% случаев мыло матчится проще:
>>> re.findall("[\w\.-]+@[\w\.-]+", "test lol@mail.ru big")
>['lol@mail.ru']
У меня много мыл, и текст лютая хуйня в перемешку с кодом разметки и JS
Алсо, спасибо
Ну не знаааю, я вот сейчас взял view-source:https://2ch.hk/pr/res/488104.html с разметкой и кусками говна js, вроде ничего не пропустило и ничего лишнего не нашло.
['test@gmail.com']
['memayasekun@gmail.com']
['lol@mail.ru']
['lol@mail.ru', 'lol@mail.ru']
['admin@2ch.hk'
[CODE]
(?:[a-z0-9!#$%&'+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'+/=?^_`{|}~-]+)|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])")@(?:(?:[a-z0-9](?:[a-z0-9-][a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-][a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])
[/CODE]
Ты выиграл, лол.
....for s in l:
......оче длинный фор
Как извернуться чтоб избежать лишнего уровня вложенности от ифа? Хотелось какой-нибудь фор-иф на одной строке, типа for s in l if len(z)>100:
Сходу предложу использовать исключения. Но сформулируй вопрос точнее, пожалуйста.
1. Если for в for без промежуточных переменных, то делаешь product. Если у if нет else ветки, или if в цикле, делаешь continue, если в функции return.
if yoba:
....return
sub = генератор длинного фора
for s, x in itertools.product(l, sub):
....yoba-code
Это та ситуация, когда говно мамонта в редакторе появляется горизонтальный скролл. Разгребаю потихоньку. И вопрос встал скорее из любопытства. Короче хочу запихнуть "if for" в одну строку аля list comprehension, а тело for расписать уже как нормальный фор.
>>494752
Промежуточные переменные есть, не катит. continue тоже, после фора еще куча нужного кода. Если бы в питоне был goto я бы его заюзал,
if something is False:
.. goto mark
for
... code
mark
Сделай вид, что кусок было необходимо завернуть в функцию. И запили функцию. Можешь делать фор в функции или можешь звать функцию в форе, как хочешь.
Ты описал скоуп, я предложил реализацию. Я же не знаю что у тебя там ещё. mark-content, это то, что после for.
Шож ты анончика так. Он мне помочь хотел, пусть и не в тему совсем.
Спасибо, что дал знать, что это не ты был, я уж подумал - совсем охуевшие люди пошли.
Потому что все в компрохейшын не получится. Там оче длинный фор со сложной логикой и мутным говнокодом. Я хотел как-нибудь объединить только if-for без тела цикла, чтоб из-за одного сраного ифа огромный кусок кода indent-ить не пришлось. А то экран рвет.
Рефакторь смело.
Хуже всего, когда так:
001 if not shit:
... <прошло 150 строк>
150 else: do one-line shit
Заполняем кучу переменных ( не лист ) таким образом:
try:
var1 = do_shit()
except:
var1 = None
Переменных порядка десяти, do_shit конечно же различается для каждой ( простые однострочники ). Как уменьшить простыню?
tornado, aiohttp. Потому что модно-молодёжно.
Слишком оторванно. Вполне питонично сделать десяток вариаблов ду шитом, имхо. Может, есть пример такого кода, который выглядит не питонично?
Я не могу запихнуть в дикт, тогда еще длиннее будет. Код на пикче, чтобы было понятно.
Короче, как рефакторить вот такое говно? При условии того, что функция для заполнения каждой переменной условно уникальная. Декоратор может какой несложный запилить? Я сравнительно нуб, про декораторы статейку читал, но никогда на практике не применял, пойдет для таких задач?
Растягивай стейтменты на несколько строк.
Нормальные функции напиши, обвесь декоратором для контроля ексепшона. Самому будет приятнее. Сейчас это калллллл.
Или ещё круче: класс с методами, обвешенными вышеупомянутым декоратором, которые принимают soup и начинаются с get_ и метод do_zaebis, которые пробегается по аттрибутам класса в поисках методов, начинающихся с get_, вызывающий их и составляющий dict, который потом выплёвывает наружу.
Но я очень редко делаю такие длинные строки с последовательными вызовами. Хотя, в данном случае они выглядят неплохо, лучше альтернатив.
Но ОБЫЧНО я всё бью на простые стейтменты. То есть так:
дикт = {бляблябля}
вар = хуй.жопа(дикт)
вар = вар.говно()
вар = вар.чмо()
> вар = хуй.жопа(дикт)
> вар = вар.говно()
> вар = вар.чмо()
Я тоже так иногда делаю, но это уместно ли вообще?
Т.е. не лучше ли давать новые осмысленные имена?
Хотя бы
вар = хуй.жопа(дикт)
вар_говно = вар.говно()
вар_чмо = вар.чмо()
Думаю, иногда лучше, а иногда нет, не лучше. Зависит от чувства питоничности происходящего! Подскажет чутьё. Импортируй this, импортируй его ещё раз. Пример, когда однозначно одно название лучше:
стринг = отрезать_чёнибудь()
стринг = добавить_нимношк()
стринг = закапсировать()
резаный_стринг = отрезать_чёнибудь()
добавленный_резанный_стринг = добавить_нимношк()
капсовый_финальный_стринг = закапсировать()
цель - развиваться в сторону веба и находить себе удалёнку
Чтобы не было повторений кода и не было портянок. Конечно, если на скрине половина твоего кода, то игра не стоит свеч. Делать говёно легко, но чем больше проект, тем легче можно утонуть в этом болоте.
Я имею ввиду не конкретный код, по которому вопрос, а вообще всю программульку.
AbstractSingletonProxyFactoryBeanсно всё с тобой)))
Кек, ЕГЭ еще не кончилось?
Алсо задание максимально ебанутое. Зачем там инфа про 6 минут, если она нигде не используется?
Как эти далбаебы собираются отслеживать изначальное время работы программы чтобы проверять на увелечение в k раз? 1 кб? Это рассчитано на байтоёбов крестообразных?
Хуй знает что вообще по этому условию надо. Если тупо найти минимальное нечётное произведение, то можно искать просто нечётные числа с помощью целочисленного деления, перемножать их и сравнивать ища минимальное.
Так там реально необходимо только последние 6 чисел хранить. Потому и 1кб - отсеять решения, где весь массив в памяти.
Самое простое - вот так. Но, по-хорошему, чтобы всё было совсем эфишиент data[i+6:] лучше заменить на генератор со следующим ифом (типа (d for d in data[i+6:] if d % 2 == 1). Ещё, чтобы пройти по памяти (я хз на самом деле поможет или нет на самом деле), нужно переделать то, как сохраняется полученное произведение, - я уже думал по поводу того, чтобы просто написать res = min(res, data elem), но мне неохота было ещё один ещё одно ветвление всовывать. А насчёт скорости программы - всё зависит от инпута, так что даже не знаю, как можно ускорить ещё.
[code]
data = (11, 12, 45, 5, 3, 17, 23, 21, 20, 19, 12, 26)
res = []
for i in range(len(data) - 6):
\tif data % 2 == 1:
\t\tfor elem in data[i+6:]:
\t\t\tif elem % 2 == 1:
\t\t\t\tres.append(data elem)
print(min(res) if res else -1)
[/code]
Спасибо. А видео PyBursa в каком году писалось, почему они рассматривают версию 2,7, она же устаревшая?
Искренне благодарен. Теперь есть фундамент, а над эффективностью я буду уже сам заморачиваться
В 2013-2014 вроде как, сложно сказать. Гугл намекает на 2014.
А использовали 2.7 потому что больше русскоязычного материала, всё таки видеокурс рассчитан на среднестатического обывателя, а он обычно английский особо не знает, да и в программировании ноль.
>видеокурсы
Поссал на даунов.
.."string {}".format(
..value)
Или
.."string {}".format(
....value)
vim форматирует по первому варианту, но это как-то вырвиглазно. PEP'о-гуру, подскажите.
Вообще, в данном случае в одну строку лучше.
А вообще, отступ стопудово нужен.
И вообще, как тебе нравится: http://pastebin.com/09BfJv1g
Пиздецнахуйблять. Думал сделать еще лучше, шоб прям вообще заебись, и прогнал свои 900 строк БЬЮТИФАЕРОМ, а он сфейлился и вместо моего сорца оказался ТРЕЙСБЕК.
А бекап я делал утром.
Делайте бекапы чаще, посоны. А лучше юзайте гит!
хорошо что кодил сегодня мало
Ну ты совсем что ли наркоман? Бьютифаер твой умеет бэкапы делать?
Анимехуй с треда уйди, иначе ещё подумают что анимедауны только программируют на Питоне.
А ты прогони.
Хейтера волнует, что кто-то там думает. Небось посаны сказали онеме нимодно.
Ну ты хоть код-то свой запусти. Проверять кортеж на нечетность это, конечно, клево.
Да нет. Просто в джс треде куча всего. А я надеюсь, что тут есть какой нибудь питонист, который уже прошел мой путь. И он бы дал мне пару советов.
В итоге обмазался автопепом и решил все проблемы на корню. Всем autopep8, посоны.
В нем не особо много смысла, если уже пишешь пепно. Во всяком случае, он у меня ничего не ремонтирует никогда.
Питонист прошедший твой путь сейчас в яваскрипт-треде и он уже не питонист.
Да, как-то непонятно зачем тебе float. Плюс к этому, чтобы произведение двух чисел было нечетным оба числа должны быть нечетными. Может не стоит перемножать все что на глаза попадется, а просто найти два наименьших нечетных числа?
Пользуясь этой хуйней ты моментально нарушаешь самый первый пункт PEP8. https://www.python.org/dev/peps/pep-0008/#a-foolish-consistency-is-the-hobgoblin-of-little-minds
Ну вот а оказался я докстринги для классов неверно писал, например. И еще по мелочи.
Теперь хочу сделать do_thing(), работающую со всеми типами. Внутри нее получится:
if type1:
do_thing_for_type1
elif type2:
do_thing_for_type2
elif type3:
...
Верно понимаю? Или динамическая типизация дает возможность это как-то упростить?
Делай как в туторе для джанги написано, в для каждого приложения в проекте своя папка templates и static в ней специфичные шаблоны и статика, плюс общая на весь проект для общих шаблонов и общих файлов статики.
Недавно я нашел одну интересную пасту http://pastebin.ru/bfamtIJ1,
прочитал и до меня дошло, что я учусь в технаре разной хуйне и надо брать все в свои руки.
Годна-ли паста? Сейчас я просто хочу выучить Питон до конца лета, смогу-ли, анон?
Еще хочу, если это можно на Питоне, написать простой платформер-бродилку. Смогу?
Сам язык нравится, хоть я ничего и не видел другого, кроме паскаля да делфи.
Разделение пробелами каждого блока - вообще замечательно, после помощи тупым одногруппникам, которые пошли на профессию чтобы откосить\проебать четыре года, и которые вообще забивали на какое-то разделение.
И еще анон, подкинешь годных уроков, практики?
Смогу же я за лето хотя бы что-то?
Во-первых линк пасты сломан, спасибо запятой.
Во-вторых что ты подразумеваешь под выучить Питон? Научиться на нём писать базовые скрипты и програмки? Легко. Научиться строить многоуровневые приложения с разными сложными задачами - вряд ли.
>Еще хочу, если это можно на Питоне, написать простой платформер-бродилку. Смогу?
Можно, но нахуя? Есть Unity2D, например, зачем для этого страдать хуйнёй на питоне?
>Смогу же я за лето хотя бы что-то?
Зависит от тебя. Только помни что в большинстве своём увы в головах работодателей Питон это либо Скрипты либо Веб.
Бумп. Поясните перекатившемуся со статики как у вас принято.
Не особо силён в этом, но если ты хочешь заменить хуйню уровня elif type1 и так далее. То можно запихнуть всё это в словарь. типа {"type1": do_thing_for_type1} и проверять через if.
Coursera - Introduction to Interactive Programming in Python
Надеялся думал ты умер. Охуеть, дифф двух последних коммитов мне чуть браузер не повесил.
И pycache вылей штоле.
Как из f() получить v? Только передачей аргумента внутри декоратора, f(v)? Больше никак?
Имеется файл netstat.txt В файле записаны результаты команды netstat в cmd. Например:
Активные подключения
Имя Локальный адрес Внешний адрес Состояние
TCP 192.168.0.103:1658 lb-in-f188:5228 ESTABLISHED
TCP 192.168.0.103:2017 149.154.167.51:https ESTABLISHED
TCP 192.168.0.103:1658 lb-in-f188:5228 ESTABLISHED
TCP 192.168.0.103:2026 bud02s21-in-f3:https ESTABLISHED
Количество строк не известо.
Нужно отсортировать данные из колонки "Внешний адрес". Сгруппировать повторения, расписать порты (вместо "https" написать "https порт:443).
level Nightmare!: каким-то образом отсортировать DNS сервера.
Вывод должен быть примерно такой:
Активные подключения
Адрес: lb-in-f188 \t\t\tпорт: 5228
Адрес: lb-in-f188 \t\t\tпорт: 5228
Адрес: 149.154.167.51 \t\tпорт: 443 (https)
Адрес: bud02s21-in-f3(DNS) \tпорт: 443 (https)
Покачто я считал файл в список
l=[]
f = codecs.open('netstat.txt', 'r', 'cp866')
for line in f:
\t l = f.read().splitlines()
\t
Что мне следует предпринять дальше?
Имеется файл netstat.txt В файле записаны результаты команды netstat в cmd. Например:
Активные подключения
Имя Локальный адрес Внешний адрес Состояние
TCP 192.168.0.103:1658 lb-in-f188:5228 ESTABLISHED
TCP 192.168.0.103:2017 149.154.167.51:https ESTABLISHED
TCP 192.168.0.103:1658 lb-in-f188:5228 ESTABLISHED
TCP 192.168.0.103:2026 bud02s21-in-f3:https ESTABLISHED
Количество строк не известо.
Нужно отсортировать данные из колонки "Внешний адрес". Сгруппировать повторения, расписать порты (вместо "https" написать "https порт:443).
level Nightmare!: каким-то образом отсортировать DNS сервера.
Вывод должен быть примерно такой:
Активные подключения
Адрес: lb-in-f188 \t\t\tпорт: 5228
Адрес: lb-in-f188 \t\t\tпорт: 5228
Адрес: 149.154.167.51 \t\tпорт: 443 (https)
Адрес: bud02s21-in-f3(DNS) \tпорт: 443 (https)
Покачто я считал файл в список
l=[]
f = codecs.open('netstat.txt', 'r', 'cp866')
for line in f:
\t l = f.read().splitlines()
\t
Что мне следует предпринять дальше?
>Что мне следует предпринять дальше?
1. Выдернуть колонку внешний адрес (например разбив считанные данные по пробелам и переносам и взяв каждую третью из получившихся строк).
2. Написать функцию, которая для двух адресов возвращает какой из них "меньше" (или как там предикаты в питоне работают), скормить ее и адреса стандартной сортировке.
3. Написать функцию, которая берет строку адрес:порт и возвращает строку, которая нужна тебе, скормить отсортированные адреса ей.
Сам нагуглил. Никак.
БД коммитить это пидорство какое то, тебе даны миграции которые её мигом восстановят если что, а для заполнения тестовыми данными скрипт зафиксируй.
>Покачто я считал файл в список
У тебя же файл в виде csv таблицы, вот и читай его так, будет проще обрабатывать.
Суть такова: работаю на слабеньком нетбуке под виндой, спайдр загружается 5 минут, виснет, забивает всю оперативу.
Хочу что-то самое легкое и элементарное, хотя бы с маркерами, потому что в блокноте надоело писать.
пайчарм не подойдёт? А вообще можешь питонизировать сублайм какой-нибудь, если уж совсем очень лёгкое что-нибудь нужно.
PyCharm с его дырой из джавы это просто блять самоё ахуенное что можно посоветовать слабому ноуту. У него такой лик в памяти что через 20-30 минут работы ты нахуй медленнее черепахи.
С чего бы там только последние 6 значения то хранят? Там весь массив проверять надо будет.
Охлол, там не менее. Я думал не более. В глаза ебусь. Ну тогда два минимальных нечетных значения давностью >6, плюс 6 последних, весь массив все равно проверять не надо.
В смысле, проверять-то надо, хранить - нет.
Парни, если мне необходимо сделать програмульку что-то вроде журнала, там окошки всякие, поля и прочее мне нужно в tkinter'e это все делать? Как я понял, там нужно что-то вроде хмтл прописывать размер окон, возможно расположение и прочей хуйни? Есть ли варик как в вижуал студио таскать окошки? Вообще питону под силу решить массу задач или нет? Почитал книгу лутца там всякие задачки порешал с массивами, строками, это конечно здорово, но хуле делать дальше.
читать программируем с лутцем
Да, блять, под силу. Дальше бери и делай что-нибудь рабочее - игру, вебсайт, да хоть калькулятор, похуй что.
Насчет вариков - тут посмотри: https://wiki.python.org/moin/GuiProgramming
Джини - гут, спс.
Это копия, сохраненная 2 июля 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.