• Проблема с операторами if,elif в цикле?

    @pcdesign
    Имеет смысл отказаться от этих бесконечных if, else, а использовать словарь dict со всеми вариантами.
    Тогда и ошибка сама исправится, да и сам код станет в 10 раз короче.
    Ответ написан
    Комментировать
  • Для чого призначена бібліотека pyHook.py?

    sim3x
    @sim3x
    Іди вчи англійську

    https://pypi.python.org/pypi/pyHook

    pyHook: Python wrapper for out-of-context input hooks in Windows

    The pyHook package provides callbacks for global mouse and keyboard events in Windows. Python applications register event handlers for user input events such as left mouse down, left mouse up, key down, etc. and set the keyboard and/or mouse hook. The underlying C library reports information like the time of the event, the name of the window in which the event occurred, the value of the event, any keyboard modifiers, etc.

    https://translate.google.com
    pyHook: Python оболонка для вийшли з контексту вхідних гачків в ОС Windows

    Пакет pyHook надає зворотні виклики для глобальних подій миші та клавіатури в Windows. додатки Python реєструвати обробники подій для введення даних користувачем подій, таких як лівої кнопки миші, лівої кнопки миші, ключ вниз і так далі і тому встановіть клавіатури і / або миші гак. , Що лежить в основі C звіти бібліотеки інформації, як під час проведення заходу, назва вікна, в якому відбулася подія, значення події, будь клавіатури модифікаторів і т.д.
    Ответ написан
    Комментировать
  • Что за стиль вертки (скрин)?

    @Svidrigaylow
    Куплю гараж
    Говнокод, сэр
    Ответ написан
    Комментировать
  • Как открыт ссылки с кириллице используя библиотеку urllib.urlopen в Python 3.4?

    sim3x
    @sim3x
    stackoverflow.com/a/9345102
    >>> urllib.quote_plus('string_of_characters_like_these:$#@=?%^Q^$')
    'string_of_characters_like_these%3A%24%23%40%3D%3F%25%5EQ%5E%24'


    лучше так
    In [1]: import requests
    In [2]: r = requests.get('http://example.com', params={'п': 'лол'})
    In [3]: r.url
    Out[3]: u'http://example.com/?%D0%BF=%D0%BB%D0%BE%D0%BB'
    Ответ написан
    1 комментарий
  • Как правильно перебрать 10 li и задать каждому разные свойства?

    khipster
    @khipster
    Конечно псевдокласс :nth-child это плохой тон. Пользователи будут открывать код страницы, увидят его и перестанут пользоваться вашим сайтом. Одного JavaScript для этой задачи будет тоже мало, нужен JS фреймворк Angular 2.0 + Bootstrap + мощный севревный скрипт так же на основе хорошего фреймворка, PHP оставьте для делетантов, используйте модный многопоточный Go.
    Ответ написан
    4 комментария
  • Python, django... поможете разобрать кашу в голове?

    Советую учить Python 3.4 / 3.5 и Django 1.8 (LTS) / 1.9 (последняя стабилная версия)

    Пригодится ООП, в т.ч. множественное наследование + декораторы + знания о том, как работает система импортов. Иначе можно набить шишки.

    Как учить зависит от уровня знания английского.

    Если с ним все в порядке, то прямая дорога на официальные сайты python и django за документацией. Для начинающих есть туториалы, по ним отлично можно вкатиться.

    Если с английским плохо, то на djbook.ru есть перевод документации по Django.
    Ещё рекомендую Django girls tutorial(на русском). Несмотря на ориентированность на девушек, весьма годная штука.

    Из must have книг: по Python -- Саммерфилд(есть на русском, по ниму неплохо учить язык). По фреймворку -- Two Scoops of Django. Ну и Совершенный код, разумеется.
    Ответ написан
    5 комментариев
  • Инстаграм написан на Python? Как так?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    А vk.com написан на PHP, как так? Ведь приложение есть под все OS.
    Ответ написан
    6 комментариев
  • Инстаграм написан на Python? Как так?

    fornit1917
    @fornit1917
    Инстаграмм это не только мобильное приложение. Это еще и серверное приложение с сайтом. Вот они то на питоне и написаны.
    Вот, если интересно, статья (правда уже старая) с описанием некоторых применяемых на сервере технологий и архитектурных решений https://www.insight-it.ru/highload/2012/arkhitektu...
    Ответ написан
    Комментировать
  • Как исправить ошибку при установки scrapy?

    Overdese
    @Overdese
    DevOps
    Scrapy не поддерживает 3ий питон doc.scrapy.org/en/latest/faq.html#does-scrapy-work...
    Ответ написан
    Комментировать
  • Проблема с клиентом на фрилансе?

    Jump
    @Jump
    Системный администратор со стажем.
    Это никак не проблема с клиентом, это явная проблема с исполнителем.
    Работа оплачена, а исполнитель шантажирует заказчика.
    За такое отрицательный отзыв он просто обязан поставить.
    Чтобы другие не нарвались.
    Ответ написан
    Комментировать
  • Как сделать красивый вывод словарей в консоль Python?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    pprint
    Ответ написан
    Комментировать
  • Как начать программировать микроконтроллеры на гаджеты? С чего начать?

    gbg
    @gbg Куратор тега Программирование
    Любые ответы на любые вопросы
    Ваш стек даром не нужен для гаджетов. Объясню почему. У меня есть часы Moto 360. Они работают 20 часов с момента полного заряда. Какой-то недоумок реализовал для них банальный таймер (включили - отсчет пошел) на java. Работа этого таймера садит батарею за ДВА ЧАСА. Программисты, которые учились на высоко-высоко уровневых языках ничерта не понимают в том, что они делают, применяя на себе закон дырявых абстракций (отправляйтесь читать блог Спольски) в полную силу. Хороший программист сделал бы это на нативном C, задействуя аппаратный таймер процессора часов и не выжирая батарею.

    Чтобы заниматься тем, что вы тут пожелали, начните хотя бы с месячного интенсива по C. Именно по C, а не C/C++. Когда будете понимать, что такое регистровая переменная и как параметры передаются в функцию - можно будет только лишь подумать о смене квалификации. Успехов.
    Ответ написан
    12 комментариев
  • Простая корзина на Django?

    @KIN1991
    Python, PHP developer
    Все просто при нажатии на кнопку купить, вам следует отправлять в сессию корзины id-ик картины, когда переходите к оформлению заказа просто делаете запрос к базе с выводом необходимой вам инфы по id-ам которые у вас есть в сессии.
    <a href="#" data-id="1">Название картины</a>
    Вьюха корзины
    def cart(request,id):
        if 'cart' not in request.session:
            request.session['cart'] = list()
        request.session['cart'].append(int(id))
        ....
        return ...

    Ну и вьюха оформления
    def checkout(request):
        cart = Images.objects.filter(pk__in=request.session['cart'])
        ....

    Как то так
    Ответ написан
    4 комментария
  • Как правильно оптимизировать urls в Django?

    shultais
    @shultais
    Обучаю программированию на Python и SQL
    1. Добавляете в модель поле, примерно так
    slug = models.SlugFiled(unique=True)

    2. Затем в urls укажите slug, например так
    url(r'^(?P<slug>[-a-zA-Z0-9_]+)$', 'article_detail', name='article_detail'),

    3. Ну и уже во вьюхе
    def article_detail(request, slug):
        article = get_object_or_404(Article, slug=slug)
        ...
    Ответ написан
    1 комментарий
  • Как выводить средства с UpWork на ООО, зарегистрированное в России?

    opium
    @opium
    Просто люблю качественно работать
    1. Открываешь ИП, к нему транзитный валютный счет. Рассчетный валютный счет можно открыть если желаешь сидеть в долларах.
    2. Делаешь wire трансфер с Upwork, уплачивая 30$ за перевод.
    3. После перевода деньги блокируются валютным контролем.
    4. Дальше два варианта, либо выбить из поддержки договор (что почти нереально), либо отдать в ВК публичную оферту (User Agreement, на который соглашаемся при регистрации) в биллингве, на каждой странице публичной аферты поставить свою печать, "Копия верна" и подпись (после этих действий ВК охотней примет публичную аферту, нежели просто распечатанный биллингв).
    5. На каждый денежный перевод нужен акт выполненных работ, тут два варианта. Либо предоставить в ВК скриншот трансфера из панели апворка (что филькина грамота, не каждый ВК примет это), либо запрашивать у поддержки "Act of acceptance", который будет подписан апворком и тобой, в нем будет указана сумма перевода. Act of acceptance выглядит внушительней, нежели скрин из панели.
    6. Дальше при каждом переводе предоставляешь новый Act of acceptance.
    7. Работаешь так до достижения лимита в 50000$, дальше нужно заключить паспорт сделки (что сложно, но реально, нужно трясти поддержку апворка). ЛИБО заключить новый "контракт" с Upwork, опять предоставив User Agreement в билингве (про схему с закрытием старой оферты и открытием новой вычитал на хабре, там чувак ставил номер контракта в шапке оферты, что позволяло "открыть" новый контракт, поменяв этот номер)
    8. Ну и работаем дальше, либо по паспорту сделки, либо по вновь открытому контракту.

    Забыл. Когда ВК подтверждает перевод, то тут 2 варианта. Либо эти даллары "продаются" с транзитного счета на рублевый счет ИП по курсу ЦБ на день продажи, либо переводятся на долларовый счет ИП. Но у нас есть налог на курсовую разницу, потому эти деньги лучше сразу вывести с долларового счета ИП на долларовый физика.
    Ответ написан
    18 комментариев
  • Как составить post запрос в python?

    valerium
    @valerium
    Изобретая велосипед
    Чтобы сделать POST запрос, используйте функцию requests.post().
    response = requests.post('http://example.com/', data={'key': 'value'})

    Через аргумент data передаёте словарь с переменными, если они нужны. В переменной response оказывается объект ответ, у которого есть атрибут cookies, который содержит словарь с куками. Передать эти куки в следующем запросе можно с помощью параметра (вот ведь неожиданно!) cookies.
    next_response = requests.post('http://example.com/', cookies=response.cookies)


    Вообще модуль request невероятно хорош, никогда не видел настолько интуитивного и удобного способа работы с HTTP. Чего только один метод .json() стоит!
    Ответ написан
    8 комментариев
  • Что не так с кодом?

    @CobaltTheTerrible
    Копипастю код на Python
    Ниже замечания, вопросы возникшие после того, как я пробежал за пять минут глазами выложенное по ссылке.

    Не про код:
    1. Не пользуетесь .gitignore. У вас в репозитарии есть README.md~
    2. В самом README.md стоит пользоваться разметкой markdown
    3. Что за коммит с мессаджем all?

    Про код:
    4. Как уже отмечали: большая простыня без разбиения на функции, которую зачем-то запихнули в функцию main.
    5. Код не следует PEP8 (поставьте себе какой-нибудь чекер и проверяйте код). В частности очень много длинных строк, которые читать очень тяжело, лучше бы код не в main засовывали, добавляя лишние 4 пробела на каждую строку, а обошлись вообще без функций.
    6. Комментариев про логику обработки файлов нет. Возможно, конечно, логика простая, но мне вникать, разбирая код, стало лениво.
    7. Код ниже может выкинуть эксепшен, если кто-то неправильно сконфигурирует скрипт. Почему не обрабатываете этот экспшен, хотя исключения paramiko ловите?
    list_with_path_to_file = DICT_WITH_SERVER[ip]
    Проверяйте что наконфигурировали в вашем скрипте. Гарантированно же при таком количестве настроек будут опечатки, забытые запятые и кавычки.
    8. Почему в одном случае вызов getcwd обёрнут в str, а вдругом нет? Это стоит пояснить комментарием, если str действительно нужен (в чём я сомневаюсь :))
    path_local = str(os.getcwd()) + '/logs/' + name_logfiles
    path_to_logs_parser = os.getcwd() + '/logs/' + name_parser_logfiles

    9. Раз уж импортировали модуль os, то почему бы не пользоваться os.posixpath.basename вместо
    name_logfiles = file_path.split('/')
    name_logfiles = str(name_logfiles[-1:])...

    10. Аналогичное замечание про os.posixpath.join
    11. Используйте string.format. Вместо
    print ('\nAll done! I will sleep next '+ str(TIME_FOR_SLEEP) +'  seconds' + '\n')

    print ('\nAll done! I will sleep next {} seconds\n'.format(TIME_FOR_SLEEP))

    12. Если так хочется if-ы запихнуть в одну-две строки, то пользуйтесь conditional expressions.
    if i - context < 0: j = 0
    else: j = i - context

    пребразуется в
    j = i - context if i - context >= 0 else j = 0
    # а то и вовсе пишите
    j = max(i-context, 0)

    13. Зачем вы сравниваете с False постоянно ваши переменные found_error и first_iter? Что мешает написать сразу if no(first_iter)? Зачем вы пишете if found_error == False: print '1' else: print '2' вместо более простого if found_error: print '2' else: print '1' ?
    14. Пользуйтесь контекстными менеджерами, list comprehensions. В куске кода ниже комментарий не нужен. Вы просто дублируете код.
    logfile = open(path_local, 'r')  # open file for read
    for line in logfile:
        logfile_list_old.append(line)
     logfile.close()

    Сравните с
    with open(path_local, 'r') as f:
        logfile_list_old.extend(f)


    Дальше уже стало лень писать. Если вкратце, то код очень плохой. Он отвратительно структурирован и никак не документирован. В довершение ко всему, он еще и не совсем pythonic.
    Ответ написан
    1 комментарий
  • Значение с базы на каждой странице?

    shultais
    @shultais
    Обучаю программированию на Python и SQL
    Добрый день, да можно с помощью Context Processors

    1. Создайте свой Context Processor, вроде
    from games.models import Game
    
    def most_popular_games(request):
        return { "MOST_POPULAR_GAMES": Game.objects.filter(active=True).order_by("-rating", "-id")[:5] }

    2. Подключите его в settings.py
    TEMPLATE_CONTEXT_PROCESSORS = (
       ...
        "download_games.context_processors.most_popular_games",
        ...
    }

    3. Пользуйтесь переменной в любом шаблоне, например
    {% for game in MOST_POPULAR_GAMES %}
        ...
    {% endfor %}
    Ответ написан
    1 комментарий