Использую некий покупной софт, который подгружает кучу пайтоновских скриптов. Внезапно обнаружил, что программист, который эти скрипты писал -- альтернативно одаренный. Он создает переменные с именами, которые зарезервированы за встроенными пайтоновскими функциями. Т.е. есть, к примеру, функция dir(), а этот чувак создает переменную dir и начинает с ней работать.
Есть ли какой-нибудь скрипт, который проверит все остальные файлы на предмет подобных траблов?
>>506137 Он импортирует эти переменные прямо в софт что ли? Так-то ничего страшного не должно произойти в скрипте, если он сам не пытается там же использовать dir по назначению.
>>506148 Загрузочные скрипты могут импортироваться в программу - скаем, там переопределили половину билтинов, а дальше сделали фром щит иморт zuvozidochka в теле скриптового модуля. Потому и уточнил - понимает ли анон точно, что делают переопределенные билтины или просто читал, что это бэдстайл (а это бэдстайл).
>>506148 Я не могу быть спокоен. Потому что у меня уже возникли проблемы из-за чужого говнокода.
Софт написан на с++. На пайтоне сделана подсистема для скриптинга. Эти скрипты при загрузке меняют интерфейс, создают всякие панельки, делают еще кучу всего. Все это происходит в фоновом режиме.
Когда же я начинаю работать в скриптовой консоли, то выясняется, что функция dir() теперь выдает ошибку.
Скрипты это не написаны изначально, как красивые пайтоновские. А выглядят как программы на Фортране. Куча for-loop и последовательностей команд. Никакие классы, модули и функции не создаются вовсе.
>>506156 > Софт написан на с++ > Скрипты это не написаны изначально, как красивые пайтоновские. А выглядят как программы на Фортране Налицо работа крестодауна!
>>506173 > del dir() сделай Мне это не нужно делать -- в косячном скрипте поменял имя переменной на нормальное. Теперь там все хорошо.
Но сколько еще таких мин могло остаться. Скриптов дохуя. Часть из них идет в комплекте с программой от разработчика, часть как плагины от других людей.
>>506262 Здорово, но я всё же предпочту связку стабильных и привычных инструментов. В matplot есть хороший просмотрщик, браузер хорошо отобразит любую таблицу и формулы. Вот ещё интересная вещь нашлась: http://mpld3.github.io/index.html matplotlib с просмотрщиком внутри браузерной страницы.
Привет, анон. Помоги с кодом. Пишу в PyCharm. Учу Пайтон совсем немного, в основном балуюсь и не тороплюсь учить что-то новое. Суть в том, что у меня gold не минусуется после разветвления, а только увеличивается, и в принципе там проблемы, начиная с if. http://pastebin.com/0DgZdKF8
>>506584 Ты сравниваешь с переменными, а не со стрингами. Если бы ты назвал их по-разному, то понял бы в чем проблема. А вот у тебя стринги и переменные называются одинаково, и ошибки интерпретации нет.
>>506599 http://pastebin.com/Un72yvkP Я просто заменил резко на пастебине, не запускал у себя, так как придётся разобраться заодно в твоем коде. Но если не сработает/не поймёшь - напиши, разберусь.
>input >reads a line from input, converts it to a string and returns that
Добрый вечера, ребята. Какой материал порекомендуете для успешного вкатывания в веб-разработку на питоне? До этого был небольшой опыт шлепания формочек на пхп. Благодарю за помощь.
>>506645 Может, лучше с жс начать? При твоём инпуте (средневакуумный веб) - ты уже имеешь некоторые знания скриптовых языков, а вот основу средневакуумного веба ещё не трогал.
>>506651 Нет. По мне так это параша какая-то.(Извиняюсь если кого-то обидел) Мне кажется что код на жс получается громоздкий и не очень логичный - сужу по некоторым примерам на гитхабе. Почему считаешь что лучше с жс начать? У меня крепкий инпут - лет с 13 начал ковырять скрипты на пхп, но ничего серьезного не достиг с того времени. Понимание MVC, OOP(чуть больше средневакуумного уровня), с HTML/CSS тоже естественно знаком. Примерно такой инпут. >средневакуумного веба Кстати, что имеешь ввиду под этим?
>>506690 >Кстати, что имеешь ввиду под этим? Средневакуумный, потому что ты не написал, чем хочешь заниматься точно. Веб без жс если и возможен, но при этом ты жс знать-то должен, особенно в комплект с хтмл/цсс.
>По мне так это параша какая-то. Нахуя ты в веб-то лезешь, в таком случае? (Ничего личного.)
>>506703 >Средневакуумный, потому что ты не написал, чем хочешь заниматься точно. Веб без жс если и возможен, но при этом ты жс знать-то должен, особенно в комплект с хтмл/цсс. По бекенду, в основном. Мне вундервафли в жс не нужны, разве что для придания динамичности, а это я думаю смогу сделать в случае необходимости.
>Нахуя ты в веб-то лезешь, в таком случае? (Ничего личного.) Потому что питон. (Без обид.)
>>506758 Что такого сложного в том, чтобы выучить язык? Я, конечно, далёк от веба, но даже из моего "мухосранска" слышал, что веб переплетён с жсом тесно, и знание это хотя бы просто повысит квалификацию программиста.
Чем-то напоминает людей, которые хотят чего-то достичь, достать каких-то знаний, имеют мотивацию, интерес, готовы носом землю рыть, но с одним условием - DAITE RUSEK PLZ.
>>506840 PEP8 курни. Переменные называются в режиме мелкобуквенного хуйла через андерскор - true_args. Скажи подробней, что ты хочешь сделать и что именно сейчас работает не так как нужно?
>>506839 >\0 Что это? Терминатор? Я нихуя не посоветовал, как русский только поучил жизни и дал бесплатный совет. Прости.
>>506849 А мне нравится - очень питонично. Вот у жаваскриптеров - псевдофак из вопросов для людей непонятно что делающих в /pr/, которые никому не интересны и которые никто не задавал. Вот кстати оп второго треда мало того что слепой, так ещё и чухан-кун, склонный раздувать шапку левым говном.
>>506848 Я хочу чтобы аргументы можно было повторять. Например - ./stuff.py --show --do-something --show >show: 0 >doing stuff.. >show: 1 Если готовить argparse по докам и туториалу (https://docs.python.org/3/howto/argparse.html), то в --show --do-something --show отработают только первые две опции, а третья не отработает, потому что мы ее уже "прошли".
Вот пример - https://ideone.com/IqbxyL Запускаем, ./stuff.py --show --do-stuff --show show doing stuff
>>506869 Она работает через неймспейсы. И для булевых аргументов получается такая хуйня, сколько аргумент не повторяй: print(args) >Namespace(do_stuff=True, show=True)
Можно сделать action='append', и тогда будет считать количество. Но аргументы перестают быть булевыми, и приходится указывать позиционные аргументы: ./stuff.py --show 1 --do-stuff --show 1 --show 1 >Namespace(do_stuff=True, show=['1', '1', '1']) А позиционные аргументы мне нахуй не нужны.
>>506870 Глянь сам файл аргпарса в сорцах пистона - может, получится малой кровью отнаследоваться и запилить свой модуль аргпарса, с блекджеком и шлюхами.
>>506894 Я ваш кофескрипт в вакансиях вижу только в качестве legacy 2-летней давности. Хайп прошел, юзеры-синиоры подохуели от подводных камней и дропнули это говно. Хотя прозреваю будущее кофе на нодке (потому что бэкэндеры это те еще говноеды, знаю по себе).
>>506911 > подводных камней Ай да какие там камни. Он 1-к-1 транслируется практически, просто слегка улучшенный синтаксис для жаваскрипта, не более. Принципиальных проблем по сравнению с ЖС у него не может быть в принципе, потому что он не делает ничего принципиально нового.
>>506911 Снайпер что ли? Моя область - это область-мухосранск, 15 человек на всю страну занимаются этим говном. Если я её хотя бы назову, это даже сорт оф дианон будет. Но не веб. Алсо, я не считаю, что лезть в отрасль на хипстерские инструменты и при этом отказываться учить ключевые - это умно. Жс ты можешь не любить, но, бля, выучи его, чтобы не творить полную хуйню, когда будешь соприкасаться с жсерами, если даже сам не будешь жсить. А так, имхо, это банальное невежество, и такому подходу лишь можно пожелать УДАЧИ.
>>506890 Таки плюнул на этот argparse и взял родной getopt из батареек. Кода в десять раз меньше, а функциональность больше. Все что нужно реализуется с пол-пинка. Вот тебе и инновации.
Но потом понял что еще нужно сохранять порядок, в котором 'эти аргументы даны. argparse опять этого не умеет, а с наследованием и кастомным action получается больно дохуя кода. В гугле народ для этой темы вообще портянки воротит. Написал версию с getopt и она выиграла по лаконичности. Такие дела.
>>506890 В стандартной либе много кала, от которого нельзя избавиться, совместимость. Сейчас тенденция на сторонние пакеты с пупи, и это правильно. Чем раздувать стандартную очередным парсером, лучше выложить их на пупи и дать выбор. >>506922 Как тебе уже сказали выше, кофе и есть жс.
>>507005 используй ajax: подключи jquery в html, и обработай клик по картинке с классом .clickable_img: $('.clickable_img').click(function(){ $.ajax({ type: "POST", url: "/proceed_image_click_python_script", async: true, data: {img_src: $(this).attr("src")} }); return false; });
в обработчике url "/proceed_image_click_python_script" обработай POST запрос в который должен передаться параметр img_src. в джанге это делается так: img_src = request.POST.get('img_src', None)
>>507017 Благодарю. Да я с вебом почти не имел дел пока. Но тут вдруг решил написать что-то вроде браузерного вьювера для своих картинок. Подумал, что полезно будет попытаться сделать всё это на "чистом" Питоне.
Часто в разном коде встречают одну и ту же ситуацию, когда есть иф, который проверяет условие которое сработает только при первом вызове функции. В своём коде предпочитаю это фиксить (покажу дальше решение), но насколько стоит это делать, по-вашему? Объясню на примере. Допустим есть какой-нибудь класс для экспорта чего-нибудь в csv и нужно, чтобы при первой записи были также записаны заголовки таблицы, при этом написать заголовки заранее не при вызове функции нельзя, потому что они основываются на том, что придёт на первую запись. И в __init__ у этого класса объявляется что-то типа self.include_headers = True. Также у этого класса есть основная функция write, которая, собственно, и пишет чего-то там в csv. Как-то обычно оно так:
Вопрос по оформлению. Например, есть цикл внутри функции, который пробегает по массиву и собирает из него элементы по условию, которое является параметром функции. При это параметр включает условие, если он есть, и отключает если его нет. Т.е. объекты из массива все равно надо собирать. Как лучше? Так: [CODE]for i in lines: if NO_RECTANGLES and round(i.x0) == round(i.x1): lines_y.append(round(i.y0)) else: lines_y.append(round(i.y0))[/CODE] Читаемо, но с повторением. Или: [CODE]for i in lines: if (NO_RECTANGLES and round(i.x0) == round(i.x1)) or (not NO_RECTANGLES): lines_y.append(round(i.y0))[/CODE] Менее читаемо, зато без повторения.
>>507245 Написал. Предлагало обновить пип и выдало какой-то невразумительный эксепшен. Пытался обновить пип, тот себя скачал, удалил старого себя, выдал эксепшен и теперь pip "не является внутренней или внешней командой, исполняемой программой или пакетным файлом".
Программа грузит картинки. У картинок есть ещё такие параметры как якорь, тип альфы, требуют ли они какой-то специальной обработки и прочее. Нужно сделать так чтобы картинки грузились не через питоновский код, а по факту своего наличия в соответствующей папке. Я могу загрузить всё что есть в папке, но тогда теряются дополнительные параметры типа якоря, альфы и тд, которые забиваются ручками и ни как из самой картинки не вытекают. Какие есть варианты?
>>507428 Если ты не хотел загружать весь файл в память, то в момент чтения в лист именно это и происходит, что протиоворечит идее итераторов. Файл - сам по себе итератор, если хочешь работать с итератором, а не листом - не используй ридлайнс. Скомбинируй свой способ с тем куном, сделав что-то такое: http://pastebin.com/EUEHWfZz
for делает этот трай-экцепт за тебя (то есть ловит СтопИтерейшн экспешн и выходит из лупа). Так что код того куна самый питоничный.
>Учишь с третьего года питон, очень любишь это дело. >Есть несколько простеньких проектов для резюме. >Берут на работу благодаря тестовому заданию на джанге и фронту. >Дают задание писать на джс для мобилок. cordova phonegap ionic, вот это дерьмо все
Посоны. я нуб в питоне, ну и в программировании вообще. Пока круче пингалок ничего не написал. Сейчас пытаюсь прикрутить к этим пингалкам GUI. На выходе хочу получить виндовое окошко, мол, введите IP и кнопка - ПИНГ. Ну и результат чтоб выводился - ПИНГ ОК или не ОК. Скачал Qt - итерфейс создал , а куда код вставлять - не пойму. Поскажите направление.
Халп посоны. Нужно вытянуть последней строчкой программы аббревиатуру страны, две большие буквы. Питон ругается на предпоследнюю строчку typeError: list indices must be integers, not str
try: js = json.loads(str(data)) except: js = None if 'status' not in js or js['status'] != 'OK': print '==== Failure To Retrieve ====' print data continue
print json.dumps(js, indent=4)
lat = js["results"][0]["geometry"]["location"]["lat"] lng = js["results"][0]["geometry"]["location"]["lng"] print 'lat',lat,'lng',lng
Привет, питоны. Есть одна программа, которая достаточно затратная по ресурсам - как процессорным, так и интернетам. Какие есть бесплатные или недорогие варианты, где её можно запустить? В том смысле, что мне нужен хост какой-нибудь
>>507769 Спасибо, почти так. Но разные города выдают разное количество диктов в ["address_components"], соответственно в первом может быть само название города а не страна. Аббревиатура всегда в последнем.
>>507784 AWS Free Tier - бесплатно на год. Подлянка в том, что им надо указывать кредитку, на которой лежит энная сумма. И с тебя могут снять за превышение ограничений.
Только начал работать с файлами. 1) Зачем нужен with? если и без него файл нормально открывается и закрывается? 2) Почему после прочтения файла тот становится пустым?
>>507838 1. Открытый файл нужно обязательно закрыть. С with его закроет автоматически. with - это кейворд, который можно использовать, предварительно реализовав соответствующие методы в своем классе. Означает "всё что ниже насерет - вычистить по окончании вилкой из памяти".
2. Не файла, а после окончания любого итератора. Файл - это итератор, итераторы не хранят в памяти всё содержимое итерабла, но проитерироваться по ним можно лишь один раз, если не дописывать какой-то специальный функционал. В случае с файлом этот функционал дописан, ты можешь использовать метод seek(), который может установить позицию чтения в произвольное место, например в ноль, после чего ты сможешь прочитать файл снова с самого начала.
А можете пояснить где почитать про многопоточность/многопроцессность в питоне? Чтобы я сам мог например написать многопоточный граббер сайтов. Знаю про scrapy, но мне интересно именно понять самому как это делается.
Сап анон. выручай,помоги разобраться с имплиментацией этого кода в ООП, можно и проще одним обьектом ведь будет ?
import requests from bs4 import BeautifulSoup import operator
def start (url): word_list = [] source_code = requests.get(url).text soup = BeautifulSoup(source_code) for post_text in soup.findAll('a',{'class':'index_singleListingTitles'}): content = post_text.string words = content.lower().split() for each_word in words:
print (each_word) clean_up_list(word_list)
def clean_up_list(word_list): clean_word_list = [] for word in word_list: symbols = "!@#$%^&*\"()_?.,><;'+|}{][]-=;'" for i in range (0,len(symbols)): word = word.replace(symbols,"") if len(word) > 0: print(word) clean_word_list.append(word)
create_dictionary(clean_word_list)
def create_dictionary(clean_word_list): word_count = {} for word in clean_word_list: if word in word_count: word_count[word] += 1 else: word_count[word] = 1
for key, value in sorted(word_count.items(), key=operator.itemgetter(1)):
есть более элегантный способ удалить всю сперму из слова. ищи сам.
есть более элегантный способ подсчитать слова в словаре, тебе нужен defaultdict. там нет смысла проверять есть ли ключ в словаре или нет, ставишь значение по умолчанию на ноль, а потом просто инкриминируешь.
у тебя ебанутые названия фунций, они не отображают сути происходящего.
>>508118 ссылка пизданулась походу. код работает.анон - искал и спрашивал и на тостере и на старковефлоу. и гуглил. слабо с поисками. меня интересует как эту хуйню сделать в ооп.
>>508130 ты уже обосрался в функции start, всей последующей цепочке твоих функций ты передаёшь пустой список (и они ничего не делают). так что пополняй там свой word_list словами.
>>508136 А, так ты зелень. Ну всё просто - нужно сначала пройти базовый туториал по классам, после чего у тебя всё получится, лол. Я быстро заменил, не читая твой код, так что не уповай на то, что это рабочий образец. Но выглядеть оно может как-то так: http://pastebin.com/Hdwu0RLE
>>508142 Ну, почитал часть - почему нет. Как-то слишком хардкорно он там взял, к пункту 9 уже Кнут, например. Ты на эту пасту забьёшь всё равно, так как эта паста на 4-5 лет учения, а через год тебе она сама по себе станет ни к чему - какой дурак станет планировать 5 лет своей жизни по пасте с харкача (если это не завтра_ищешь_книжку.txt).
>>508148 но все более менее уложено. жаль с криптографии ничего нет. и мотивация есть - почему бы и не попробовать. - знаете какие то книги лучше чем в пасте - скидывайте. (сорри за офф топ)
>>> a={'a':'b','c':'d'} >>> b=HttpResponse('test') >>> a.update(csrf(b)) >>> a {'a': 'b', 'c': 'd', u'csrf_token': <django.utils.functional.__proxy__ object at 0x7f459b408750>}
вот этого u'csrf_to......' быть не должно. Как сделать {'a': 'b', 'c': 'd', 'csrf_token': <django.utils.functional.__proxy__ object at 0x7f459b408750>} ? Хотя бы книгу и раздел дайте, я кодировку специально напотом оставил, как знатный геморрой.
>>508200 Не совсем понимаю твой вопрос. Ты предлагаешь мне использовать третий питон, как средство решения ебли с кодировкой? В любом случае, я уже добился отсутствия u' и это в решении моей проблемы не помогло. Я уже истрахался весь с этим говном. Помогите хоть кто-нибудь.
Суть в вебм. Грызу джангу, подошел к формам, учебник по версии 1.4, автор заверял в самом начале про АБРАТНУЮ САВМИСТИМАСТЬ В ПРИДЕЛАХ ВЕРСИИ 1.#.# сука. Соответственно ВНЕЗАПНО при отправке пост-запроса появился какой-то CSRF-ключ, который обязательно надо передавать. Если его вообще отключить - все разваливается. СОВМЕСТИМОСТЬ, мать её.
Я, конечно, понимаю, что самостоятельный траблшутинг развивает понимание предмета, но ебал я в рот так по 20 страниц ползти в день. Что интересно, на пиратбее я актуальных гайдов по джанге не нашел. Это говно реально полная хуйня, все все.
>>508233 Я читал и гуглил и разбирался. Вот в доках на мою версию написано https://docs.djangoproject.com/en/1.7/ref/contrib/csrf/ дескать, сначала в settings добавляем >django.middleware.csrf.CsrfViewMiddleware (да он и так по-дефолту был добавлен) потом в форму шаблона добаввляем этот вот >{% csrf_token %} потом в views импортируем >from django.core.context_processors import csrf и оборачиваем в него контекст >return render_to_response("a_template.html", {'some_value_1':'some_value_1','some_value_2':'some_value_2'}.update(csrf(request))) Только что-то не взлетает. Я измучился.
Ну так изучи код страницы и посмотри инспектором в браузере что передается по сети в запросе/ответе и посмотри в чем причина и чего не хватает. А не копируй строчки в надежде что заработает.
>>508333 Ты хоть бы подсветку кода запилил. Расширение файлу сделал бы.
count1, count2 - хуёвые имена переменных. min_value, max_value - лучше.
На кой чёрт тебе делать pop из списка? На кой тебе вообще держать такой список? Циклы какие-то с невнятным перебором. Можно же было просто назначить новые min/max_value и спрашивать в новом диапазоне.
Файлы имеют расширение ".py". Хотя бы для подсветки синтаксиса.
У тебя поразительный говнокод, мне понадобилось тридцать минут, чтобы понять его. На самом деле понимать его необязательно и можно просто стереть и сказать ЗДЕЛОЙ ТАК, но мне хотелось понять, почему именно возникает ошибка. Возникает она из-за того, что ты итерируешься по большему листу, чем задаётся игроком. То есть если интервал 1..3 (три элемента в листе - 1, 2, 3), то оно делает цикл for по 0..3 (0, 1, 2, 3) и пытается сравнить несуществующий четвёртый элемент из старого интервала с числом. Даже если исправить, всё равно код поломан и возникнут другие ошибки - там ещё изменение листа в процессе итерации по нему происходит и переменных куча лишних. Так что ЗДЕЛОЙ ТАК: http://pastebin.com/L8X7DyaY В смысле как зделой. Просто прочитай и разберись, как работает. Раскомментируй необязательные стейтменты в начале лупа, если хочешь.
>>508346 >>508376 Спасибо за рекомендации, советы и замечания, обязательно их учту. Да, код ослоебский, но я все же стараюсь, что-то строить хоть и из грязи. Сам не знаю зачем я полез в этот список, даже стало немного стыдно за такую глупость. Формально я уже абитуриент, а питон мой первый язык. Еще раз спасибо!
>>508341 >>508376 > PySide Скачал qt, установил get-pip.py скачал PySide-1.2.2.win-amd64-py3.4.exe и она ругается, что не может найти у меня питона. Хотя питон 3.4 К тому же в установочнике написано "access the complete Qt 4.8 framework" Значит, ли это, что мне нужно скачать 4.8 дополнительно с 5.4?
>>508424 Что за инсталлер, откуда? Гет-пип сам пип устанавливает, а он уже давно в дистрибутиве питона есть. У меня 32-битный питон и 64-битная система. Файл назывался так: PySide-1.2.2-cp34-none-win32.whl
Приветствую. Я к вам опять с задачкой для школьников. Выручайте. Звучит она так:"Дана последовательность целых чисел, заканчивающаяся числом 0. Выведите эту последовательность в обратном порядке. При решении этой задачи нельзя пользоваться массивами и прочими динамическими структурами данных. Рекурсия вам поможет."
Вот что сделал я: def raz(): n = int(input()) if n == 0: print(0) else: print(n) raz() print(raz())
Всё вроде работает, НО. Но последним значением возвращает "None". Как быть, господа?
>>508549 Скомпилировал, но, во-первых, у Вас пропадает ноль из последовательности, во-вторых, по прежнему последнее выходное значение - "None". Но вы помогли мне найти ошибку. Неясно зачем, но я принтовал функцию, когда её нужно было просто выполнить. Спасибо за отзывчивость.
>>508664 Чем дальше ты уходишь от хелловорлдов, тем больше придется пердолиться с вендой. Сириусли. Это справедливо для всех языков кроме микрософтовских. Посмотри как рубисты на венде страдают, и прямым языком говорят - сноси ее, ставь макось, линукс, что угодно. Или пхпшники. У этих вообще огромный гайд по тому, что делается в две команды. Ты вон аж мсдос притащил, и протухший питон, 2.2, епта, 2002 год! Феерическая наркомания.
>>508687 >пердолиться с вендой Лолшто? Пердолятся как раз с пинусом. Не вижу никакой принципиальной разницы если пишешь простенькие скрипты, и тебе не нужны всякие йоба-нжинксы и линуксовские утилиты. Хуй его знает что там у рубистов, но всякие пхп и пистоны там вроде нормально живут.
>>508704 Ты чо ебанутый? Я вообще мимокрокодил, и всего вашего диалога не читал, высказался только по поводу того поста, на который собственно ответил. Суть вот в чем - проблема не в осях, а в кривых руках ее использующих. Для меня нет такой задачи, которая бы принципиально упиралась в выбор оси, и если надо будет, то и на винде буду спокойно писать.
>анон, как запустить хуйнянейм под винду, анон, как сделать установить пакетнейм ноды/питона/руби под винду, анон, я делаю pip install python и питон сам себя найти не может Чот все треды этим говном забиты. За этот тред уже второй или третий пассажир такой.
>>508708 Да нет, зачастую помимо рук проблема еще и в осях. Потому что gem/pip/npm и third-party библиотеки под виндой работают как говно. Даже в документации частенько бывает открытым текстом, что фича works only on osx, bsd and linux.
>>508709 Тут ещё такой эффект, что линуксы используют более самостоятельные пользователи. И задавать вопросы о том, как поставить пакет через пип они не станут задавать в етом итт тхреаде.
>>508249 Ну не стукай, пожалуйста Постояно так делаю как ты написал. Считаю тех кто взялся изучать джанго, надо резко перебать в щи и посадить за изучение протокола http/https.Посмотрел лекциюю по http и для меня прояснились некоторые моменты из книги. До этого тыкал наугад, это было сродни блядь методички по алхимии, что то происходит, но что имено - понимашь слабо. За что и не люблю веб, клубок технологий который практически невозможно изучить быстро.Но это едиственная область в которую еще могут всунуться новички. Мимо-другой анон
каффе собрал, тесты прогнал, модуль куда надо запихнул, пытаюсь запустить скрипт и:
(.env)➜ cnn-vis git:(master) ✗ python cnn_vis.py Traceback (most recent call last): File "cnn_vis.py", line 9, in <module> import caffe File "/Users/[user]/anaconda/caffe/__init__.py", line 1, in <module> from .pycaffe import Net, SGDSolver File "/Users/[user]/anaconda/caffe/pycaffe.py", line 13, in <module> from ._caffe import Net, SGDSolver ImportError: dlopen(/Users/[user]/anaconda/caffe/_caffe.so, 2): Library not loaded: @rpath/libcaffe.so Referenced from: /Users/[user]/anaconda/caffe/_caffe.so Reason: image not found
Изучаю по-немного джангу и вот так вышло что мне понадобился вот этот пакет django-endless-pagination. Как отразить что проект зависит от этого пакета? В пыхе в каких-нить Yii2 просто добавил бы в composer.json строчку и забыл. Потом просто скопировал проект и запустил composer update и все зависимости установлены. Как разруливают вопрос на джанге?
>>508982 Есть же официальная документация, там по последней версии (хотя я бы рекомендовал на пистоне 2.7 пока посидеть если что-то серьезное и быстро_развивающееся).
>>508990 Ну это книга 2008 года, джанга с тех пор изменилась существенно. Хотя если ты пойдешь поддерживать систему 5-летней давности, написанную на старой версии, то книга прокатит. В общем ищи новей книгу.
>>509002 >The End Of Life date (EOL, sunset date) for Python 2.7 has been moved five years into the future, to 2020 Всего пять лет осталось. Даже 4.5. Это вообще ничто, посрать сходил - вышел - пять лет прошло.
>Вторая ветка еще третью переживет Если только гугл станет тащить вторую ветку сам, после окончания официальной поддержки. Только вот нахуй им теперь питон не упал, у них теперь Го. И Гвидо в гугле давно не работает, и ради них не почешется.
>>509007 Мне похуй, я делаю git clone и потом разбираюсь, что это я вообще такое скачал. И 99% года сделано во второй ветке. И этот код никуда не денется.
>>509008 >99% Из 2006 пишешь? Я с кодом под 2.7 давно не работаю. Последний раз было год назад, охуел с доисторической версии, сделал этому говну 2to3, поправил юникод и воткнул в свой проект. Буду я еще даунгрейдиться, ага.
>>509021 "Мне похуй, я делаю git clone и потом разбираюсь" Гвидо в принципе мудак тот еще (по сравнению с Матцем), но сломать обратную совместимость было феерией мудачества. Отсюда и страдания.
>>509025 Ну не знаю я как там на ваших маках этот лабрари пэф прописывается, сделай симлинк в /lib или куда там, где система стопудово будет искать. Вообще, попробуй скачать caffe с гитхаба и собрать по-человечески. У меня вообще проблем не было с запуском питона из папки caffe/python, даже пути не фиксил.
>>509029 >Ну все, побежал переводить все обратно на 2.7 Я бы на месте Гвидо закончил со вторым питоном еще лет пять назад. И ебитесь как хотите. А то развел сюсюканье со всякими даунами, и тянется это говно, и тянется.
>>509031 Еще раз мне похуй, куда ты что будешь переводить. Мне не похуй, куда будут переходить 90% проектов на гитхабе. Если мне нужен модуль, я буду использовать ту версию, с которой у меня будет минимум телодвижений. Какую-то лингвистику я делал в третьем, потому что меня заебали проблемы с юникодом во второй Но мне тогда повезло - pymorphy есть для обоих версий. А если бы Гвидо знакончил со вторым питоном, то быстро бы закончился или Гвидо, или питон.
>>509033 Ну вот поясни. Мой проект под 3, а либа под 2. Что теперь, предлагаешь за четыре года до смерти 2.7 переводить все обратно, потому что какой-то ленивый пидор не осилил спортировать? Или писать НОВЫЙ проект в 2015 году на старом питоне? Может еще перл предложишь? Или делфи?
>А если бы Гвидо знакончил со вторым питоном, то быстро бы закончился или Гвидо, или питон. Манямирок. Раз уж у Гвидо нашлись яйца сломать совместимость и никто не умер, то мог бы найти еще раз и прибить второго. Полумеры какие-то.
>>509035 Ну сделай симлинк туда где увидит. Заработает, будешь искать, куда его прописать. Вообще это не совсем релейтед к питону. Кстати, почему .so а не .dylib?
>>509033 >Мне не похуй, куда будут переходить 90% проектов на гитхабе А куда они могут перейти? Со временем они перейдут либо на 3, либо нахуй. Естественный процесс отмирания ненужного, копротивляться бесполезно.
>>509041 Никуда они не будут переходить, потому что нахуй никому не нужно в это вкладывать время и силы. В 2009 году я купил книжку именно по третьему питону, это был первый диалект, который я выучил. На дворе 2015, а разговоры о том, что двойка умрет не прекратились. Тебе, скорее всего, в 2009 было лет 15.
>>509043 >Никуда они не будут переходить Ты еще забастовку против второго питона устрой, наркоман. И Гвидо поясни за какой версией будущее. Джанга перешла, киви переходит, https://python3wos.appspot.com/ - становится зеленей и зеленей. На втором остается только забытое говно.
>>509050 Гвидо - мудак, оказавшийся со своим пыхом в нужное время в нужном месте. Так-то язык откровенно хуевый. Поэтому его мнение меня вообще не интересует. Что касается библиотек, они пытаются захватить долю рынка. На самом деле я тебе расскажу, как будет. К версии 3.X вернут обратную совместимость. И все.
>>509041 >А куда они могут перейти? Со временем они перейдут либо на 3, либо нахуй. Red Hat видел когда-нибудь? Debian? CentOS? Будут вручную патчи на 2.5 бэкпортить и никуда не перейдут.
Пишу тебе с дебиана. И вот смотри-ка, официальный анонс по переходу дебиана на py3 - https://lists.debian.org/debian-devel-announce/2015/04/msg00005.html И не просто заменят дефолтную версию как арч когда-то, а портируют все проблемные места. >When you see Python 2 - treat it as legacy! Please encourage porting!
Сап, пихонач. Помоги советом с Жангой. Решил я однажды сделать себе объекты, доступные глобально во всех шаблонах. И охуел. Сделал всё, как сказано на оф. сайте, нихуя не работает. Гуглил всё что можно, ничто не помогает (примеры устаревшие). Предполагаю, что проблема в том, что в 1.8 распидорасили структуру шаблонов, и например выпилили context_instance из render_to_response. Но в 1.8.2 пофиксили бы уже давно такие вещи, либо в доках отразилось бы, так что хз. Вот мой эталонный (но почему-то не работающий) код: http://pastebin.com/Hpzrz64B Когда страница грузится, тэги вида {{ lalki }} просто игнорятся как нулевые. Блджад, лютый БАГОР из-за этой хуйни. Жанга 1.8.2, пихон 2.7.6 (да-да, двойку приходится юзать из-за не переписанных либ, которые оч нужны)
>>509360 Вот когда ты сам захочешь тест написать. Тогда. Лично моё мнение что тесты это вещь не для всего на свете. Именно с точки зрения эффективности и профитов, технически конечно можно для всего тест написать. Тесты хороши для отдельных функций, желательно не имеющих сторонних эффектов, которые делают нечто сравнительно сложное. Ещё неплохо писать тесты под закрываемые баги, других способов сразу увидеть регрессию нет.
>>509360 >Как научиться правильно все тестировать? Нужно тестировать только бизнес-логику. Сначала пишешь тест бизнес-логики, потом код, потом рефакторишь.
анон, написал тут функцию, которая разбивает строку на слова и возвращает лист тьюплов, содержащих слово, индекс начала слова в стоке, индекс конца слова в строке. Такой вот аналог встроенного string.split(), содержащий информацию о положении слова в строке. Функция работает, но она какая-то длинная и некрасивая. Может подскажешь как ее лучше реализовать? http://pastebin.com/uS6WigRh
>>509705 >string.split() >def split(string): 1. Свою функцию не стоит называть так же как встроенная в язык. 2. string, result, char - плохие имена для переменных. 3. result = list() - наверное понятнее будет так result = []. 4. Стандартный отступ в 4 пробела. И вообще https://www.python.org/dev/peps/pep-0008/ http://pythonworld.ru/osnovy/pep-8-rukovodstvo-po-napisaniyu-koda-na-python.html 5. Последняя строка вроде как ничего не выполняет split("I am god!") == [('I', 0, 1), ('am', 2, 4), ('god!', 5, 9)]? Сравнение без вывода результата? 6. Коментарии? Строки документирования?
>>509754 >1. Свою функцию не стоит называть так же как встроенная в язык. Я и не называл. >>> split("I am bitard")
Traceback (most recent call last): File "<pyshell#10>", line 1, in <module> split("I am bitard") NameError: name 'split' is not defined
>2. string, result, char - плохие имена для переменных. Это еще почему? Вот str и chr действительно неудачные. А против result я совсем не понимаю что ты имеешь?
>4. Стандартный отступ в 4 пробела. Мне он кажется слишком широким. 2 пробела в саблайме смотрятся норм. Если надо будет, в финальной версии подправлю.
>6. Коментарии? Строки документирования? Да ладн? Неужели настолько говнокод, что без комментов не понятно?
>>509767 Ну да. Вероятность получить слово "ЖОПА" 1 из 923521. А тебе понадобилось только 589831 попыток. Алсо, сколько времени заняло? http://pastebin.com/tU6ze8KZ
# Personal Greeter # Demonstrates getting user input # Michael Dawson 1/13/03 name = raw_input("Hi. What's your name? ") print name print "Hi, " + name raw_input("\n\nPress the enter key to exit.")
Его цель, я так понимаю, чтобы пользователь по запросу программы ввел свое имя в терминале
делаю файл 2.py:
name = raw_input('Please enter your name') print name print 'Hi,' + name raw_input('\n\nPress any key to exit')
Выполняю cd /home/user python2 2.py
Пишет: /usr/bin/python2: can't find '__main__' module in '2.py'
>>509782 Крч, разобрался. Я писал код в ЛибреОффис, а потом сохранял под расширением .py, но там, видимо, дохуя невидимого форматирования, которое сбивает код.
Сделал в блокноте, там plain text, все заработало. Алсо, как сделать абзац? В примере автора Имя нужно вводить сразу за запросом на той же строке: What's your name?Peter или What's your name? Peter
А мне абзац охота.
Решил этот вопрос путем трипл квота (''' What's your name? ''')
ГПСЧ Линейный конгруэнтный метод — один из методов генерации псевдослучайных чисел. Применяется в простых случаях и не обладает криптографической стойкостью. Входит в стандартные библиотеки различных компиляторов. http://pastebin.com/88cvfNhV
>>509790 А что такого? Ты в чем пишешь? Я на линуксе, если что.
>>509834 Доступные в интернете редакции Довсона написаны по второпитониусу. Алсо, в прошлом треде аноны говорили, что второпитониус до сих пор является главным питоновым языком, несмотря на наличие третьего.
>>509845 >Доступные в интернете редакции Довсона написаны по второпитониусу. ># Michael Dawson 1/13/03 >/03 2003 года-то? Не удивительно. Ты бы еще по глиняным табличкам питон учил.
>>509847 Третья (последняя) редакция Довсона датирована 2010, есть только на русском языке (переведена в 2014), и я ее сверяю по содержанию регулярно. Особых различий кроме input <-> raw_input, print ' ' <-> print (' ') нет.
Довсона мне предложили в треде. Ты считаешь, надо что-то другое штудировать?
python3 Скорее всего, вас любезно поприветствует python 3:
Python 3.4.0 (default, Apr 11 2014, 13:05:11) [GCC 4.8.2] on linux Type "help", "copyright", "credits" or "license" for more information. >>> Если это так, то можно вас поздравить: у вас уже стоит python 3. В противном случае нужно установить пакет python3:
sudo apt-get install python3 Либо через mintinstaller / synaptic / центр приложений ubuntu / что вам больше нравится.
В python для linux нет предустановленной среды IDLE. Если хотите, её можно установить отдельно. Пакет называется python3-idle.
Однако, её установка не является обязательной. Вы можете писать в своём любимом текстовом редакторе (gedit, vim, emacs...) и запускать программы через консоль:
python3 path_to_file.py Теперь вы можете написать первую программу (хотите, пишите в IDLE, хотите - в своём любимом текстовом редакторе).
>>509864 Зелень, ты опять выходишь на связь? Офис это офис, во всех офисах овердохуя фортирования которое нужно только для офиса, но которое может знатно поднасрать исходным кодам. geany/gedit самые простые и самые богатые по фичам редакторы плейнтекста, что тебе и нужно. Есть в репах. Я бы посоветовал vim, но ты дно какое-то.
Дальше. По второму питону. Ты серьезно хочешь учить технологию, которую закопают через 4 года? Только третий.
>>509877 Нельзя, блять. Если я узнаю что учишь по второму - вычислю тебя по ойпи. приеду и заставлю дрочить мой питон твоим анусом.
А если серьезно. Ну, блять, как-то странно нюфагу вкатываться в старую версию языка, когда весь мир во всю переходит на новую. Можешь конечно, если ты такой упоротый.
>>509890 Ничуть не игнорирую. На моей картинке написано, что ЛибреОффис - одновременно и текстовый редактор, и текстовый процессор. По твоей ссылке о ЛибреОффисе не говорится, поэтому противоречия нет.
>>509872 >Поддержка макросов и плагинов на языке программирования Python; Удобно же, для среднестатистического посетителя этого итт треда будет в самый раз. Удобные фичи в виде залива файла по (s)ftp по хоткею, куча прочих плагинов, и все на питоне. Емакс это отдельная тема, сам понимаешь, что многим не понравится, ибо на любителя.
Анчоусы, кто сможет помочь? Нужно набросать небольшой код Суть такова: Нужно авторизоваться на mail.ru и начать новое письмо. Заполнить 3 поля и все. Все это должно работать на selenium + phantomjs Могу подкинуть деньжат если че
Второпитониусы, почему с арифметической ошибкой считает последнюю операцию?
x = raw_input('Enter X\n') y = raw_input('Enter Y\n') z = raw_input('Enter Z\n') f = x + y + z print 'Totals:', f raw_input('Press any key to continue') #here starts the next part x = raw_input('Enter X\n') x = int() y = int(raw_input('Enter Y\n')) z = int(raw_input('Enter Z\n')) f = x + y + z print 'Totals:', f raw_input('Press any key to exit')
>>510287 >x = raw_input('Enter X\n') >x = int() Из-за этой хни выше, должно быть так: >y = int(raw_input('Enter Y\n')) >z = int(raw_input('Enter Z\n'))
>>510340 >>510344 >f = x + y + z x = int() значит х всегда равен 0. Пользователь вводит x=1 --> x = raw_input('Enter X\n') y=2 --> y = int(raw_input('Enter Y\n')) z=3 --> z = int(raw_input('Enter Z\n')) f=1+2+3=6 А у тебя х=0, т.к. x=int() и f=5.
>>510363 Так нет никакой ошибки. x (str) = raw_input... # = some string x = int() # = 0
...
f = 0 + .. + ...
Алсо, не я вопрос задавал, я отвечал. >почему с арифметической ошибкой считает последнюю операцию Нет ошибки, потому что x = int() = 0, тот кто задавал вопрос - просто обнулил "x = raw_input('Enter X\n')"
>>510533 А почему именно фантом и селениум? Хочешь эмуляцию человеческих тыканий? Впервые про них слышу, может не ту инфу нагуглил. А причем тут питон вообще не понял. Если эти твои йоба-инструменты не принципиальны, я бы и бесплатно сделал, только задачу уточни.
>>510549 Понял я что такое селениум. Но не понял зачем там фантом, без него можно обойтись. В общем, если с этими йобами, то бесплатно не буду, лень разбираться в том что не интересно, за просто так. Бесплатно могу накидать программную авторизацию и отправку писем через сервис, либо гораздо проще - напрямую через smtp
>>510556 Да, все правильно ты сказал, про эмуляцию. А фантом, это что бы экземпляр браузера не запускался. По сути работа выполняется та же самая, только браузер не стратует.
>Бесплатно могу накидать программную >авторизацию и отправку писем через сервис А что за сервис?
>>510560 > А что за сервис? > Суть такова: Нужно авторизоваться на mail.ru
Я подумал что тебе принципиально отправить письмо из веб-морды mail.ru, но смысла в этом не вижу, потому что есть способы отправить письмо гораздо проще. Другое дело, если ты указал майлсру только в качестве примера, и цель у тебя просто на примере научиться пользоваться своими йобами.
>>510560 > По сути работа выполняется та же самая, только браузер не стратует. Ээээээээм, а зачем тогда тебе селениум? Ты что-то там слишком мудреное придумал. Давай объясняй по порядку, зачем тебе такие извращения?
>>510573 Эх, ничего то ты не понял. Незачем обрабатывать жс, вангую что там обычные аякс запросы на скрипт, который отдает json. Сейчас будет тебе вариант без йоб, и письма будут уходить с твоего акка. 20 минут жди.
>>510580 Нихуя себе. Было бы конечно здорово. Но когда я пытался проделать с разными либами, у меня в исходном коде было что то типа "Ваш браузер не поддерживает JS" и формы с инпутами не было
>>510590 Слушай, а где-то говорится, как питон работает со смежными дисциплинами? Потому что ни в одном пособии я не вижу описание работы питона с СМТП.
Клиентское приложения на Django уебанство или нет?, типа пользователь запускает startdjango.exe, переходит на 128.0.0.1:8000 и там работает.Нужен доступ к фс пользователя и при этом желательно соблюдать бесшовность с основным веб ресурсом.
>>510669 Не делай так. Можешь заюзать Twisted, там есть модуль Twisted.Web, сам юзал. Или использовать wsgi-модуль, тогда из twisted получишь доступ ко всем плюшкам django.
Привет, анон. Попробовал сегодня поиграться с написанием нейронной сети, вот результат http://pastebin.com/qrSDtrdE
То, что долго работает - это я прекрасно понимаю, считать количество операций я умею. Но вот я вообще не понимаю, что за херня происходит с потреблением памяти. Читаю файл размером в 80 метров, вот, что пишет профайлер:
Line # Mem usage Increment Line Contents 48 162.855 MiB 136.684 MiB for line in f: 49 162.855 MiB 0.000 MiB tests.append(np.array(list(map(int, line.split(','))))) 63 292.574 MiB -77.512 MiB tests.clear()
Какого хера питон куда-то скушал мои 60 метров памяти, кто-нибудь может мне объяснить?
не обращайте внимание на говнокод, я его еще не начинал причесывать
>>511192 Молодец! Реализация алгоритма просто загляденье, код оформлен в лучших практиках. Удача, что такой талант зашёл на сасачь! Продолжай в том же духе, мы с тобой свяжемся. пошёл нахуй говноед
>>511258 Ну из песни слов не выкинешь: 1) Создать матрицу mxn 2, 3) Заполнить нулевую колонку и нулевой столбец матрицы начальными значениями пенальти за пробелы. 4) Заполнить матрицу. 5) Отследить последовательность, котоя даст максимальный счет. Можно совместить с пунктом 4, но получаетя как-то некрасиво и сложно дебажить.
Анон, где есть списки для чего НЕ стоит использовать питона? Везде одни плюсы, рассказы о том, что можно космические корабли с его помощью скрипт-для-заказа-пиццы.py выводить на орбиту и крузисы писать на собственных движках. Вчера я начал ебаться с XML, блядь, все глаза на жопу вылезли. Вот только проснулся, всю ночь мануалы читал. И только под утро понял, что, блядь, в asp, который я знаю на начальном уровне, я нужные мне задачи решу за 10 минут. Нет, мне питон всё равно был нужен для удобного гуя, но, ёбанный стыд же. Очень хочу адекватных ответов или ресурсов на эту тему. inb4: кривые руки, говнокодер, питон универсален и всякое другое утячество
Вопрос по башу и питону. Есть задача: проверить, имеется ли определённый модуль в установленном на компьютере питоне 3 и, если нет, проверить второй питон. (Таким образом выберется версия питона, которая дальше будет использоваться для запуска всяких разных других скриптов.)
Возможно ли это сделать без запуска скрипта, содержащего try: import module print("OK") except: print("Nope") ?
Если нет, то возможно ли как-то эти 5 строк кода вписать в переменную в баше и там же сразу выполнить, записав результат в переменную? Что-то типа: code="moy multistrochniy kod tut" module_ok=`python3 $code` И в module_ok запишется либо "OK", либо "Nope". (Так, разумеется, не работает.) Т.е. без необходимости создания (и потом удаления) пятистрочного файла проверки (что я сейчас и делаю).
>>512066 Ну скажем ты создашь питоний скрипт, который импортирует что-то из третьего питона. И возвращает 0, если все норм и 1, если нет. Тогда баш скриптом ты сможешь проверить выход этой программы и сделать выводы.
А еще можешь писать не на баше, а на том же питоне все скрипты.
>>512092 >Ну скажем ты создашь питоний скрипт, который импортирует что-то из третьего питона. Эм, я как бы именно это и делаю. Вопрос-то в другом. Можно ли обойтись без создания файла?
>>511916 Вот ещё оттуда же. Зачем? Зачем просто менять точку на подчёркивание, Карл? Разве это не просто лишнее действие которое замедляет исполнение программы?
>>512164 По идее да это немного быстрее, не надо каждый раз эту функцию искать в dict объекта, если он её вызывает миллиард раз может какой-то профит быть. Но больше похоже на говнокод.
Супец. Мне нужно написать скрипт, суть такова: отправлять http запрос, сформированный из того что ввёл юзер в текстовые поля. Получать json, парсить урлы и сохранять на диск содержимое урлов. Так же скрипт нужно будет упаковать в исполняемый exe. Решил что питон подходит для задачи. Какие либы курить?
Блядь. Почему юникод в питоне - это настолько больно? 2015й год на дворе, вашу мать. >>512233 # coding: utf-8 В самом начале файла. Но наебёшься ты с ним.
питонисты, поясните мне, что вы делаете, когда вам надо в массив-конкаренси? я так понял, у вас там есть многострадальный GIL, из-за которого питон суть однопоточный.
алсо я так понял, у вас там еще и беда с либами юзерспейс-тредов. кроме гевента нихуя нет, а гевент по 2 питон.
я не тролль, просто ленивая жопа и в гугле зойбанили
Даю задачу посчитать 10% от суммы и вывести на экран: percentile = raw_input('Enter raw number') / 100 * 10 print percentile
Есть ли какой-то preset оператор для высчитывания процентов? Умножение, вычитание и прочая лабуда есть. А процентов нет? Потому что проценты хуячат либо как модули (остаток), либо как вставка всякого говна вместо назначения вариаблей (%s, %f, %d и т.д.).
А как чтобы подобно инженерному кальку? Ввел исходное значение, бздынькнуль оператор % и посчитал.
>>512255 >PyPy is a fast, compliant alternative implementation of the Python language (2.7.9 and 3.2.5)
ну не очень решение. вангую там еще куча багов к тому, что оно на 3 версии отстает от апстрима.
алсо интересует, что вы делаете, когда у вас нет возможности валить с CPython? вот я такой пишу на 3.5 и тут мне всралось запилить многопоточное приложение. мои действия?
>>512258 Кому нужны jit и микротреды, вполне себе решение. Третью версию и модули на С он ещё нормально не поддерживает, а вторая версия вполне рабочая.
Многопоточные числодробилки -- модули на С. Паралелльный IO -- asyncio и ему подобное.
На любую цифру вместо адекватных процентов код возвращает 0.0 Чому?
#coding: utf-8 #Антоша #this program is called Tipper #its purpose is to calculate 15 and 20 percent tip for an entered user-value #first we will require user to enter value. we'll use variqable at first.
rawnumber = raw_input('Enter please the raw number which you want tip to be calculated for\n') rawnumber = float() print rawnumber / 100 15 print rawnumber / 100 20
Щито ему блять не нравится. #coding: utf-8 #Антоша #this program is called Tipper #its purpose is to calculate 15 and 20 percent tip fpr an entered user-value #first we will require user to enter value. we'll use variqable at first. #enter the base price of a car
bprice = raw_input('Enter the base price of a car\n') bprice = int(bprice) tax1 = bprice 0,02 license1 = bprice 0,15 print 'THank you, the price will be ', bprice + tax1 + license1 + 100 + 180, 'dollars'
raw_input('\n\nPress')
>>>>> TypeError: unsupported operand type(s) for +: 'int' and 'tuple'
(инту перед лицензией и таксой прибавлять пробовал, отдельный вариабль для окончательной операции вводить - пробовол. все равно про эту "туплю" пишет)
>>512330 >>512352 Стал запускать в Ubuntu и вот такие болты на иконки, чаво делать, питоны?
root.iconbitmap("notepadik_list.ico") File "/usr/lib/python3.4/tkinter/__init__.py", line 1702, in wm_iconbitmap return self.tk.call('wm', 'iconbitmap', self._w, bitmap) _tkinter.TclError: bitmap "notepadik_list.ico" not defined
winHelp.iconbitmap("help.ico") File "/usr/lib/python3.4/tkinter/__init__.py", line 1702, in wm_iconbitmap return self.tk.call('wm', 'iconbitmap', self._w, bitmap) _tkinter.TclError: bitmap "help.ico" not defined
Так-так-так, поясните совсем ньюфагу, который пока решил просто посмотреть на язык на кодекадемии.
Я так понял, в питоне нет, в отличии от многих языков, каких-либо скобок для выделения блока кода, и это самое выделение происходит отступами? То есть допустим у меня есть участок кода из 100 строк, и тут мне понадобилось, чтобы он выполнялся лишь при каком-то условии (if что-то там), я не могу просто заключить его в скобки и дописать перед ним этот if, мне надо каждую строчку переносить правее? Или как, лол?
>>512792 Если ты дибил, то да. Нормальные ребята используют редакторы с возможностью индента нескольких строк по одному (sic!) нажатию таба. Алсо, нормальные ребята выносят блоки кода в отдельные функции, а не ебашут инлайново сто строк говнокода.
Как сделать чтобы доходило до 3200? Или только ручками округлять число? Есть к примеру 3132 записи, или любое другое число. Мне нужен цикл с шагом в 200, к примеру, но чтобы были захвачены все записи, а не 3000, в данном случае нужно округлить до 3200. Как это красиво сделать?
>>513142 Спасибо, это и нужно было. Если по простому, то в цикле "for x in xrange(0, 3132, 200)" последним числом было 3000, таким образом 132 значения проебывались. Поскольку шаг в 200, нужно было округлять до 3200.
>>513161 Я думал, суть статических методов класса в доступе к ним извне без создания объектов класса. А так они у меня используются только внутри класса, при внешнем вызове смысла не имеют.
Есть список: ['value_1', 'value_2', 'value_3', 'value_10', 'value_100', 'value_500'] Как проще найти самое большое value? У меня вообще какой-то глупое решение пришло в голову - перебрать весь массив, реплейснуть "value_", засунуть в новый и потом отсортировать результат, но это гулпо, а как по-другому хз
>>513291 На авторство не претендую, было слизано с какого-то бложика в одном из проектов: def get_ip_range(first_ip, last_ip): ip_range = [] first = list(map(int, first_ip.split('.'))) last = list(map(int, last_ip.split('.'))) cur = first ip_range.append(first) while cur != last: first[3] += 1 for x in (3, 2, 1): if cur[x] == 256: cur[x] = 0 cur[x-1] += 1 ip_range.append('.'.join(map(str, cur))) return ip_range
Анон, вопрос от нубакуна. Моя программа состоит из функций, созданных мною. Мне нужно, чтобы после вызова любой функции моя глобальная переменная менялась на один. Как это сделать?
Есть парсер на пикрелейтед. 1. Как нормально задать переменные line1 и т.д.? 2. line4 выдает результат без перевода строки. Как исправить? Нихера не знаю питон
Реально ли на питоне написать торрент-клиент, ну или хотя бы программу, которая будет смотреть в dht? Если да, то что курить?
Отправляю пикчу requests.post(server['upload_url'], files={'photo': open('img.jpg',"rb")}) но перед этим скачиваю пикчу с другого сервера, так вот, можно обойтись без сохранения/открытия пикчи в файл? передавая скачанные бинарные данные из urlopen('пикча') я сосу хуйца
>можно обойтись без сохранения/открытия пикчи в файл? requests.post(server['upload_url'], files={'photo': requests.get(img).text}) Вообще хуй пойми, зачем ты ее сохраняешь, если она тебе не нужна.
Как ты думаешь, что происходит в результате: >open('img.jpg',"rb") >open >rb >read bytes >READ BYTES
>>514049 >Ты дурной какой-то Возможно. >Вообще хуй пойми, зачем ты ее сохраняешь, если она тебе не нужна. >Как ты думаешь, что происходит в результате: Я же написал - передавая скачанные бинарные данные из urlopen('пикча') я сосу хуйца Сервер не получает пикчу, с requests.get(img).text та же хуйня.
>>514057 Если сервер там что-то не получает, значит ты что-то неправильно в процессе попытки передать туда данные из переменной. Выделю для тебя: requests.get(img).text
>>514057 Полагаю, проблема может быть в том, что ты пытаешь urlopen'овский HTTPResponse в request'вском аргументе "files" передать. Используй data же и передавай напрямую байты. Навреное, должно работать, лень пробовать.
Прошлый: