Вы видите копию треда, сохраненную 6 июня 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Код вбрасывать в тред через https://ideone.com/
Прошлый: >>732347 (OP)
Да полностью пиши если что-то мутное
checked_your_mom_ebal_status и тд, легче понять что делает - быстрее переписывать
Сорри, перепутал с парнем который в прошлом треде переменные называть не умел.
Понятнее тебе структура - лучше. Этого и придерживайся.
Да, только лучше использовать properties https://docs.python.org/3/library/functions.html#property и делать проверку в "геттерах/сеттерах".
Ок, спасибо, как раз это и искал. А в чем фишка иметь гетеры в языке который не котирует приватные поля?
Так вот что за мразь всем property советует. Худшее, что есть в питоне, имхо. Дергаешь его, думаешь что обычное поле класса, а эта мразь тебе то исключение выкинет, то SQL-запрос отошлет, то еще какое-нибудь неожиданное поведение устроит. Хуже только создание полей у объекта извне.
помониторь "дейли топ" репозиториев гитхаба, как правило там как раз мелкое уютное новьё, найди чего по душе и фигачь
Для контроля доступа, можно в зависимости от состояния объекта корректировать значения(округлять до какой-то переменной величины, например) или считать количество обращений.
>>738737
> Так вот что за мразь всем property советует.
Я впервые.
> Худшее, что есть в питоне, имхо
> имхо
Хорошо что ты это понимаешь.
> Дергаешь его, думаешь что обычное поле класса, а эта мразь тебе то исключение выкинет, то SQL-запрос отошлет, то еще какое-нибудь неожиданное поведение устроит.
Это проблема гавнокодеров sqlalchemy, а задача описанная выше - идеальное приминение фичи.
Почему сразу не использовать set_govno вместо проперти? За ним же все равно будет спрятан какой-то атрибут класса.
Потому что проперти -- это сахарок. Он нужен. Если ты считаешь, что не нужен, то пиши на жс.
Не знаю истинных причин изобретения фичи но вижу две:
1. Унификация обращения к переменной, в жабке какой-нибудь, например, принято делать гетеры и сеттеры для асболютно всех переменных, а сами переменные делать приватными, в питончике же приватности как таковой нет и обращение к переменной обычно идет напрямую, properties же позволяет добавлять дополнительный контроль для переменных и при этом не выбиваться из стиля, ведь странно будет выглядеть если в классе десяток переменных но до одных нужно обращаться вот так, а до других вот эдак, не по дзену это.
2. Всегда можно добавить/убрать properties к переменной без переписывания кода который её использует.
научись долго говорить о питоне, употребляя много умных и непонятных терминов. за это платят деньги. для самой работы достаточно уметь гуглить.
Я только планирую, но мне страшно, там какие-то джанги-хуянги, сайты, сложные базы, даже не знаю, через сколько лет смогу взяться за первый реальный заказ.
Ну, заказы все равно сложные. Я бы пошел и в веб-макаки за еду, но как этому натренироваться, натягивать сайты, вот это все, ума не приложу, где примеры брать.
А если чистый кодинг на питоне - то так-то я клепаю проекты для себя. Но людям обычно нужен универсальный боец, чтобы всё сразу умел и много всяких фреймворков. А еще если лажану или застопорюсь - то и некому помочь, на двощах и стеке только на легкие вопросы отвечают.
Ох, страшно то как.
От "нуля" в программировании вообще до вполне осмысленного использования питона и джанги у меня ушло 5 месяцев и ~ 17 книжек, при чем 3 месяца я пинал хуй, ленился и занимался очень мало что бы совсем не бросить.
Сейчас себе свои сайты для оффлайнового бизнеса сам переписываю.
Стори писал уже, когда-то. В юности чуть быдлокодил, потом забросил, потом появилось ~ 4 независимых источника дохода, которые можно расширять онлайн. Вот и взялся учить питон для этого.
> >~ 17 книжек
> Что ты там читал столько?
Это разве много? Чем экспериментировать полуосмысленно дешевле сразу какую-то базу по предмету прочитать и уже по ней ориентироваться
Вспоминать список как-то лень, много по начальному уровню что бы окончательно все понять, чуть по Джанго, ML/big data/CV, алгоритмам
Кстати, как "понять" фреймворк? Ту же джангу, фласк например? Какие материалы по фреймворку изучал до того как впервые сам написал какое-нибудь норм приложение?
Тащем-то все просто, берешь и пишешь сайты.
По Django для начинающих есть хороший учебник на русском - djbook.ru
Мне понравились: django girls tutorial, официальная хуета вместо туториала, django by example, tango with django и 2 scoops of django
Фласк проще, если хочешь вообще голову фреймворкоподробностями не заморачивать - web2py и bottle, в целом мне бы и их без джанго хватило бы, но как я говорил я обленился до того, что чуть не бросил вовсе кодить, а джанго всё ж для пипец каких ленивых парней, даже не смотря на то, что вкатиться в неё сложнее.
Что по методике рекомендую просто брать и проходить все эти туториалы-книги и сам вникнешь что к чему
Да можно и в 40 вкатиться, только не слушай местных долбоёбов и делай что хочешь.
Импортируй то, что тебе нужно.
> from ass import shit
Если есть мысль что совпадет по пространству имен дописывай
> as shitfrommyass
>есть хороший учебник на русском - djbook.ru
какой-то пидор первел старую книжку а сам даже на вопрос про кодировки не знает что сказать.
все эти книжки про джанго стротся по одному сценарию - вот я автор великий програмист, я делаю это так-то и так-то, и ты так делай. в результате предлагается просто заучить рецепт.
>django girls tutorial, официальная хуета вместо туториала, django by example, tango with django и 2 scoops of django
лолируешь штоле? само по себе джанго очень просто, просто дураки не понимают, что прежде чем учить джанго, надо выучить, что такое сервер, как там все устроено и что как делается. а потом реализовать это на джанго.
Весь опыт человечества это заучивание рецептов до ты степени, что сможешь их осмысленного миксовать
тогда бы прогресса не было, была бы только линейная эволюция. значит, это не так.
всегда так делаю
Сам джуниор, знаю только базовый набор - основные библиотеки, супопарсинг, джанга, немного веба.
И еще вопрос - там обязательно прикреплять своё настоящее фото или можно всякое говно, как на отечественных сайтах?
Как получить все заголовки из внутренних списков: "
CAT 1.1: Program name
CAT 1.2: Program name
...
CAT 3.3: Program name"?
Да, но как-то не вышло. Пробовал обращаться в цикле:
for i in range(len([i[0] for i in root])):
print(i,root[3][0])
Но выводятся только первые категории всех списков:
CAT 1.1, CAT 2.1, CAT 3.1, CAT 4.1
Почему сразу не покурить доки?
https://docs.python.org/2/howto/logging.html
>import logging
>logging.basicConfig(filename='example.log',level=logging.DEBUG)
>>739438
Так что ли?
>>> print('\n'.join([item[0] for sublist in settings['settings'] for item in sublist if type(item) is list]))
CAT 1.1: Program Name Title
CAT 1.2: Program Name For Root
CAT 1.3: Program Name For Root
CAT 2.1: Program Name Title
CAT 2.2: Program Name For Root
CAT 3.1: Program Name Title
CAT 3.2: Program Name For Root
CAT 3.3: Program Name For Root
CAT 4.1: Program Name Title
CAT 4.2: Program Name For Root
CAT 4.3: Program Name For Root
Почему-то только через переопределение sys.stderr получилось то, что хотел. Всё равно спасибо.
Да, именно так. :3
>Почему сразу не покурить доки?
Курил, в файл не пишет, но проблему решил по совету другого анона через sys.stderr.
Ладно, сам уже худо-бедно наклепал. Но поясните таки за фото и скажите, какую почасовую оплату брать для совсем начального уровня.
Рекомендуй ты тогда, хули. Где выучить сервер + аналоги/как это реализовано с джангой.
Накати виртуалки, болезный.
Ладно, поставил минимальные три бакса и хипсторскую аватару с аватаромейкера.
DO, OpenShift, Heroku, любое другое говно.
Иду по книге Think Python RU_v.1.06
Дошел до задания где внутри функции вызываются её параметры, и я такой WTF MAN?????
def do_twice(f):
f()
f()
Поясните плиз зачем внутри функции вызывать ПАРАМЕТРЫ?
До этого только было что вызов функции происходил по её имени, и уже вне её. А тут на тебе кинули в лицо новую форму. Непонимать. Вот пикрелейтед, я там 2е задание не могу сделать. Так запутано ппц.
Функцию же можно использовать как переменную, тип вычисляет что-то и тут же подставляет в параметры другой функции.
>Я думал что функция это её do_twice(f) а буква в скобках это её параметр а также переменная для аргумента. Я ошибался?
Что?
Похоже, он решил, что функция do_twice должна выполнять саму себя два раза
>>739815
Нет, функция do_twice выполняет два раза любую функцию, переданную ей параметром f.
то есть можно написать
def lolka():
\tprint('lolka')
do_twice(lolka)
и она два раза выведет 'lolka'.
Запоздало, но нашел ещё одно решение.
Код: http://pastebin.com/9CRGJcQa
как на пикче
Дальше книги. Зазубрил основы языка на кодекадеми и можешь уже к чему подробнее переходить, так и должно быть же.
if in_editor:
num = 1
else:
num = 0
Нет, он решил что функцию нельзя передавать как параметр в другую функцию
ну ты можешь запустить консоль, добавить там переменную окружения типа PYCHARMUSED=true
и запускать pycharm из этой консоли, а в скриптах дергать os.getenv и смотреть есть ли такая переменная или нет
>>740038
>>740247
Cпасибо котоны. А вообще кто-нибудь покупал PRO уровень код-академии ? Как он, cтоит того ?
Проходил курс когда ещё не было PRO. Обычный вводный курс. Сейчас, судя по всему, он мало чем отличается. Не нужен.
Ну, тут часто пробегают любители gtk. А это аргумент в пользу qt. Всё же просто.
Ничего, как-то раньше народ верстал целые сайты без превью и лайврелоадов. Напишешь строк 200 CSS и потом молишься чтобы это кривое говно не съехало. А какой там был дебаг с помощью бекраунд колоров на все блочные элементы.
тогда тебе в бинды на QT
Погроммирование это пара тройка логических операторов, переменных, немного массивов, тульп и хэш таблиц, сверху горстка итераторов и условных циклов? Серьезно чтоли бля, на таком говне все огромные проги построены?
Поясните за суть фреймворков. Фреймворк это кучка библиотек? Не пойму тонкой сути слова и его значения
Погроммирование это пара тройка арифметических и побитовых операций, запись/чтение в ячейку памяти, все остальное Абстракция.
Фреймворк это скелет твоей программы, кто-то уже сделал за тебя часто использующиеся вещи.
мне похоже utf-16 нужна. Я просто собираю статистику с твича. В чате кинули свастику. Скрипт упал.
Попробуй поменять все кодировки в питоне на UTF-16.
https://habrahabr.ru/post/117236/
поменять шрифт на TrueType в консоли
http://stackoverflow.com/questions/10764920/utf-16-on-cmd-exe
mingw попробуй ещё
Теперь понял, это обращение было, я сразу твою пунктуацию не распарсил.
> А это аргумент в пользу qt.
Кроссплатформенность? в Gtk другая ниша, как и в Cocoa или WPF - легкие, нативные и качественные GUI-приложения использующие всё фишки и особенности платформы по полной.
Привет анон. Как подбирать методы?
Например, в джава-еклипсе есть подсказки или можно открыть сайт джавы и там есть методы каждого класса и подсказки как их использовать. В питоне тоже есть документация но что-то нихуя не понятно, как ею пользоваться.
ipython
import <Tab> - покажет все доступные для импорта модули
Class.<Tab> - все методы
Class.method()<Shift+Tab> - входные оргументы, докстринг
var? - описание переменной
module.function?? - исходный код
pycharm это тоже все умеет.
видимо придется pycharm ставить. Вкатывающимся в питон на sublime text не рекомендуется писать?
sublime это текстовый редактор, лучше уж сразу поставить среду разработки как pycharm, или LiClipse (легковесная Eclipse заточенная под питон), если в эклипс раньше работал не думаю что возникнут проблемы по настройке.
ещё spyder есть. Написан на питоне, открыт для всего. (но pycharm всё равно лучше, если тебе насрать на ограничения community edition)
spyder кстати мне исходники попортил, все строки написанные не ascii в кракозябры перевел и автоматом сохранил на диск.
Прошку бесплатно можно получить.
зачем пилить перекат если ничего не обновляется?
Давай поебемся) я буду нежно и страстно целовать тебя, делать массаж, гладить твою нежную попку и теребить языком соски. Потом войду в тебя, мы сольемся в единый организм, состоящий из оргазма, наслаждения, похоти, чувств, тишины, тоски по детству, низости первородного греха, голубого неба, ветра в поле, ночного костра..затем я поцелую тебя в лоб, прижму к себе и ты укутаешься в мои объятия, предавшись миру Морфия. Я же включу недосмотренный тайтл и добью оставшиеся 5 серий. Выключив ноутбук, я, ощутив тепло твоего тела и услышав размеренное спокойной дыхание, постараюсь уснуть.
Лол, я тупо набираю имя объекта в оболочке, ставлю точку и жду всплывающий список с методами и полями. Так и живу.
Помогите с примером из Dive into Python
Есть: модуль apihelper.py с функцией info
http://ru.diveintopython.net/apihelper_divein.html
и скрипт, его использующий :
для консоли
>>> from apihelper import help
>>>info.__doc__
>>> li = []
>>> info(li)
или, как программа
from apihelper import info
print info.__doc__
li=[]
info(li)
Traceback (most recent call last):
File "<input>", line 4, in <module>
File "C:\py.work\apihelper.py", line 7, in info
__author__ = "Mark Pilgrim (mark@diveintopython.org)"
NameError: global name 'collapse' is not defined
команда info.__doc__ выводит результат нормально, т.е. модуль импортируется нормально
Есть предположение, что у тебя табуляция сбилась в файле apihelper.py. Проверь или скинь в ideone.
откуда у тебя info появилось, называй имена файлов и функции как по книжке
Я apihelper скачал, а не набивал. Вот в идее
http://ideone.com/K4R0jF
>>740856
info это функция в apihelper. Если ты про info.__doc__ то это просто проверка, загружаетс я ли этот модуль.
fix наверное это разные версии книжки, то есть версия перевода тут более старая. У меня функция называется info.
А на ideone сразу вывести результат не хватило мозгов? Все работает.
http://ideone.com/Fn3uJn
твой код, вставленный в новый файл, заработал, а с файлом apihelper из архива примеров - нет. Отличия - после print выражение в скобках, а там нет.
>>740856
Всем спасибо, заработало, когда я убрал переносы в длинной строке с print.
Вопрос - в Питоне есть фича с дроблением длинных строк команд (не тройными кавычками для текста) ?
на ideone уже пример с дроблением list exсeption. Если с такими переносами у тебя не запускалось выкинь нахуй IDLE и поставь нормальный редактор. По пепу все что внутри скобок должно идти с отступом в один пробел от скобки, последняя и первая скобка не переносится.
while x != list[0] or list[1] or list[2]:
print ("TEXT.")
test_1 = input ("TEXT")
fun(test_1)
while True:
if x != list[0] or x != list[1] or x != list[2]:
print ("TEXT.")
test_1 = input ("TEXT")
fun(test_1)
да, я дурачок
from .SomeModule import Foo
Что делает точка ?
Чому не робит если ее убрать? Импортирующий файл находится в одном каталоге с каталогом модуля.
Как в ElementTree рекурсивно получить все ноды с нужным тегом?
findall - ищет только на одном уровне вниз.
Да я так и сделал, но думал есть что-нибудь готовое.
Все доки обмазаны какими-то .iter() .iterfind() .findall() .find() и нихуя не ищет рекурсивно, и еще это все говнище не всегда принимает неймспейсы в параметры.
Нет слов - Пистон.
>когда понял питон
У меня PyCharm. Чтотакое list exception ? В поиске ничего не нашел про это применительно к Питону.
git clone git@ulitsa.ru:tyan/natasha.git /home
>Сколько rps тянет?
По сравнению с чем?
Тут всё зависит от многих факторов - как используешь кеширование, правильно ли организована БД, построены индексы/кеш и нет ли лишних запросов к ней. и т.п. В целом джанго можно использовать для высоконагруженных сайтов
Обычный хелло ворлд из экшена. Интересен оверхед самого фреймворка.
А то сейчас сижу на одном микрофреймворке php, и хоть он тянет 1.5к рпс, там нет нужной мне фичи.
хуйней страдаешь кароч, хеловодчик
А почему ты гуглить не умеешь? Первый результат по запросу web frameworks performance: https://www.techempower.com/benchmarks/
Попробовал https://github.com/django-ve/helloworld на ноуте получилось 2700 rps. Но это на голом gunicorn без nginx(с ним должно быть лучше).
Но это всё очень оторвано от реальности - например рендеринг шаблонов много времени занимает в реальных приложениях. И смысла в таком тесте нет. Да и если нужно именно helloworld какой-нить микрофрейморк, асинхронный может даже будет быстрее.
Асинхронные быстрее, если ты долго ждешь данные, так-то они намного медленнее.
Ну допустим на локалхосте. А если сервер удаленный находится и куча одновременных медленных соединений?
Что угодно.
Асинхронный. Его ставят перед синхронным веб-сервером как раз из-за медленных клиентов. Ну и еще статику раздавать.
То есть синхронные фреймворки быстрее асинхронных за счёт асинхронного веб-сервера? Ну ок.
))
Да хоть в терминале.
Что такое конечные автоматы- сам не знаю, просто слово нравится. Пиздецки серьезное такое, не находите?
Ясно.
Если у меня 2 потока, то мне по курсору на каждый поток хватит? Или нужно подключение делать для каждого?
nginx на си написан и крайне задрочен. Так-то там такой же селект/полл, как и в asyncio/uvloop.
Спасибо. Подожду, пока скрипт упадет и сделаю.
А что будет, если просто несколько курсоров использовать?
То есть синхронные фреймворки быстрее асинхронных за счёт асинхронного веб-сервера написанного на си и крайне задроченного? Ну ок.
> селект/полл
селектом никто не пользуется нигде. и обычным поллом тоже.
под прыщами epoll под фряхой kqueue и т.п.
Да суть одна.
Ну ладно. Спасибо.
>>741304
>Асинхронные быстрее, если ты долго ждешь данные, так-то они намного медленнее.
>так-то они намного медленнее
Can't import tyan because ti pidor
Подскажите по PyCharm
Создал проект, в нем два скрипта, оба в одной директории. Первый - рабочий, второй - модуль с функциями, который я импортирую и использую в рабочем. Но если я меняю что-то в модуле, например, имя функции, она перестает импортироваться.
Пробовал через контекстное меню очищать компилированные файлы, не помогает. Помогает только перезапуск PyCharn. Это как-то можно исправить ?
Говно без задач
Ну, это пёс какой-то сказал. Так-то разницы нет.
И то и то.
Анон, есть две кнопки и "scrolledwindow" с заданным значением "adjustment" через переменную "value". Кнопки (plus, minus) добавляют и прибавляют значение "value".
По сути, должно добавлять это значение и прокручивать текст дальше. Но нихера не работает.
Нужно ли добавить обновление виджета через "GObject"? Или же как можно это реализовать?
http://pastebin.com/iL14Rgxg
Тебе надо в plus и minus делать
self.position.set_value(self.value)
вместо
>self.scroll.set_vadjustment(self.position)
Thanks, mate.
Одни долбоебы начинают нумерацию месяцев с нуля, другие - пикрилейтед.
Вроде все логично. С днем недели запутанная история, одни используют 0-6, другие 1-7, а вообще принято 0-7, где и 0, и 7 - это воскресение.
В JS месяцы с нуля, дни с единицы. Здесь наоборот, лол. Как будто специально пердольку подкладывают.
процесс может остаться висеть если программа явно не завешилась через os.exit
у меня на убунточке такая хуйня была с питоном.
скрипт вылетает по ошибке, смотришь top а он там висит.
многопоточный скрипт наверное? или форкался?
Да, выход из проги не всегда по плану происходит.
ты доской ошиблась, мань.
if var = doSomething(): pass
print var
?
Результату выпалнения doSomething()
Но это нужно в сишечке, потому что там нет исключений и функции типа open возвращают -1 в случае ошибки, так что там пишут
if( (f=open('foo')) != -1) { }
в питоне есть исключения и with для этого.
Или там пишут
while(x = get_next_value()){ }
в питоне есть for .. in
Так зачем в питоне это? Чтобы нубы путали == и =(как часто случается в си у нубов)
Тому, что вернет doSomething().
Юзкейс:
if (!res = deletePython()) {return false;}
...
return true;
Да уж, спс.
Чтобы если ты сделаешь from __future__ import division можно было целочисленное деление использовать всё равно
чтоб делить float на float без остатка?
тхред читай
Там для новичков - это entry level же? Как-то у меня от всего этого глаза разбегаются и все как-то сложно вроде. Можете подобрать пример вакансии, где можно справиться и на уровне любительского скриптописательства?
Или может есть какие-нибудь еще годные биржи, где есть работа по питону? На русских сайтах какие-то уж слишком специфичные заказы уровня сениор-уровня.
Ту, у тебя не питон.
В нормальных странах джун - это как минимум 2 года работы.
0-2 - трейни
2-5 - джун
5-8 - миддл
8+ - сеньор
Промахнулся.
Ну вот, например:
https://www.weblancer.net/projects/759113.html
https://www.weblancer.net/projects/754010.html
Причем на русских сайтах заметил тенденцию, что пишут очень расплывчатое ТЗ, то есть приняв тебя, могут взвалить кучу непонятной фигни, а ты не будешь знать, что с этим делать. На иностранных обычно всё по полочкам расписано, но тоже сложновато.
Так вот, неужели нет каких-то простых заданий? Откуда же студенты опыт нарабатывают, не с самописных имиджборд же, крутятся среди реальных задач небось. А стажером за еду сейчас никто не берет.
> года работы
Что подразумевается под годами работы? Работа над своими проектами или с коммерческими штуковинами на реальной работе? Так а кто их берет то на реальную работу без опыта? Как в интернете получить этот опыт, если не знаешь, как правильно все делать, за что браться? Книги и туториалы учат однобоко, на практике застопоришься на чем-то и все, понизят рейтинг и конец.
Не понимаю я, как устроен этот мир - вроде в начале все одинаковые, я порой знал всякие штуки даже лучше своих ровесников, а потом бац - и все находят работу без особых знаний в голове, а я нищебродствую со своими проектами.
>imp.reload("my_yoba")
у меня питон 2.7, там просто reload(module_name). Это работает, только если подключать как
import mymodule
reload(mymodule)
если прописывать функции наппример
from mymodule import myfunction
reload(mymodule)
то изменения в module не появляются
так мой пример у тебя работает? изменения появляются? по второму вопросу, ты не понимаешь как инструкция from работает.
В подсобке пет-проекты, потом трейни за еду. Ну а джуны уже 60к$ в год получают.
>В подсобке пет-проекты
Что еще за подсобка? Я бы вообще рад работать за сто баксов всю жизнь, только не нужен никому "трейни".
У мамке на шее, в общаге.
reverse('some_app:other_view')
Че т подзаебался, помогите кто чем может.
по-идее оно должно выводить на каждой итерации:
hui
hui, hui, hui, hui
потом
pizda - по первому принту
pizda pizda pizda pizda - по количеству элементов dict
при условии что lemma in dict это опечатка и вместо dict должно быть slovar
Убить бы тебя за эти переменные
>>741915
У тебя там вообще хуита какая-то, set принимает лишь один аргумент.
Нахуй отсуп у первого for'а? Зачем ты по классу dict проходить пытаешься?
>>741920
всё имеет - http://ideone.com/Og6teK
да. работает и imp.reload и просто reload.
Проблема была в том, что я не делал Save All. С ним работает и при import ZZZ from module. Без imp.reload или reload ничего не обновляетсся даже после Save All.
>не понимаешь как инструкция from работает.
а как она работает ?
>hui, hui, hui, hui
print будет перевод строки делать каждый раз
>>741915
в чем прикол ? в начале и цикле разные переменные же ?
>Проблема была в том, что я не делал Save All.
>ничего не обновляетсся даже после Save All.
так ты решил проблему с пайчармом? пиздец, ты понятно можешь мысли выражать?
что такое пайчар ?
1) изменение, Save All, reload/imp.reload, вызов - обновляетсся
2) изменеие, Save All, вызов - не обновляется
без Save All не обновляется
в общем,вопрос решен с помощью Save All и reload
Короче, переменная была dict, потом чтобы не путать с типом dict когда код шотил исправил на slovar.
>>742017
> set принимает лишь один аргумент
Да хер его сколько он там принимает. Это демонстрационный вариант, чтобы было понтно, что тип set используется.
>>742021
Ну, ты понял
Спасибо, пацаны. С утра разобрался.
>Это демонстрационный вариант
Так, блядь, запускать свои демонстрационные варианты и убеждаться, что проблема там присутствует нужно. А то принёс говно какое-то и помощи просит.
>переменная была dict
Ох, уебал бы тебе Гвидо хорошенько.
Спасибо!
Нашел еще более простое решение
return HttpResponseNotFound(render_to_string('404.html'))
хм ну так наверное всякая хрень не передасться в шаблон типа request.user
оно может и не нужно, но мало ли
В блоке try ты просто присваиваешь переменной значение. Что там может пойти не так?
Че ты доебался. Хуй пойми на этом ideone че вообще происходит и куда тыкать.
Я ебал что словарь это dict? Гвидо долбоеб раз сокращает так уебански названия типов.
У меня learning by doing -- пошел на хуй
>Че ты доебался.
Хочу, чтобы в следующий раз ты при проблеме написал нормальный пост и тебе смогли сразу помочь.
Не понимаю как ты предлагаешь организовать цикл проверки доступа к фалу.
При чём тут цикл. Я просто предлагаю заменить проверку через ошибку от левой фукнции на человеческую функцию, сделанную специально для проверки на существование.
path = ''
while not os.path.exists(path):
path = input("Kuda edem, druzhok?")
>>742200
И?
Dict это зарезервированное название ? (лол, кодить только вчера начал, не знаю терминологии)
>>741915
Вот у меня вопрос, word/lemma же нигде не определенны и в каком-нибудь С подобном языке я бы сначала присудил к word/lemma соответствующие списки, а только потом писал цикл for ? Питон автоматически определяет что word/lemma связаны с элементами списка, тип во время исполнения он присуждает word каждый элемент mycorpus ? И вместо word могло быть какое угодно название ?
Арихато
>Dict это зарезервированное название?
Как переиенная нет. Лучше избегать, чтобы не путаться.
> word/lemma же нигде не определенны
Инициируются и менят значения динамически в цикле.
спс
Пхпшку имел в виду.
Быстро
Какими утечками? После того как функция-вьюха отработала всё её переменные прибиваются сборщиком мусора.
В глобальных переменных вещи типа коннекта с базой данных только.
Ну обычно в long-running аппликуках могут быть утечки, когда даже сборщик не поможет. В node.js с таким сталкивался.
python.exe
Gunicorn, и его процесс я вижу.
Типа там встроенные запросы и не надо ревесты инклюдить? Посмотрел на доки - куча какой-то непонятной и неочевидной фигни над простыми задачами, не понимаю, как такое поделие взлетело у хипсторов.
его толкает scraping hub
на самом деле в scrapy не только парсенк, но и асинхронщина, пайплайны (как и куда сохр. данные)
scrapy имеет смысл юзать если уже есть инфраструктура (где его запускать) или нужно парсить много-часто-быстро
requests+lxml (ну phantomjs для сложного жаваскрипта) для большинства сайтенгов пойдет
Мне вообще нравится selenium через все эти куки плюшки тот же хохловский авито - olx с кучей защит от парсинга им парсить можно просто в три строчки
Это пушка. Код местами нерабочий (пример - декоратор не возвращает функцию), местами рабочий, но неправильный (проверка четности: number %2 is 0)
Короче, читать новичкам ее смысла нет. Если есть какая-никакая база, то есть все ошибки вы возможно увидите и исправите, то читайте.
ну phantomjs может использоваться вместе с Selenium, а еще он headless, можно на серваке без иксов его крутить.
Selenium да, стандарт у тестеров.
и в scrapy, по-моему, не решен уапрос обработки джаваскрипта
это работает только потому, что маленькие значения интов кэшируются
поменяли канпелятор-оптимизатор и привет
равенство надо проверять, внезапно, оператором равенства
В питоне нет примитивов, всё-объект. Тот анон прав, то что у x=0 и y=0 будет одинаковый id это оптимизация и особеность реализации, пологаться на это не стоит
Прикольно будет это отлаживать.
а мне жалко свое искуство разменивать на чужую хуйню типа магазинов.
сколько б не заплатили, для чужих нихуя бы не делал
Да мне лишь бы на пожрать хватило, тут уже не до гордости.
>>742495
Фильтровал, там постоянно какие-то специфические задачи и дополнительные - типа распарсь скрапом и подключи к гуглу, или залей на постгрес и авс. Чисто парсинга для нуба там нет. Хотя парсить то я умею, а вот всякие побочные фреймворки не очень. И в каждом заказе они новые, заебешься все учить.
кстати в чем смысл парсить авито? копировать фото товаров на свой сайт? видел ещё продаются аккаунты на него, смысл это делать? чтобы продать 100 штук с каждого по одной чтоле? и засрать выдачу?
depends on implementation жи
>>> a=1020
>>> b=1020
>>> a is b
False
>>> id(a)
42847552
>>> id(b)
43988488
cpython 2.7.10 win32
a и b 10 в двадцатой степени везде
через отдельные переменные посчитай
>>> a=pow(10,6)
>>> b=pow(10,6)
>>> id(a)
43777256
>>> id(b)
43777136
>>> a is b
False
>>> map(id, [pow(10,6) for _ in range(10)])
[43773760, 43773760, 43773760, 43773760, 43773760, 43773760, 43773760, 43773760, 43773760, 43773760]
>>>
зачем мне через отдельные переменные? суть этого примера показать что он их кеширует.
ошибся
>>> map(id, [106 for _ in range(10)])
[43773760, 43773760, 43773760, 43773760, 43773760, 43773760, 43773760, 43773760, 43773760, 43773760]
>>> map(id, [pow(10,6) for _ in range(10)])
[43773760, 43777340, 43773892, 43777184, 43777244, 43773880, 43773856, 43773844, 43777160, 43777292]
>>>
попробуй, блять, и не тупи
у тебя кешировалось один раз 10^6 именно выражения генератора (generator comprehension)
попробуй заменить 10^6 на вызов pow(10,6) и посмотри на разницу
ты путаешь интернирование (кэширование значений) и особенности работы выражений
Я квартиру в аренду искал, например. Когда-то еще мониторил конкурентов по соответствующему запросу, кто новый, что появилось, как объявки меняли и тд. В целом помогало - они скидку - я скидку, они вернули цену - я вернул
Python 2.7.10 win 32
-5≤ a, b ≤256 -> True
Что это значит применительно к написанию программ ?
[code]
for d, dirs, files in os.walk('c:/djangay'):
print('Директория: ' + d, end="")
if not files:
pass
else:
print(' Файлы: ', end="")
for f in files:
print(f,end="")
print()
[/code]
Разметка не удалась
на идеоне забанили?
Спасибо, красиво вышло.
Следующий вопрос. В сторону чего копать чтобы в итоге такое окно оформить как на пике? Больше всего интересует сам список файлов, чтобы потом сделать по щелчку по названию столбца сортировку по имени, размеру и прочему.
Получаешь атрибуты файла через os.stat, формируешь список из объектов или словарей, про сортировку можешь тут почитать:
https://wiki.python.org/moin/HowTo/Sorting
qt
Почему в PyCharm 4.5.3 и Python 2.7 все нецелые результаты операций окгругляются до целого, даже с функцией float ?
>>> float(10/7)
1.0
Потому что во втором питоне результат деления целого на целое - это целое, а float-ом ты просто превращаешь целое во float. Если хочешь нормальное деление, то кастуй либо делитель, либо делимое:
10.0/7
10/7.0
float(10)/7
10/float(7)
В Python 3 деление всегда float.
потому что ты делишь целочисленным делением и ПОТОМ переводишь результат во флоат.
Попробуй наоборот
Он станет маркированным дважды и озалупится в отдельное дерево состоящее из него самого или маркировка просто "сгорит" и он останется на месте со своими чилдренами?
Проиграл
Просто пишешь, что можешь сделать в такой-то срок и всё. Никакого интервью и прочее.
Какой виджет использовать чтобы сделать такой список?
Что лучше не использовать числа вне этого диапазона, иначе будет использоваться лишняя память. Если уж прям нужно большие, можешь выдумать своё представление чисел полином из этих маленьких.
Вот можешь кстати исходники поизучать http://sunflower-fm.org/
Ещё есть консольные файловые менеджены lfm например
Спасибо! Но думаю я слишком зеленый, чтобы в исходниках копаться. Пока что буду в сторону pygtk копать.
>>742980
Красота, спасибо, а на pyqt похожей фичи нет? Как то он удобнее помоему.
> а на pyqt похожей фичи нет?
Есть
> Как то он удобнее помоему.
Глупости. Просто посмотри сколько реально популярного софта на pygtk/gobject. А на pyqt нет почти ничего.
Значит буду на pygtk бахать, если разберусь, итоговая цель - простенький файловый менеджер. пока что сделал простое окно и пытаюсь разобраться с модулем os, думаю он пригодится
это значит, что проверка, например, н четность такая:
number % 2 is 0
будет работать. Но так делать не надо.
> Глупости. Просто посмотри сколько реально популярного софта на pygtk/gobject. А на pyqt нет почти ничего.
Иии? PyQt5 реально крутой, несколько тредов назад я уже писал почему.
Поясните про рекурсию. Насколько понимаю, он сначала x(x-1), потом результат на ((x-1)-1) ... ? Как из этой записи можно понять, где происходит очередной шаг и изменение аргумента на единицу и повторный вызов функции с новым аргументом ?
def fact(num):
if num == 0:
return 1 # факториал (0)=1
else:
return num fact(num - 1)
# возвращаем результат произведения num и результата возвращенного функцией fact(num - 1)
>Как из этой записи можно понять, где происходит очередной шаг и изменение аргумента на единицу и повторный вызов функции с новым аргументом ?
Ну вот же:
return num*fact(num - 1)
Ну нарисуй диаграмму состояний, как в книге think python, там помоему отлично обьясняется, именно на примере факториала
1) Что ты делаешь на первом пике? Почему из вима прям?
2) Что ты нажимаешь чтобы появилось дополнение? supertab или типа того стоит?
>Что ты делаешь на первом пике? Почему из вима прям?
:make это же ide из него нужно запускать. Иначе в нём смысла нет.
>2) Что ты нажимаешь чтобы появилось дополнение? supertab или типа того стоит?
ctrl-space и он не работает. А хочу чтобы ничего наживать не надо было. Как в обычных ide. И нет. Ничего кроме jedi не устанавливал.
Судя по выхлопу make тебе надо сначала сделать :chdir /папкаспроектом
> ctrl-space
А ты его определял так? По-умолчанию автокомлит на ctrl+x ctrl+o вроде. С supertab будет по табу
> А хочу чтобы ничего наживать не надо было.
Это как-то можно сделать вроде let g:jedi#popup_on_dot = 0 вроде опция
Вообще вот тут же инструкция есть
https://github.com/davidhalter/jedi-vim
Я по ней всё делал и всё зашибись.
Надо кстати в самом питоне модуль jedi поставить для начала.
А нафига тебе вообще vim? На любителя штука. Юзай pycharm.
Я много лет использую vim по привычке, но большой проект я бы в pycharm лучше делал и вообще хочу его освоить.
Другой файл открывает. Как эта штука называется? В доках про компиляцию ничего не могу найти.
Гайз, оцените мой говнокод плз. Первая собственная прога на питоне. Буду очень рад если укажите на ошибки.
https://github.com/luckone/viselitsa-game-v.0.1
пикрандом
from methods import звездочка
from random import звездочка
так делоть харамновато, хотя так и продакшене многие делоют
А теперь напиши симулятор палача. Утром приходишь на работку-вешаешь, декапитируешь, вечером домой к коту и слезливым бульварным книжонкам.
В пепе сказано что можно использовать табы главное не мешать табы и пробелы в одном проекте.
Да, но предпочтительней все-таки пробелы.
все pyc, pyo, pyd файлы из репоззитория должны быть убраты
>misstakes
mistakes же
>randomWords[randint(1, len(randomWords)]
Есть же random.choice()
>randomLetters = list(randomWord)
Зачем преобразовывать в список, если всё тоже самое можно делать со строкой?
Зачем импортировать random в обоих файлах?
>randomWords[randint(1, len(randomWords)]
Здесь, кажется, скобочка потеряна и почему-то значение индекса от 1.
Есть один скрипт, делающий бекап (архивирует) заданных директорй, которые хранятся в листе:
source = ['/home/user/media/Dropbox/Images/Wallpapers/', '/home/user/media/Dropbox/Images/Photos/']
Вопрос, как вытащить название последней директории из элемента листа, чтобы потом всунуть её в имя архива, учитывая, что делается архив каждой директории из листа отдельно?
>if letters == goodLetters:
Если отгадывать буквы не по порядку, то списки не будут равны никогда. Победы не дождаться.
>variant = input()
Никак не проверяется что в variant. А если пользователь введёт несколько букв?
dir pwd python3 в терминале внутри komodo работают, а cd нет.
И почему приходиться постоянно писать в консоль и нет горячей клавиши для этого?
https://ideone.com/BMmrVw
Поцоны, короче такая тема. Это примитивная адресная книжка с возможностью ввода имён и номеров в словарь, который записывается в файл. В дальнейшем можно(нельзя) найти номер по ключу. Но вот беда, прога находит только имена которые были введены в чистый файл в первый раз, остальные записи не видит, хотя они в файле сохраняются. Помогите решить проблему.
Тебе нужно переписывать файл по-новой каждый раз, а не просто добавлять в конец, смотри:
>>> f = open('addressbook.txt', 'rb')
>>> pickle.load(f)
{'test': '123', 'test2': '1234'}
>>> pickle.load(f)
{'test': 'test rabotaet', 'test4': '31231231', 'test3': '123123'}
>>> pickle.load(f)
{'test': 'test rabotaet', 'test4': '123123134124', 'test5': '234234124', 'qweasd': '1231231', 'test3': '12312312312'}
Так теперь не находит имена/номера, которые ввел в первый раз, а мне нужно чтоб все введенные номера сохранялись.
Спасибо!
Ты ебанутый. Видно же что человек только учит питон, задание - скорее всего из "A Bite ..."/"Dive into .." и тут ты - пиздец-молодец такой с СЭКЮЭЛЬАЙТ
Да нахуй никому ещё одна адресная книга не сдалась даже в учебных целях с бд.
Так ты при старте программы загружай содержимое файла в словарь, потом добавляй/ищи по нему, а когда выход - записывай словарь в файл, затирая текущее содержимое.
Меня просто бесит маразм.
Ну тогда делай бэкапы каждые н минут, тут ничего не поделать. Ну или насилуй файл и переписывай его каждый раз, когда пользователь введет новую запись. Ну или при поиске делай в цикле пикл.лоад, пока не найдешь словарь с нужной записью.
Это из Лутца?
https://ideone.com/TkAgC6
всё работает, но, в архиве создаются поддиректории, а не конкретна та директория, которую я задал в source.
То есть, из примера, ожидаемо, что в архиве будет директория Wallpapers с файлами, но в архиве у меня несколько директорий: home/user/media/Images/Wallpapers и только потом файлы. В чем провтык?
С каждыйм файлом так делать? Тут даже кнопки выполнить нету. Приходиться сохранять и запускать программу нажатиями 5 кнопок. Это же бред. Может плагин какой есть на этот случай?
zip по умолчанию создает полный список директорий, можно делать cd в нужный каталог и обратно (cd/pushd/popd)
Спасибо, помог. Не знал что если открывать файл через 'w', то всё содержимое сразу удаляется.
Видимо у тебя в директориях файлы с одинаковыми именами или ещё чего. Тогда вариант как анон выше написал >>743787
> Видимо у тебя в директориях файлы с одинаковыми именами
Да. Но они в поддиректории (Wallpapers/001.jpg & Wallpapers/subdir/001.jpg). Странно, что на такое ругается. Как-то обойти можно?
Чому в архив добавляется еще сам скрипт? То есть, помимо директорий, которые передаются из sys.argv, еще и добавляется скрипт, который выполняю прямо в корень архива.
Например, содержание архива:
-Wallpapers
-Photo
backup.py
Он унифицирует все по полочкам до переносимости отдельных частей между проектами, унифицирует вид и способы взаимодействия.
Существует ли что-то подобное для не веб приложений? Где из коробки тебе хранение всякого говна, модели стандартные что с этим делать и тд. Если нет то почему?
Уже читнул и вкурил. Спасиб.
----with tarfile.open(output_filename, "w:gz") as tar:
--------tar.add(source_dir, arcname=os.path.basename(source_dir))
Как быть, если source_dir формируется из нескольких аргументов?
source_dir это лист.
AttributeError: 'list' object has no attribute 'rfind'
Ошибка, если в нём есть несколько элементов. С одним элементом всё работает.
https://ideone.com/ZsLHf8
TypeError: list indices must be integers or slices, not str
В общем, задача была в том, чтобы создавать архивы с помощью tarfile модуля.
Замени source_dir на i. i хранит элемент списка, а не его индекс.
Короче, наваял как-то так. Теперь проблема в том, что, если один из аргументов - это несуществующая директория, то создаётся архив со всеми, кроме неё, и вывыодится ошибка, а надо, чтобы архив вообще не создавался. Как такое можно напедалить?
О, я придумал. Можно впилить проверку на os.path.exist() перед выполнением функции для каждого элемента и, если false, то дропать.
Не могу.
https://ideone.com/Ec7eE2 вот, сделал.
Осталось решить вопрос, почему архивируется конкретно содержание (файлы) директорий, переданных в аргументах, а не сами директории с файлами. Помогите, посоны.
Возможно из-за наличия/отсутствия слеша в конце пути.
Почему бы не использовать .format вместо конкатенации плюсиками? Наглядней же, не?
> Возможно из-за наличия/отсутствия слеша в конце пути.
Да, именно из-за него. Годно. Спасибо. А можно как-то их обрезать, если пользователь всё-таки ввёл?
> Почему бы не использовать .format вместо конкатенации плюсиками? Наглядней же, не?
Да, ты прав.
> А можно как-то их обрезать, если пользователь всё-таки ввёл?
'/raz/dva/tri/'.rstrip('/')
Теперь иди спать.
он просто НЕ ОБРАБОТАЛ ИСКЛЮЧЕНИЕ
1) selenium + браузер
2) смотришь, какие запросы шлет твой браузер, эмулируешь их при помощи requests, html разбираешь при помощи lxml
СИКЯЛЯЙТ в питонотусовочке не любят штоле? По-моему, если нет нагруженности и многопоточности, типа серверсайда, то вполне можно замутить, тем более тут чувак вообще стандалон пишет. Фурифокся на SQLite работает, например, какая-то борда еще, может даже двощ, точно не помню.
Никто не не любит, просто в этом случае он не к месту.
допустим я его нашел. что с ним делать? там что-то типа https://server_url/get?param=1&position=63451785421586487174681764781548
надо как-то ломать сам запрос, чтобы осмысленно отправлять?
например, есть куча сайтов, у которых когда долез до конца страницы, подгружается еще порция данных, этим самым ajax
как найти js-код, который управляет подгрузкой и формирует этот xhr-запрос?
Вроде как суть в том, что для таба можно задать разную длину в пробелах. Лучше настрой в редакторе, чтобы у тебя таб был равен 4 пробелам и вместо \t он ставил именно их, разницы не почувствуешь, но проблем потом, если будешь где-то работать, меньше будет.
Спасибо.
>надо как-то ломать сам запрос, чтобы осмысленно отправлять?
смотреш, что запрос получает взад
думоеш, как это соотносится с тем, что тебе надо спарсить
заголовки, как правило, можно копировать втупую, в запросе id различные менять инкрементально
тут крч есть фронтенд, который взаимодействует с json API.
URI имеют вид
https://assetservice.allrecipes.com/v1/asset/hub/81/3?
где 81 - категория, 3 - страница
фильтруй по хостнейму assetservice.allrecipes.com и познаешь дао-какао
Я думаю, надо для начала пиздовать в какой-то попен-сорц проект и фиксить там баги, смотреть че как устроено, вот это всё. Это тебе халявный экспириенс. Правда, за него деньги не платят, но опыта набраться можно. Это и пишешь в резюме + свои проекты.
Эти проверки на ввод,как у меня печёт от них. В технаре препод на каждую строку кода требовал проверку делать. Заебал
Почему? Это уже опыт. Можешь еще свой github показать, где ты там чего коммитил.
ты давай не хами старшим
Смарт табы и еще что-то вроде есть. Если пишешь не в блокноте - есть куча плагинов, которые тебе и синтаксис проверят и выравнивание поправят.
Охуенно, кодим в 79 символов чтобы в консольку/нищемонитор поместилось, а тут даже в рандомном ide код не открыть без костылей.
Я писал на третьем питоне, но приложение небольшое и реально его поправить под вторую ветку. Но самое главное - реально ли это сделать как я описал, чтобы был exe-файл, один единственный, чтобы иконки и картинки приложения были внутри или типа того, короче дабы юзер скачал один файл и запустил? Анон, помоги!
Нет, это просто называние, а не версия питона. Ещё можешь посмотреть Pyinstaller. Были ещё какие-то упаковщики.
И иконки, и картинки, всё в один .exe файл.
Там всего 5 элементов с заданными заранее неповторяющимися значениями.
PyInsaller самое то, py2exe не советую. (Last Update: 2013-05-29)
ключи:
-F - в один файл
-w - не открывать консоль при запуске. (еслу у тебя с гуи)
Спасибо! Но везде пишут, что он только для python2. Короче, мне переписывать код для второй ветки, и штурмовать PyInstaller?
Быстрофикс, уже вижу что он есть и для моей 3 версии. Спасибо тебе огромное Анон, буду ебстись!
Кстати, если значения не пересекаются с ключами, то можно зделать в одном словаре.
Питон можно скомпилять в экзешник, который будет работать без самого интерпретатора питона, весить не дохуя и в памяти занимать <500кб (если это хеллоуворлд)? Ну и не декомпилировать чтоб.
Питон можно транслировать в с++/с#, чтобы работало и было более-менее читаемо? В идеале, в исходном питоне используя функции и классы того, во что собираешься транслировать?
Можно ли (и если да, то как) написать скрипт автоматизации или макрос, группу таких скриптов-макросов (хоткеи, бинды кнопок и сочетаний, действия с системой), запускающиеся по событию мыши, клавиатуры, системному событию (изменилась раскладка, отключился интернет, етц)?
>Питон можно скомпилять в экзешник, который будет работать без самого интерпретатора питона, весить не дохуя и в памяти занимать <500кб (если это хеллоуворлд)? Ну и не декомпилировать чтоб.
net
>Питон можно транслировать в с++/с#, чтобы работало и было более-менее читаемо? В идеале, в исходном питоне используя функции и классы того, во что собираешься транслировать?
da
>Можно ли (и если да, то как) написать скрипт автоматизации или макрос, группу таких скриптов-макросов (хоткеи, бинды кнопок и сочетаний, действия с системой), запускающиеся по событию мыши, клавиатуры, системному событию (изменилась раскладка, отключился интернет, етц)?
dot net
> Питон можно скомпилять в экзешник, который будет работать без самого интерпретатора питона, весить не дохуя и в памяти занимать <500кб (если это хеллоуворлд)?
Просто скомпилять как-то можно (хотя у меня ничего не вышло, как ни пытался), но вроде весить будет как раз дохуя, т.к. включаются все библиотеки.
...Шел 2016 год. Гвидо до сих пор не смог сделать динамические библиотеки и нормальный компилятор.
Ок, попробую. Через py2exe ничего не выходит.
Рантайм Питона не в динамических библиотеках.
При чём тут компилятор, там интерпретатор в экзешники вставляется, чтобы тебе не пришлось вместе со своим поделием писать "чтобы запустить, установите пидон плиз".
Библиотеки там и так только нужные вставляются, потому что все весят довольно-таки многи, если ты вдруг ни разу в /lib не заходил.
он уже ответил, что ошибся в названии.
А что такое лемма, и почему она должна была быть в словаре?
>Подробнее можно? И нахуя?
Перекатывайся на дотнет-парашу и не пытайся сделать из питона то, для чего он не предназначен.
Ясно. Но это же шкрепты. Автоматизация, все дела. Мне в прикрепленном посоветовали перекатиться на питон, чтобы не ебаться с автохоткеем и его заклинаниями. А теперь говорите, что это невозможно.
> для чего он не предназначен
А для чего, напомни, предназначен язык общего назначения?
>А для чего, напомни, предназначен интерпретируемый не микрософтовский язык?
Уж точно не для хелло-вордов в 500 кб, и запуска по хоткеям.
А причем здесь микрософт? Ява, жс, авто ит, авто хоткей - это микрософтовские языки?
>хелло-вордов в 500 кб,
Ну да, 500 кб, это где-то в 50 раз больше, чем должен занимать в памяти хелло-ворд, это правда, но мы живём в 2016, поэтому пусть хотя бы так.
Ну, это, гораздо больше тех <10Мб, в которые обычно превращается по максимуму ужатое и очищенное от всего лишнего приложение. Просто у тебя и однострочник, и небольшое гуи приложение будут столько весить (впрочем, сама библиотека в 6.6 ужимается, вроде как).
Это же микрофреймворк, там особо нечего развивать. Вся суть в сторонних библиотеках. Что тебе в нем не хватает? Или что не нравится?
http://flask.pocoo.org/docs/dev/changelog/
Да как что, меня все устраивает. Захотел сделать мини-сайтик - сделал. Правда есть некоторые маленькие неточности в разделе документация. Врд и есть изменения, но док. местами не обновили. В джанго такого нет, там выходит новая версия, сразу все переписывается, ну я так заметил. Хотя ладно.
>comment.replace(' ', '_')
можно заменять и другие символы
python remove non alphanumeric characters from string
Создать универсальные метод и вызывать в цикле? Но как...
https://ideone.com/3fdl4F
UPD: К тому же этот вариант не работает а всего лишь заполняет последней кнопкой(9) все значения.
Ты серьезно? Ты зачем вообще это пишешь, если не понимаешь как это работает?
https://ideone.com/5r6etx
Да в и зачем там +1?
Переспросил в перекате.
react
Смотрю в России вакансий не так уж много, не то что на всякий джава мобайл и фронтэнд. Но душа не лежит к этим направлениям.
Скажи пожалуйста, где там указывается внешний вид кнопок? Я делаю свой хеллоуворлд, у меня там кнопки как в win 98, а у тебя как в семерке.
все, понял, нужно было создавать ttk.
string.isalpha()?
Аутист с pyinstaller 3-проблемами снова просит помощи у тебя, добрый анон, и у других шарящих. Екзешник, собранный со сторонними файлами (картинками) не запускается. Собираю на Шindows, в консоли ввожу
pyinstaller -F -w 123.py
Удаляю из кода все обращения к сторонним файлам - все работает, как я и хотел, собирается в единый файл, весит правда, пидор, 7 метров, ну да это ж петон плес Что еще нужно дописать, чтобы сторонние файлы упаковывались в экзешник? Или нужно сначало ебстись с spec-файлом? В документации нихера не понятно. Всем добра.
и книжку fluent python
Скажите, посоны. Какие задания вам дают на работе? Чем конкретно вы занимаетесь на работе? Что именно кодите на пайтоне?
Я таки разобрался. Нужен кому-нибудь мануал по тому, как пейтон-скрипт засунуть со сторонними файлами и библиотеками в один экзе-файл? Могу на досуге напилить, если спрос есть.
django-хуянга, скриптики и всяк devops
Вы видите копию треда, сохраненную 6 июня 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.