Это копия, сохраненная 25 августа 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Переписать огромный проект (который мне нахуй не уперся) на третий потом бегать с разорванным анусом? Чот я ебал.
>>> urllib.urlopen('https://ru.wikipedia.org/wiki/' + urllib.quote('Тегеран')).read()
Даже во втором работает. Ты даун какой-то.
На, запроси погоду http://api.openweathermap.org/data/2.5/weather?q=%D0%B5%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B1%D1%83%D1%80%D0%B3&units=metric
Модуль распознавание речи отдает мне юникод \u0435\u043a\u0430\u0442\u0435\u0440\u0438\u043d\u0431\u0443\u0440\u0433
В оформлении кода.
Тогда это все объясняет.
Т.е., существует текст вида:
123456
7890
123456
7890
3456
234
Положим, что 234 - искомый ключ, 3456 - строка, которую надо обработать.
Сейчас реализую эту задачу через
list = file.read()
list.split("\n")
Дальше нахожу строку n "234" и возвращаюсь по списку на строку list[n-1] и после этого ее обрабатываю.
Очевидно, что помещать весь файл в list неразумно. Как можно обойтись без списка?
Используй deque ограниченной длины и добавляй в него очередную строку.
Допустим, мне нужно создать некое древо элементов, где у родителя есть пара детей, а у них потом ещё. Как правильно сделать возможность добраться от ребёнка к родителю? В голову приходит два способа:
1. Хранить ссылку на объект родителя
2. Хранить идентификатор этого родителя, и иметь в самом-самом высшем элементе-боге методы для получения нужного объекта по его идентификатору?
Т.е.
class Parent <…>
class Child(object):
def __init__(self, parent):
self.parent = parent
print(child.parent)
или
class SuperParent(object):
def __init__(self):
self.first_generation = {}
def find_parent(self, search_id):
for id in self.first_generation:
if id == search_id: return self.first_generation[id]
class Parent <…>
class Child(object):
def __init__(self, parent_id)
self.parent_id
print(super_parent.find_parent(child.parent_id))
Я понимаю, что перебор каждый раз это довольно затратно, если часто делается, но меня смущают эти замкнутые (цикличые, круговые?) референсы родителя к ребёнку, как вообще к этому относятся?
Допустим, мне нужно создать некое древо элементов, где у родителя есть пара детей, а у них потом ещё. Как правильно сделать возможность добраться от ребёнка к родителю? В голову приходит два способа:
1. Хранить ссылку на объект родителя
2. Хранить идентификатор этого родителя, и иметь в самом-самом высшем элементе-боге методы для получения нужного объекта по его идентификатору?
Т.е.
class Parent <…>
class Child(object):
def __init__(self, parent):
self.parent = parent
print(child.parent)
или
class SuperParent(object):
def __init__(self):
self.first_generation = {}
def find_parent(self, search_id):
for id in self.first_generation:
if id == search_id: return self.first_generation[id]
class Parent <…>
class Child(object):
def __init__(self, parent_id)
self.parent_id
print(super_parent.find_parent(child.parent_id))
Я понимаю, что перебор каждый раз это довольно затратно, если часто делается, но меня смущают эти замкнутые (цикличые, круговые?) референсы родителя к ребёнку, как вообще к этому относятся?
Лол, я тут немного обосрался. В общем, функцию find_parent заменить на что-то вроде:
def find_second_generation(self, id):
for child in self.first_generation.values():
if id in child.children: return child.children[id]
>Как правильно сделать возможность добраться от ребёнка к родителю
так вроде для этого super есть
Так это вызов суперкласса, а объекты друг от друга ничего не наследуют, просто связаны друг с другом должны быть, как граф — древесная топология, в общем. Откуда ж ему там знать, что этот объект в каком-то там словаре другого объекта находится.
Возможно, родитель и ребёнок не лучший выбор слов был.
Целиком пролистал.
Задание вступительное на Codewars:
The code does not execute properly. Try to figure out why.
def multiply(a, b):
a * b
Что тут делать надо?
Видимо, функция должна считывать два полученных параметра и перемножать их. Словарь, наверное, нужен.
Нету return?
Никакой это не намек, тебе прямым текстом сказали что ты спермохлеб, и сейчас страдаешь из-за своих спермопроблем
Максимально доступно - ты даже не представляешь как наебешься пытаясь запустить все на венде. И не только питон и его фреймворки. Возьми копеечный впс с линуксами и будь белым человеком.
При этом питон, кстати, еще более-менее юзабелен на венде. В отличи от всяких.
Умею выводить на экран "Hello World" посредством print.
Впс дальновидней и удобней, и не только для хостинга велосипедов. Универсальность жи. Но если мамка не дает можно и виртуалочку на локалхосте.
Книгу жопой читал, зеленый? После нее ты должен свою имиджборду написать, а ты только принт умеешь.
> жопой читал
Похоже что так, раз я мог бы имиджборду написать, но мне кажется ты сам зеленый.
Не, войсачи всякие я не хочу на питоне писать, а с вставками на няшной это другой разговор, но в общем в рот ебал
Почему?
Можешь задачки на checkio порешать, а можешь сразу изучать фреймворки/библиотеки в зависимости от области в которой хочешь развиваться.
Ну какбы бля, обычно читают и сразу практикуют. Переписывают на свой лад код из учебников, решают задачи если есть, чешут что-то свое, изобретают ненужные велосипеды. А ты что делал?
Ну а хули, каков вопрос, таков ответ.
Спасибо.
page=parse('http://habrahabr.ru/').getroot()
hrefs=page.cssselect("a.post_title")
for row in hrefs:
print(row.get("href"))
Как по такому же алгоритму вытащить названия статей? Они вроде не привязаны к ксс-селкторам, поэтому не совсем понимаю, как к ним обращаться.
Я уже пробовал и суп и граб, хочется же таки понять, как в lxml это делается.
А нет, заработало. Спасибо!
Double
Лайкнул тебя.
В 1С.
Ну не может же быть все заебись, может я где-то что-то неправильно делаю?
Красивенько.
Для какого-то обоссанного граббера жирнючий куте тащить? Ты бы еще на жабе написал, пиздос.
Граберу этому вообще гуй не нужен.
Если уж на то пошло то он вообще не нужен, потому что эти картинки можно wget`ом или чем угодно утянуть.
GTK3 же, через pygobject
> И что значит "гуй руками"?
В gtk можно нарисовать формочки в glade, сохранить их в xml и потом подгружать в коде, впесто того чтобы генерить все контролы из кода.
В qt вроде тоже так.
Ты чо ебанутый, это и есть трансляция xmk'ки отданной qt designer'ом. Можно было и ее загрузить, но мне так не нравится.
Аргументируй плюсы использования хмлки вместо кода, или иди нахуй. Алсо, его тоже можно отдельным модулем подгрузить, но так редактировать проще, чем шариться в ебучей хмлке.
А теперь представь как ты делаешь гуй чуть сложнее хелло-ворлда и как ты обосрался.
Что будет когда ты захочешь изменить этот гуй? В случае xmlки ты просто её изменишь. А если ты используешь генерацию кода придется генерировать код заново и как-то мерджить с уже написанным тобой. Это гемор, особенно на более сложных проектах.
> чем шариться в ебучей хмлке.
Нахуя в ней руками шариться если можно в редактировать в этом же qt designere?
Вынесу все в модули и импортирую где нужно. Так же как ты будешь грузить свои хмлки.
>>520446
>Что будет когда ты захочешь изменить этот гуй?
Изменю этот гуй. Я могу вообще без дизайнера все это ручками собрать, нихуя там сложного нет. В общем, никаких проблем не вижу. И если бы это был не одноформочный дампер, я бы сделал по-другому, но конкретно в этом случае не имеет смысла.
>>520450
Вся суть гтк-дебилов
Т.е. тру именно использовать .ui файлы? Это же мышкодрочерство, разве для учебы не стоит разобраться как все это изнутри работает? Как генерируется код, как к чему обращаться?
Да, тру. Но и как генерируются код ты знать должен конечно.
Часто в реальных проектах совмещаются оба подхода. Например часть элементов однотипная и её удобно генерировать в коде, в цикле. Но это всё внутри окошка, менюшек и прочего которые в ui файле сохранены.
Да ещё эти ui файлы удобны для локализации на разные языки, например.
Никто не пишет комменты на русском.
Я ж мамкин корзинка, а тут столько внимания сразу.
Если серьезно, то на говнокоде я пролистал первые 3 страницы и не нашел питона.
Да и хотел в общем то небольшие проекты, но что бы понимать суть работы (их) и при этом не перенять чужих ошибок
Учи английский, заебал. В хорошем коде коментов на русском ты не найдешь.
Читай всякие туториалы. Поскольку тебе надо на русском, то на хабре. Там их полно.
Пишу проект для работы, нужна мелкая помощь. Есть 3 вида активного сетевого оборудования, подключаюсь по телнету к ним и сохраняю ответ в файл(10.x.x.x.txt, ~20-400кб), получается около 1000 таких файлов, а их еще парсить надо. Может быть кто-то подскажет как сделать более проще?
Подключайся по телнету из питона https://docs.python.org/2/library/telnetlib.html и парсь по ходу чтения по сети.
Но вообще я не думаю что на современном компьютере проблема это всё распарсить, ты преждевременной оптимизацией занимаешься.
Что можно почитать по классам и ООП?
А в чём, собственно, проблема-то?
Бампану, что ли. (Классы не наследуют друг от друга ничего. Древовидная топология имеется в виду.)
Во первых почему вместо
for id in self.first_generation:
if id == search_id: return self.first_generation[id]
не просто
return self.first_generation.get(search_id,None)
В чем смысл?
Насчет референсов смотри модуль https://docs.python.org/2/library/weakref.html
Хотя я не понимаю в чем проблема вообще
Я там в следующем посте (>>520087) подправил. Имелся в виду поиск внуков
>>520556
>2
Спасибо, гляну. Ну проблема просто может возникнуть, если там удалять чего нужно будет, наверняка где-то что-то не так пойдёт, если родителя удалю, а ребёнок ссылку на него до сих пор держит, но ни до ребёнка, ни до родителя я ведь добраться уже не смогу. Это же только во всяких там с и жавах gc нормально с этим борется, насколько я знаю.
Если хочешь использовать ~ в пути тебе надо os.path.expanduser('~/Path') сначала сделать.
Чтобы файлы в одном каталоге перебрать os.listdir есть
Чтобы во всех подкаталогах тоже - os.walk да
Или map(os.path.abspath,map(str.strip,os.popen('find Pictures/frog/').readlines()))
У меня один из параметров скрипта - каталог с файлами. python script.py --path ~/Pictures/2ch
Как сделать лучше?
Если делать так
for d, dirs, files in os.walk(os.getcwd()):
for f in files:
print (os.path.abspath(f))
то все вложенные каталоги не отображаются, то есть файлы из 2ch/gif не выводит на stdout
Почему os.getcwd() если путь ты параметром педелаешь? Ты os.chdir сначала делаешь?
Надо так
for d, dirs, files in os.walk(os.getcwd()):
for f in files:
print (os.path.abspath(os.path.join(d,f)))
Нафиг вам литература? Делаешь что-нить, почитывая документацию и гугля проблемы на stackoverflow
Нужна книга и на русском. И чтоб разжевали и с заданиями и с ответами. И с питоном 2 обязательно, чтоб говно понаваристей получилось.
getcwd() возвращает путь к текущей рабочей папке. Это если бы ты просто из "/home/vasya/python/" запускал скрипт, то этой командой получил бы этот самый путь. А так как ты уже в аргументах абсолютный передаёшь, то getcwd() тебе не нужно.
А. ну да, ты прав. Спасибо.
Бля, ты сделал меня стыдиться своего быкования. Иди нахуй.
В хуйщах
https://docs.python.org/3.4/library/os.html?highlight=getcwd#os.getcwd
>Return a string representing the current working directory.
>directory
https://translate.google.com/#en/ru/directory
Видишь там мамку свою, пиздоглазый?
Да но в гуях в том же thunar или nautilus все команды типа "create folder"
Гуй делают для даунов-аутистов, у которых палец к мышке прилип.
А у нас тут каждый первый - гениальный йоба-программист с зарплатой по 100к. Кто нас учил "папка" говорить? Правильно говорить надо.
Во втором питоне есть cgi.parse_multipart(), а в третьем она не работает, при этом появилась ебля с байтами, постоянно нужно декодировать и кодировать данные. Или я копаю совсем не в ту сторону и есть изящные способы в третьем питоне?
Когда это было? Сразу после истории про еблю твоей мамаши?
но это же стандартная библиотека cgi, даже не фреймворк. Неужели нет простого способа получить значение из формы?
[code]
#! usr/bin/python3.4
import imp
from migrate.versioning import api
from app import db
from config import SQLALCHEMY_DATABASE_URI
from config import SQLALCHEMY_MIGRATE_REPO
migration = SQLALCHEMY_MIGRATE_REPO + '/versions/%03d_migration.py' % (api.db_version(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO) + 1)
tmp_module = imp.new_module('old_model')
old_model = api.create_model(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO)
exec(old_model in tmp_module.__dict__)
script = api.make_update_script_for_model(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO, tmp_module.meta, db.metadata)
open(migration, "wt").write(script)
api.upgrade(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO)
print('New migration saved as ' + migration)
print('Current database version: ' + str(api.db_version(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO)))
[/code]
SQLALCHEMY_DATABASE_URI и SQLALCHEMY_MIGRATE_REPO - это путь к файлу с базой данных и папка, где будут храниться файлы SQLAlchemy-migrate. В оригинале речь идёт о втором питоне и более ранних версиях фласка и алхимии ( http://habrahabr.ru/post/196810/ ), я по ходу действия адаптирую к третьему питону и современным версиям всего остального.
Конкретно в этом примере проблема с [code]tmp_module.meta[/code], Консолька говорит, что у модуля такого атрибута не бывает. Подскажите, пожалуйста, как получить эти данные [code]tmp_module.meta[/code] и [code]db.metadata[/code], которая идёт следующим аргументом. Подозреваю, с ней будет такая же проблема. Или как создать аналогичный скрипт миграции кроме метода api.make_update_script_for_model. Вечер гугления результатов не дал.
Эммм, с разметкой проебал, каюсь.
В третьем питоне даже cgi.FieldStorage() не пашет. Пиздец.
А тут я не в курсе, сорри. Никогда cgi не изпользовал в py. Попробуй гуглить.
Спроси в development на linux.org.ru там шарят лучше чем в этом чате
Я нашел точно такую же проблему на stackoverflow, но никто ничего не ответил. В общем не советую проходить курс fullstack foundations на udacity, если вы используете python 3. Там еще зачем то перед фреймворком flask идет BaseHTTPRequestHandler. Пойду лучше сразу flask изучать.
http://www.codeskulptor.org/#user40_R7GcPdwI3Z_0.py
Эквивалентный код на плюсах возвращает всё как надо.
ps: используй while b!=0 в функции.
Пофиксил http://www.codeskulptor.org/#user40_R7GcPdwI3Z_1.py
Я знаю как сделать это через цикл, вопрос почему питон не может в первый вариант, мб есть какие-то нюансы?
Я как-то воспроизводил решение задачи о Ханойской башне и всё норм работало, а тут я долго думал чому я у мамы долбоёб.
Добра!
Я еще не начал читать про фласк, но ты можешь просто сравнить свой код с кодом http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-now-with-python-3-support. Автор обновил статьи чтобы они работали с питоном 3 и последним фласком, а перевод так и не обновили. Заодно можешь прочитать целую книгу от него.
Благословенны пути твои, о мужик! Я, правда, сравнивал ранее, но не находил необъяснимых отличий, несмотря на всю внимательность. Оказалось, что метод тупого копипаста помог запустить скрипт.
Чудеса.
ты каким редактором кода пользуешься?
Проблема скрывалась в функции exec() для второго было
exec old_model in tmp_module.__dict__
в то время как для третьего -
exec(old_model, tmp_module.__dict__)
Казалось бы очевидно, но я почему-то себя убедил, что проблему нужно искать либо в методе api.create_model, либо в api.make_update_script_for_model, вот и проглядел.
Зато теперь примерно понимаю, как они работают.
Так а почему именно ты не можешь получить текст? self.rfile.read(length) что возвращает? Зачем там urllib.parse_qs (что за cgi и чего там эта форма твоя возвращает я не в курсе, поэтому просто спрашиваю)?
>При вводе кириллицы выдает ошибку
Чинится легко — сделай глобальную переменную ВКЛЮЧИТЬ_РУССКИЙ = True. Пиши что за ошибка, черт возьми. Если про юникод, значит нужно u'русский текст'.encode('utf-8')
>Если про юникод, значит нужно u'русский текст'.encode('utf-8')
А если вот так блеять?
7 англ спермерочка если что.
ньюфаг который уже ныл про это ранее
У меня винда 8 и пичарм, если я просто напишу что нибудь на русском, то у меня это отобразится. Странно что у тебя байты даже не отображаются. Не старый амд случаем?
и имеется в виду ATI
Voobshe ohyet
sshfs/git/nfs. Только ни то, ни другое этого не умеет, азазаз.
opencv или simplecv работает с питоном 3.4 на сперме?
UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-2: character maps to <undefined>
в интернетах чтото про нее кукарекают, а как решить не говорят
Это я видел. Похоже придется джейсоном брать каталог и самому по нему искать.
Нет, это питон.
Самый свежий и не надо мне, 3.(4/5) хватит.
Желательно чтобы на русском или на еази ангельском.
но по сути на английском читать больше времени займет у меня, т.к. интерпретация на русский + перевод терминов еще.
>F.A.Q.
>В: Хочу стать программистом, какой язык учить?
>О: Английский + Ruby/Python
От английского ты никуда не денешься. Чем раньше начнешь свободно читать документацию тем лучше. А без практики ты никогда не начнешь.
Иди читай, блять.
О каких терминах всегда все говорят, когда заходит речь о документации на английском? Почти всё то, что там упоминается, ты так или иначе уже всё равно английскими словами называл, а если чего и нет, то это самые обычные слова, просто в другом контексте применяются. Не философию какую-нибудь читаешь же.
>>521247
Ok.
С синтаксисом и багамифичами питона нужно ознакомиться, а так был опыт кое-какой с пхп, из нормальных фреймворков заметил только Laravel, уровень организации разработки почти как у джанги/фласка, но нахуй этот весь пхп. После беглого ознакомления с фласком, предел мечтаний пхпшника - ларавел, показался зашкваром.
Понравилось как просто можно на питон фреймворках намордник нацепить, хуяк-хуяк и готово.
Ладно, пойду изучать глубже.
Мы использовать только этот тред, не использовать IRC, наш IRC - это этот тред.
А та которая 0.5 девственница - это анальная девственность? Или кусок девственницы?
Это 0.5 девственницы, вдоль или поперек, как пожелаете.
Всё равно придется всё на англельском читать. Если ты по самому питону книжку ещё допустим найдешь, то ко всяким библиотекам и прочему доки только на ангельском.
нихуя же непонятно с этими вашими calendar, datetime, time в утро понедельника.
ТЫ бы спал хоть иногда.
import datetime
d=datetime.datetime(2015,7,26,15,15)
metki = ['10:15', '33:11']
dates = []
for m in metki: dates.append(d+datetime.timedelta(seconds=int(m.split(':')[0])*60+int(m.split(':')[1]))
дальше dates переведешь в unix
>перевести в unixepoch если точкой отсчёта брать вчера в 15:15?
Чего несешь? Unixtime/unixepoch - количество секунд прошедших с 1 января 1970. Вся суть в этой точке отсчета, а ты ее заменить хочешь.
несём чемодан. артём хочет таймстепы вчерашнего воскресенья с 15:15 +мм:cc
Flask для пацанов, Django для понтов.
Если планируешь на этом зарабатывать, то только джанго - на фласк вакансий оочень мало.
Да, заметил такую тенденцию на рынке с джанго.
Планирую использовать в личных целях.
Какие недостатки имеет фласк, по сравнению с джанго, которые нельзя исправить модулями?
Раньше писали то что у фласка небыло админки, но сейчас есть https://flask-admin.readthedocs.org/en/latest/
Фласк мне понравился низким порогом вхождения.
> низким порогом вхождения.
Я так понимаю flask использует sqlalchemy, это очень сложная и навороченная библиотека, мощная конечно, но. ORM django намного проще в освоении и умеет делать то, что достаточно для большинства проектов.
Спасибо. Буду пробовать.
нет
1) Есть модуль globals.py там я храню целочисленную переменную-счётчик foo.
2) Модуль bar.py туда считает.
3) Модуль baz.py должен в свою очередь от туда брать значение счётчика и предпринимать определённые действия.
НО) Когда я в baz.py импортирую globals.py получаю в качестве значения foo то, что в globals.py записано по дефолту, а не то что я выставлял в bar.py для foo.
Почему так получается и как белые люди делают глобальные переменные, которые можно менять из любого модуля?
Вообще такие книжки не нужны. Используют доки и мозги.
Да хуй знает, не затруднит привести примеры? Да и вроде как альтернативы есть.
При каждом новом импорте будет браться дефолтное значение, промежуточные результаты работы скриптов сами собой никуда не сохраняются. Тебе нужно их куда-то записывать, в зависимости от масштабности задачи это могут быть либо текстовые файлы, либо базы данных, либо в оперативку (мемкеш). Есть модули для экспорта переменных в файлы, но не помню как называются, можешь погуглить, или тут кто напомнит.
Пример сайта: http://www.shrm.org/
http://apps.shrm.org/www/MemDir/memberdetails.asp?id=YO4T2O7X - в самом низу надпись( у вас осталось 9 просмотров), затем F5*10 и появляется надпись вы исчерпали свой лимит. Как я могу обойти эту хуйню и просмотреть все интересующие меня профили?
this
Не зарегистрирован потому что.
От черт, опять сегу забыл снять.
Начни с туториал, а так - да, там всё разжевано.
Ещё советую http://pymotw.com/2/contents.html
Оказалось. Что если разметка в верстке не имеет атрибут text к тексту, то текст нужно искать не через атрибут.
То есть обычно делают так, когда работают с циклом
print i.get_attribute('"text")
но если атрибута в разметке нет, то надо так
print i.text
Рекомендую на ютубе посмотреть обучающие ролики. Сразу видно какие инструменты используют в работе, как программы запускают и прочее.
А меня дебилы с красивым мылом. У русских кодеров - это прямо болезнь какая-то.
А как это взаимосвязано?
Я про парсер beatiful soap. В рунете много с ним туторилов и русские кодеры начинают с него. В то время, как парсеры давно уже используют вместо него scrapy или похожий инструмент от русского разработчика grab:spider
Пишу на 2.7 Со всеми задачами справляется прекрасно. Знаю третий, но практически его не использую, пока не нужно. Язык начал изучать сравнительно недавно и сознательно выбрал изучение второй версии. И не прогадал.
>Язык начал изучать сравнительно недавно и сознательно выбрал изучение второй версии. И не прогадал.
Проиграл. Ты в курсе что через 4 года вторая ветка - все?
Ой, я прям разрыдался! Если вторую версию знаешь, третью за час можно освоить. Есть специальные доки на эту тему.
Там осваивать нечего, осваиватель ебаный. Проблема в переводе легаси-говна. Ты сам себе создаешь двойную работу.
Да никто этот говноспайдер и скрапи уже не используют. Есть такой-то aiohttp и beautiful soup. Не знаю где ты там мыло увидел.
Эй потише тут! Распоясался король холма.
ага, рассказывай сказки
Не похуй ли, кто там чего использует? Или вы в погоне за модой только модули и выбираете? Справляется с задачей быстро, правильно и удобно — норм. Вот чего такого в спайдере или скрапи нет, что есть в аиохттп или беаутифул супе, что прям нужно говном поливать пользователей первых двух?
Есть вот такая корявая конструкция, не по петоновски совсем. Да и работает она не так как мне хочется, не понимаю я петоновского and
if (([start, start + 1] and [start + 1, start + 2] and [start + 2, start + 6] and
[start + 6, start + 10] and [start + 9, start + 10] and [start + 8, start + 9] and
[start + 4, start + 8] and [start, start + 4]) in table):
Проще говоря, нужно проверить есть ли конкретные графы в матрице, причем есть ли они все
Не совсем понял, но что меняет вынести это в функцию, передать ей лист аргументов, а в ней пройтись циклом?
Проще говоря нужен питоновский спобоб проверки наличия нескольких елементов списка.
Как впринципе реализовать я знаю, хочу узнать как это сделать по питоновски
http://pastebin.com/uXGWQgCT
Решил не переписывать имеющееся говно, ибо и так работает, зато когда начал писать новый парсер -- сделал по новой технологии. Чекните, стало ли лучше.
Я делал когда-то игру карточную и все данные хранил прямо в коде. Нафига тут бд вообще? На случай перезапуска сервера можешь сохранять их через pickle
Правда я использовал twisted вместо tornado но это одна фигня.
Тем более как ты к монге обращаешся? Асинхронно? Тогда это пиздец усложняет код. Синхронно? Тогда твоя игра будет поддерживать очень мало игроков и всё будет тормозить.
Асинхронный код сможет и в одном потоке держать дофига игроков, если ты туда не напихаешь синхнонных обращений к файлам/сети конечно или каких-то адских вычислений(которых в просто игре нет).
Если у тебя будет очень-очень много игроков ты можешь иметь несколько изолированных истансов друг от друга и играков по ним разбрасывать. Тебе же по сути главное чтобы игроки которые "за одним столом" висели на одном сервере вот и всё.
Красиво обосновал. Добра тебе, бро
В приложении будут фотографии текстуры в реальном мире, её описание и фото её рендера. Смущает что для каждого просмотра текстуры придётся джойны делать. В общем прошу совета.
Я так понимаю для одной текстуры может быть много рендеров и фото?
Тогда всё правильно.
В моделяъ Render и Photo прописываешь texture = models.ForeignKey(blabla
В джоинах ничего плохого нет, это реляционная модель данных, тут они и должны быть.
Если хочешь это немного оптимизировать то глянь на http://django-cachalot.readthedocs.org/en/latest/ правда на уровне БД запросы тоже по-идее кэшируются.
Причем тут питон?
Этого достаточно, чтобы показать на собеседовании, что я не совсем ноль? При условии, что клиент будет дописан до адекватного состояни. Опыта нету, на собеседования не ходил.
С джангой так можно? Какие подводные камни? Решето через пару лет?
А зачем таскать все либы туда сюда? Можно написать скрипт в 2 строчки, который будет создавать тебе виртуальное окружение и устанавливать нужные либы в него. Ну или докер, например.
Накидал, проверяй.
Можно всё сложить прямо в папку с проектом.(или любую другую и прописать её в pythonpath)
Но лучше использовать
1)virtualenv
2)pip с requirments.txt
Или какой-нить docker
А насчет решета - надо привязываться к конкретным версиям библиотек всё равно потому что более новые могут быть несовместимы с твоим проектом.
И переходить на новые версии ручками следя чтобы ничего не сломалось.
скрапи — пифон 2.7
граб — multicurl
В 2015 в пифоне уже есть свой луп и своя асинхронность, которые нативны. Нет причины ковырять это древнее говно с пачкой архаичных зависимостей.
https://www.udemy.com/coding-for-entrepreneurs/
Там, походу, версия 2,7, но курс выглядит очень крутым.
Я хочу чтобы мне линтило и гонялись какие-нибудь тесты. До написания тестов я пока еще не дошел, а вот линтинг нужен.
В емаксе у меня линтер стоит, но хотелось бы еще чтобы был какой-нибудь общий запуск (думаю, на пре-коммит хук повесить), только не придумал пока удобного способа показа. Хотел бы какой-нибудь чарт и удобные нотификации.
Да и вообще линтеры какая-то хуйня, там проверки уровня детского сада. Мне б хотя бы как в Pycharm там тоже хуйня, но лучше нет.
А если у тебя ебнется в рантайме с каким-нибудь not iterable или not defined? Банальные проверки же лучше иметь, особенно когда разные куски пишешь.
Ну ебнется так ебнется, поправим. Когда проект не очень большой я больше времени проебываю обмазывая его всякими юнит-тестами, чем собственно за проектом. Нахуй так надо?
Если ты так любишь линт, то сделай его проверку on save с подсветкой проблемных строк. Тоже самое с pep8. Для тестов используй травис + nose + coveralls и прочие приблуды по желанию. Документацию можно на sphinx, ибо readthedocs. Но можно и ручками её писать, а не генерировать из кода.
pygtk iz deprecated, use pygobject.
>проверку on save
в редакторе или каким-нибудь грантом? Я вот не очень прямо горю желанием, чтобы он постоянно строки подсвечивал, а то глаз замыливается. Поэтому хотелось бы чтобы он просто показывал новые или что-нибудь в таком духе.
>>522383
Ну это такие вещи, которые один раз стоит, наверное, настроить. Я уже напоролся разок на том, что хуярил код без оглядки. Через два месяца я уже боялся вносить фиксы, так как все падало и крешилось от любого чиха. Такой-то я быдлокодер. Но там было без фреймворков, я сам все писал (в том числе и врапперы для апиев всяких), особенно не обдумывая код.
Что лучше и проще в освоении для дилетанта?(с бывшим опытом пхп чуток)
(хочу использовать для себя если что)
Джанга сильно запилена на модели и реляционные базы данных. Фласк это собери всё сам, чуть красивее но провоцирует на велосипеды.
В смысле "замыливался"? Он подсветил, ты исправил и больше они не подсвечиваются.
Это какие такие охуенно редкие либы тебе нужны? Если что-то есть под 2, но нет под 3, значит нахуй никому уже не нужно 10 лет как.
>http://habrahabr.ru/post/85459/ на погляди
годно!
На стакоферфлове мне посоветовали set(list1) >= set(list2)
всетаки годная штука этот ваш питон
> проверки наличия нескольких елементов списка.
l = ['a', 'b', 'c', 'd']
tocheck = ['a', 'c']
if all(el in l for el in tocheck): print 'both are in list'
новые фичибаги
поддержку второго скоро прекратят, да и нахуй тебе надо, использовать устаревшее говно?
Мужик, бери второй, базарю. Тройка никогда никому не была нужна, это всё происки Гниды.
Тролли. Это мемчик типа "install gentoo".
irl никто третий конечно не использует, так что нуб придя на собеседование со своим третьим будет в неловком положении.
> скоро
Ага всего лишь через 5 лет и то не факт что её не продлят потому что даже тогда будет ещё куча легаси кода.
Чтобы в примере с пика переменная b ссылалась бы не на 1 как экземпляр класса int, а на само поле класса a.a и при изменении b менялось бы и значение поля а.а?
Начал изучать питон, вроде язык нормальный, но у него между версиями какой-то неистовый пиздец с кодировками. В 2.7 одно в 3.4 уже не запускается. В windows и linux версиях ладно страдают, но на одной ОС, не понятно. Попытался запустить на Linux x64 и Linux x86, Mac x64 разных версиях питона все по-разному работает. Может у меня руки из жопы или тут действительно разница большая? Есть ли какие рекомендации? Попробовал в строках прибавлять всегда __str__() чтобы наверняка, открылись проблемы с либами, некоторые либы могут иметь разные параметры. Вокруг одно сплошное наебалово.
Ясненько.
Не такая уж она и большая чтобы так из-за этого переживать как в этом треде.
Да и можно писать код который будет работать и там и там.
>Да и можно писать код который будет работать и там и там.
Это когда "from __future__ import huita"?
>>522666
Если бы я хотел перечитать документацию ещё раз или прочитать ветку форума с рассуждениями про то, что неизменяемы и изменяемые типы данных ведут себя по разному я бы это и сделал изначально.
Может перестанете отбирать хлеб у поисковых ботов и опишете конкретное решение конкретной задачи вместо выдачи относительно релевантных ссылок? Если вы разумные люди, конечно.
А какой второй?
Разумные люди не будут спрашивать то, что легко гуглится.
Разумные люди не будут разжевывать такому заносчивому мудаку как ты.
Тоесть ты сюда заходишь, чтобы поработать ботам гугла, тупо выдавая ссылки по похожим словам, и нахамить кому-то когда тот попросит вменяемого ответа на вопрос?
Сейчас читаю LPTHW, сам главный принцип (перепечатывать с экрана 1:1) мне не очень нравится, но подход к обучению правильный, а то в универских методичках обычно "вот отвертка, вот гайка, задание 1 собери синхрофазотрон до среды".
Хелловорлды всякие умею и сейчас вкуриваю в основы ооп, так что не за горами интермедиат, но против азов в учебнике не возражаю, будет быстрая справка по синтаксису.
Алсо хотелось бы зайти в книжный магазин в ДС и купить, а не заказывать из-за моря на португальском и ждать месяцами.
У меня монитор электроника, в беларусси сделан. а ты наверное хохол которому насрать на импортозамещение.
У меня астигматизм, и он врождённый, и ему как-то параллельны типы матриц мониторов.
Так что проследуй на хуй.
Теперь запили нормальный vim-mode и плагины и твоя параша будет лучше обоссанного сублайма.
Зачем такая нумерация версий?
Стандартный подход X.YY.ZZZ же лучше всего описывает ситуацию.
X — меняется только в случае кардинальных изменений.
YY — добавление фич.
ZZZ — номер билда,может быть хоть 99999. Меняется при исправлении багов.
Я бы в ствоем случае просто сделал весию 0.0.0 и менял бы вторую и третью, пока не дошел бы до релиза.
На практике бывали случаи когда номер версии составлял 0.15.182, согласись — так проще понять что происходит с продуктом.
Рано или поздно все равно останутся одни нубы с третьим
Да и str() можно. Но `` короче и вообще перл-стайл.
Хотелось бы, чтобы научили всякие там гуи рисовать и с ресурсами работать, помимо прочего.
Дайв - вполне нормальная книжка, по ней учил.
Стоит обмазываться web2py ?
Или лучше сразу дрочить django flask?
жангу
Ну в принципе уже более-менее, прикручивай запуск скриптов по хоткею и те кто ноет по поводу тяжелизны ide могут спокойно юзать твой блокнотик для мелкоскриптов на питоне
Запомни - из немейнстримных остался только flask и кое-что еще (см. ниже), web2py cherrypy и прочую хуйню даже не трогай там все стухло, то что эти фреймворки крутятся где-то на сервере амстердамской городской газеты ни о чем не говорит, это не серьезные мейнтейнеры.
Кое-что еще - это всякое там tornado, pylons, twisted и прочий немейнстрим для серьезных хайлоад-ребят, которые живут yield() и хардкором.
Короче если тебе надо написать быстро и за еду проект - используй django. Если ты мамкин нерд-хипстер со стартапом, используй flask, по нему есть достаточно годный туториал: http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world
Если ты хайлоадер - начни с третьего абзаца пасты dive into python и не забудь про twisted. Ну или рой в сторону C#/Java если есть деньги на сервера. Либо Go/Erlang если нет денег на сервера кек.
И да, если ты собираешься использовать mysql/postgresql/oracle - у тебя есть три стула:
1) Django - для задач уровня говносайтов. Как только пойдут сложные запросы, инвалидация и прочее - либо превратишь свои приложения в говнокод, либо начнешь перепиливать жанку под себя. И то, и то - уныло.
2) SQLAlchemy для достаточно широкого спектра задач.
3) Своя ORM, если есть команда питонистов, которые не превратят ее в говно и умеют в архитектуру.
> mysql/postgresql/oracle
> 2015
Все использую nosql базы - mongodb, redis, zopedb, couchdb.
sql-прошлый век, его никто не использует, только в легаси продуктах.
Это хуёвая подсветка синтаксиса, строки документирования (''' ''') конфликтуют со строками (' '), ума не хватает исправить.
http://pastebin.com/EASJuReW
Пиздос ну и говнокод у тебя, скачай опенсорц либу на гите для этого и адаптируй под себя. Заодно посмотришь как это можно короче сделать. У тебя код как на турбопаскале, а не как на питоне.
Тем не менее он тормозной. Его хотели переписать на c++ но так и не переписали.
И вообще сейчас есть asyncio в питон3.
С asyncio посложнее будет разобраться без коммьюнити и наработанного опыта как у twisted. А так конечно годно, почитаю поплотнее док (и заодно перекачусь на тройку кек).
>скачай опенсорц либу на гите для этого и адаптируй под себя
Асечку-писечку-ссылочку, плиззз!
Торнадо это чисто http ну и websocket
Твистед более низкоуровеный позволяет делать другие протоколы всякие.
email, ssh, irc- что хочешь.
Это хорошая вещь, когда тебе подсветка нужна в бложик код запостить, или презентацию подготовить.
Легче IDLE расковырять и посмотреть как работает, чем пигменты под себя переписывать.
PyScripter при запуске не может найти python23.dll если подсунуть скачанную отдельно просто выдаёт кучу ошибок. пистон 3.4 шин7х64/шин8.1х64
Не, в очко десяточку. Посоветуй тогда годноту под прыщи. И сразу ещё один вопрос: программа работающая с ком портом под прыщами, будет нормально чувствовать себя под спермой?
Я в виме+jedi пишу. Мне охуенно.
>ком портом
Программа собранная из дефолтных батареек обычно без проблем переносится под спермы. Но ты наверняка pyserial юзаешь, там все уже на их совести.
Вангую что должна.
Еще не начал юзать. Когда-то давно писал под прыщи костыль который мигал светодиодом на лпт-порте при непрочитанных сообщениях в жабере нет слов чтоб описать как я тогда натрахался а теперь возникла задача токать данные в/из кома, но вместо того чтоб ебать мозги гугля каждую строку решил изучить яп. И пока не ясно какая конечная ось будет всем этим заниматься.
Делай пулл реквест со своими правками, хуле. Шапка на пастебине или прямо тут нахуй не нужна.
>Шапка на пастебине или прямо тут нахуй не нужна.
Я не говорил что тут хочу шапку, я говорил что содержание шапки на гитхабе не информативное и хуевое.
Использовал с третьим, всё работает заебись.
Можно ещё отображать время последнего редактирования. А больше она ни для чего и не нужна
Так поправь ее, блять. Значение гита знаешь?
Название не очень.
Бывало такое, ВТМ Нада сделать
90% что твой код будет крутиться на серваке с линуксом. Так что ответ очевиден.
Используй докер или просто lxc
http://iqa.com.ua/programming/python/python-screencapture
from PIL import ImageGrab
screen = ImageGrab.grab()
screen.save('screenshot.png','PNG')
Что-то у меня тоже руки зачесались блокнотик накатать. Уровня atom, но быстрое. Но боюсь обосрусь, ибо хтмл отлично подходит для разметки, анимаций, стилей. Само мясо редактора сделать бы не на жс, но там хуй знает с расширяемостью и "хакаемостью". Сука. И куда тут денешься с подводной лодки. Вим с емаксом не предлагать, опыт есть, достаточно долгий и если честно не самый лучший.
print dictionary1[sey]
Обращение по ключам через квадратные скобочки.
Типичный даун второго питона, харкнул на тебя.
Да все почти прогрессивные ребята озлоблены, не обращай внимания.
Какой мудак придумал в питоне отказаться от скобок? Дайте имя - вставлю в молитву.
Прогрессивно-агрессивный.
Печалька
Да нет, просто наверное задание не прочитал, а вообще что нибудь легкое есть? А то канопи много место занимает, а брейнджетов дохера весит
PyCharm нормально весит, у меня на ноуте за 10к шустро шевелится(w8.1) .
Если так жалко места, sublime text 2, питон, и ебись со всем этим.
Что за глупые вопросы? Пердон же кроссплатформа. Хоть под Девой Марией из Назарета пиши.
Ну под шиндошс не оче. Либы искать/качать под конкретную версию/разрядность. Ибо собрать пип их не может автоматом
Уже понемногу закатывается Wheel, который позволит ставить без компиляции. Эта раз.
Есть pypy, который работает только с cffi. И либы тоже имеют тенденцию перекатываться под cffi. В итоге компилять нужно только сам cffi. Эта два.
Mingw. Эта три.
>скачал пупу
>запустил на ХР
>либрари патх нот фоунд
>но модуле намед ос
>еррор еррор еррор
>запустил на спермёрке
>получил "ускорение" с четырёхсот фпс до одного
>через полторы-две секунды скрипт молча падает без каких-либо сообщений или стектрейса
Чем дальше я погружаюсь в питон, тем веселее становится.
Я тебе по секрету скажу, поставить что угодно pypy на мак или линукс куда проще, чем на твои спермы.
Ставишь brew, а дальше всё как в какой-нибудь убунте.
не сложен ли будет фласк при позновании его если с питоном ознакомился не досканально, а может даже поверхностно?
вот, жду ваших ответов.
И еще, какую обвязку использовать для rest api, видел только backbone.js & knockout.js
Не нашел в факе и решил спросить
https://ru.hexlet.io/courses/python_101 Хорошее начало?
Спасибо, попробую саблайм, пичарм сколько примерно? Потому что канопи весил 1.4+
180мегабайт установочник, на диске так же где-то
Ебать ты лох.
решил вкатиться в айти, начал с изучения хтмл, ксс, потом пыху начал изучать + мускуль + жабаскрипт + жикверя, в итоге попал на курсы по пыхе, там писал проект в команде и... понял, что мне не нравится изучать вебдев, мне не нравится писать сайты, это говно ебаное, все эти фремворки, цмс, каждый раз как начинаю изучать эту парашу меня тут же начинает тошнить и начинается депрессия. Я подумал и понял, что ебись оно конем, буду двигать в сторону администрирования, и вот на глаза мне попалась книгу доусона по пайтону и на хабре статья об админстве, где утверждалось, что умения писать скрипты на том же пайтоне может очень пригодится. То есть, можно изучить ЯП с не высоким уровнем вхождения и применять его предметно, а не блядь для сраных вебсайтов, визиток и прочих говнопорталов. Вопрос - так ли это? Или на пайтоне тоже сраные сайты пишут и никаких скриптов для работы под линухом и прочего фана в виде игорей?
Прошло 7 лет со дня релиза 3-го питона, а некоторые дауны все еще используют 2.*.
Как питоновский файл запускать как исполняемый в бубунте? Чтобы как в винде - даблклик и вуаля, а то пока едитор открывается, вот как идле запускать я уже нашел, а вот как исполнять даблкликом - хуй. Установка галочке в чекбокс - сделать исполняемым нихуя не изменило.
Да. Но если у тебя там консольное приложение - надо делать еще open with твой_терминал. Иначе ты ничего не увидишь.
В общем, добавил щибанг(#!/usr/bin/env python3) в файл скрипта(просто принт(тест) + инпут(нажми интор сука, чтобы выйти)), сделал chmod +x path/to/test.py - дабл клик и снова открывается эдитор. ЧЯДНТ? Тут на стаке вообще предлагают сделать файл .десктоп и там описать как и чем запускать скрипт, а скрипт переименовать в тест.десктоп. Подскажи, что к чему, а то я ньфаг в юниксе, особенно по части пайтона.
про юзр/бин/енв пайтон3 - уже понял свою ошибку и написал правильно - #1/usr/bin/python3, на всякий случай снова сделал chmod +x path/to/test.py, все ще не работает.
>>524554
>>524551
В общем, сделал файл - закинул туда
[Desktop Entry]
Name=Test
Exec=/home/blabla/test.py
Terminal=true
Type=Application
сделал chmod +x /home/blabla/test.desktop
Теперь могу запускать скрипт как экзешник по даблклику на файл Тест. Но разве это единственный способ? Есть еще какие? Или мне всегда придется созщдавать вот такой отдельный экзешник?
Шабанг первой строчкой? Должен быть самой первой. env или прямой путь - похуй.
>#!/usr/bin/python3
>print("test")
>input()
chmod +x test.py
Даблклик из файлового манагера - вижу терминал с тестом.
Ну хуй знает, поковыряйся в контекстых менюхах по ПКМ на .py, там ассоциации какие-то как в винде, "запустить с", дефолтные действия, вот это все.
Подозреваю, что найти какой-либо заказ нужно.
#!/bin/bash
. venv/bin/activate
и нихуя не происходит.
C "source" тоже ничего не происходит
не сложен ли будет фласк при позновании его если с питоном ознакомился не досканально, а может даже поверхностно?
вот, жду ваших ответов.
И еще, какую обвязку использовать для rest api, видел только backbone.js & knockout.js
До вирт. окружения
Какой официальный способ создания пакета в 2015 году?
>досканально
Да твою ж мать! Ты постишь эту херь каждый тред и по-прежнему не удосужился ДОСКАНАЛЬНО выучить русский язык. Иди убейся.
Хуй с русским языком, он спеллчекер не осилил поставить. Программист, блять.
Подожди немного, я сегодня назад начал изучение пайтона. С книги Доусона. Еще немного позанимаюсь и подскажу тебе.
lol, спроси у кого-нибудь другого
Вроде всё правильно выбираю, а выдаёт всё время вторую ссылку.
`page=parse('http://ya.ru').getroot()
page.forms[0].fields['text']='python'
result=parse(submit_form(page.forms[0])).getroot()
hrefs=result.cssselect("a.serp-item__title-link")
print(hrefs[0].get("href"))`
Получил код, в котором map применялся к list как метод.
Т.е. вместо:
map(функция, [1, 2, 3])
было:
([1, 2, 3]).map(функция)
Последнее компилятор не понимает, да и гугл не выдает примера такого вот синтаксиса. Вопрос: чем компилировал автор кода?
Метод применяется не к листу, а к pandas DataFrame, у него есть метод map().
Ну давай быстрее учи давай, плс!
Пиздец ты тупой. Ты вообще понимаешь что такое ./source (это одно и то же, просто "." это более краткая форма) и почему люди не пишут вместо него "bash/sh/zsh"? Погугли сначала, потом пройдет просветление.
виртуальное окружение активируется, но в child-шелл-окружение, долбоеб.
Хит продаж, считается лучшей книгой для новиса в пайтоне, да и всего 387 страниц из которых я сегодня за пару часов 92 разобрал. На очереди Лутц лежит, та которая Учим Пайтон, программируем на пайтон не нашел пока, да особо и не искал. В общем, все по порядку. Решил вкатиться с того, что попроще, хотя знание пыхи(в смысле хоть какого-нибудь ЯП), конечно, все облегчило. Еще вот из вкусненького лежит - Пайтон в системном администрировании Юникс и Линупс, не терпится до не добраться, я как неофит линупса очень полюбил эту систему.
Вот например
def main(x):
x+=1
if x>7:
return x
else:
main(x)
print(main(5))
как мне протащить наверх и распечатать х когда он станет больше 7?
И почему эта пизда кормит мен я None? скорее логичнее было бы получить 5 на выходе, не?
return main(x)
>Изучаем Пайтон
fixed
Сразу Лутца, "Изучаем" -> "Программируем".
У Доусона смотрел, хуйня какое-то про игры.
Видимо паста отпугивает. А вообще удваиваю, годная книжка, и воровать не надо.
Мой ингриш слабоват пока, потому я обычно читаю на гузком в начале, а лишь когда пойму что к чему, тогда только к ангицким версиям перехожу.
>>524760
То, что она не переведена слава аллаху не значит, что книжка плохая. Как уже три миллиона раз говорилось: надо читать на английском, всё равно придётся, так зачем откладывать это в долгий ящик? Я осваивал так: читаешь, ага, не понял слово или оборот, загуглил, понял, читаем дальше. Чем дальше, тем меньше будет гуглений и баттхурта.
Да я могу читать документацию, и читаю давненько, но скорость меня вгоняет в депрессию, потому я обычно технологию в общем осваиваю, а потом начинаю углубленно учить по нормальным книгам без перевода, так легче понимать о чем читаешь. А вообще, да, нужно учить инглиш обязательно, это понятно.
Почему я не могу это через lxml сделать? Для моих задач вполне удобный инструмент.
Потому что суп для этого и сделан. Для работы с html, а html5lib — парсер, которым суп пользуется.
О, теперь заработало. Видимо, это у яндекса рандомно появляются спецвставки с википедией.
Можно и самому себе отсосать, но не факт что это удобно, и не факт что все так и было задумано
lxml.html это не долото, а вполне себе годный топор. В конце концов не зря же туда слово html приписали. Зачем мне пересаживаться на экскаваторы с буром и кофеваркой, когда можно и топором.
Тащемта, если кто-то хочет себе ососать - значит так оно и задумано, кто ж ещё может так задумать, если не сосущий.
Вот он хочет, а хуй короткий, хрен достанешь. Видимо таки задумка Боженьки > задумка червя-пидора.
Threading в помощь. Говорят, не больше пяти делать, хотя точно про зависимость от процессора и канала не знаю.
Ты имеешь в виду, когда с одного сайта качать, не обрывать соединение?
Лолд.
Я думаю нет, если кодер за джва года практики не тянет на мидла(учитывая ебанутые требования к джунам при приеме), то он еблан какой-то. В общем, классика - хуесосы хотят выполненную мидлом работу за деньги как для джуна.
Тогда они не шарят кто такие джуны.
Есть namedtuple если хочешь "через точечку обращаться".
Но вообще зачем? Чтобы запутать пользователя? Когда ['foo'] используешь сразу понятно что это dict.
Да прост сделал. Писал скраппер для двача. А там catalog.thread.comments.threads.number
Вот и подумал, что удобнее через точку будет.
Если раскомментировать мультипроцессинг, то там все четко. Выполняется параллельно.
Ускорение есть. На некоторых операциях просто локинг, но это в любых многопоточных приложениях у тебя локинг тоже будет и ускорение нелинейное.
Это раз. Второе если ты дергаешь функции написанные на си или работаешь с сетью/диском то ускорение огромное.
Вот именно, что работаю как бы с диском (посмотри код) но ускорение дает только мультипроцессинг. А треды выполняются по очереди.
Спасибо, друг.
Просто записываю скаченный файл на диск. С помощью aiohttp качаю, вот теперь думаю как лучше всего сохранять.
Ну тип качает странички. Гугли python scrappy.
>scrapper(дуэлянт/скребок/забияка/драчунья/скреперный)
Ты што, быдла, в ангельский не умеешь щтоле?
Молодец, мне нравится
"Забияка для двача" - ты ебанутый чтоле?
>(посмотри код)
Где посмотреть-то? Может ты неправильно треды запускаешь, или вообще в интернете дело, раз странички качаешь.
Надо делать thread.start()
thread.run() просто выполняет функцию которую ты указал в target. threat.start выполнеят её в отдельном треде.
http://pymotw.com/2/threading/
Вот ептыть. Спасибо, бро.
Намного быстрее, может держать тысячи соединений легко. Даже десятки тысяч.
Альтернатива этому этому плодить огромное количество потоков или процессов.
Случайно нашел, теперь мои велосипеды не нужны, только зря они в примере не используют keep-alive, это же халявный если сервер нормальный прирост скорости когда нужно качать овер дохуя файлов хотя там разные сервера в примере.
Это он и есть.
Извиняюсь за вопросы, которые мог нагуглить, просто попробуйте ответить сходу на что-то, пожалуйста, а чего не увижу, потом просто загуглю. Спасибо!
> прокомментировать экосистему разработки программ для браузера на Питоне/Джанго
Эм, это MVC фрейморк, в php тоже есть подобные, то есть ты пишешь шаблоны, модели вьюшки и т.п. Потом запускаешь uwsgi или fastcgi сервер и наводишь на него nginx. По типу php-fpm или как его. Есть и девсервер для тестирования который одной командой запускается
>Кроме Джанго есть что-то популярное, насколько оно хорошее?
Есть. Хорошее. Но работы больше всего с django
>но удобные инструменты для электронной коммерции и платёжных шлюзов
Есть полно.
> И менеджер пакетов?
Есть смотри
https://www.djangopackages.com/
https://pypi.python.org/pypi?%3Aaction=search&term=django&submit=search
Можешь там поискать сразу модули для твоих плалежных шлюзов
> На Виндовс желательно с Питоном через виртуализацию работать, правильно?
Да, но не обязательно. Некоторые на винде сидят.
Чего?
Это копия, сохраненная 25 августа 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.