Ответы пользователя по тегу Python
  • Где научиться правильно писать код?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    Найдите опен-сорс проекты на питоне, попробуйте в них что-то улучшить, разобравшись что там написано.
    Без сравнения вы не сможете понять преимущество и недостаток разных подходов.
    Ответ написан
    Комментировать
  • Как работает веб-сервер и cgi скрипт?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    Веб сервер запускает CGI программу и передает в нее переменные окружения с данными, которые в HTTP запросе передавал клиент.
    В зависимости от того, на чем написан CGI это можно извлекать.
    Клиенту отправляется инфа просто - CGI скрипт ее просто пишет в stdout, веб сервер отправляет клиенту.

    Например для скриптов на perl, данные от клиента доступны через $ENV{'VAR_NAME'}, где VAR_NAME имя определенной переменной. Список можно глянуть www.oreilly.com/openbook/cgi/ch02_02.html

    Вывод скрипта должен начинаться с content-type, если вы выводите html-контент, то например
    print "Content-type: text/html\n\n";
    Затем обычный html.
    Ответ написан
    Комментировать
  • Вывод информации в консоль с заменой?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    \r\n пробуйте.
    Ответ написан
    4 комментария
  • Telegram: Как сделать отображение кнопок на IOS и Android одинаковым?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    Никак, это нужно либо модифицировать клиент на IOS и Андроид, к чему у вас нет доступа, либо слать текст, который везде влезает в кнопку.
    Ответ написан
    Комментировать
  • Как создать программу ставящую пароль на папку?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    Когда вы просто заходите в папку, чем вы это делаете?
    Вы это делаете проводником, а не вашей программой на питоне.

    Вы можете попробовать переписать проводник на питоне, добавив в него реализацию доступа по паролю.
    Но кто-то поставит FAR или DOS Navigator и получит доступ.
    Вы можете попробовать переписать проводник, FAR, DOS Navigator и все другие программы.
    Или уже если надежно, то переписать операционную систему, добавив в нее все функции, которые вам нравятся.

    Но думаю, что я достаточно ответил на вопрос, чтобы понять, почему питон не будет запрашивать пароль, если вы открываете файл не питоном, а другой программой.
    Ответ написан
    Комментировать
  • Как вычислить сколько км проехала машина?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    Рассчитать без дополнительного оборудования, которое будет недешевым - никак.
    Можно конечно при замене масла записывать показания тахометра для каждого клиента, но это не поможет вам слать клиенту напоминание.

    Просто предлагайте клиенту менять масло два раза в год, в идеале перед зимой и после зимы.
    Ответ написан
    Комментировать
  • Какой у вас алгоритм усваивания материала при чтении?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    Чтение - никогда не разовьет практику.
    Какие-то случайные примеры из книги, если вы просто берете и повторяете - они мало чем помогут.
    Пробуйте все примеры адаптировать под ваши нужды. У вас должно быть какое-то увлечение, какой-то проект, для которого можно было бы написать скрипты, софт - вот используя примеры из книги, адаптируйте их и пишите то, чем вы можете пользоваться сами.

    Где-то модерируете форум? Напишите на питоне скрипт, который лезет в базу и собирает оттуда какую-то интересную для вас статистику.
    Играете в игрушку - напишите на питоне доску почета и выводите ее в web через cgi
    Не хотите забыть о важных вещах - разберитесь с отправкой почты из питона, и шлите себе по расписанию СМС, или разберитесь с ботом телеграма на питоне и шлите уведомления в телеграм.

    То есть пишите на практике не просто чужие примеры, которые тупо копируются из учебника в блокноте, а генерируйте свой код. Тогда прочитанное в книге будет восприниматься не как голая теория, а как чей-то чужой опыт, который вы будете сравнивать со своим опытом, и развиваться.
    Ответ написан
    Комментировать
  • Какой выбрать язык для бэкенда мессенджера (Python/Java/Node.js)?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    "PHP для этого плохо подходит"
    Какой онлайн предполагается быть? У нас 100 тысяч пользователей отлично жило на fastgci c PHP и mysql.
    Потом сделали кластер для mysql, а для API так и не понадобилось.
    Ответ написан
    Комментировать
  • Стоит ли искать работу Python junior'ом на 1 месяц?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    В нормальную контору - только поиск, собеседования, оформление и знакомство с проектом займет 2-3 месяца, что не хватит даже на прохождение испытательного срока.
    Можете попробовать поискать на фрилансе.
    Но с такими сроками и отсутствием опыта - один месяц проще подработать не в айти.
    Ответ написан
    Комментировать
  • Как парсить сайт, использующий Ajax?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    Смотрите исходник страницы, берете в руки блокнот и калькулятор и ищете что тут за обсфукация
    Конкретно на этом сайте все просто:

    Находим вашу строчку с "Показать телефон":
    "<div class="toogle-button" id="show-phone_button" blst="313548" lst1="313548" lst2="0">Показать телефон</div>"


    Ищем, где используются эти blst, lst1, lst2 и находим
    function ShowPhones(e)
    {
    	var blst = $(e).attr('blst');
    	var lst1 = $(e).attr('lst1');
    	var lst2 = $(e).attr('lst2');
    	if (blst != "0")
    	{
    		$('.object-builder-phone').each(function ()
    		{
    			<b>ShowAttr(this, "blst", blst);</b>
    ...


    Ищем ShowAttr и находим декодер:
    function ShowAttr(e, attr, value)
    {
    	if ($(e).attr(attr) == "true")
    	{
    		var decrypt = value / 17;
    		var p1 = Math.floor(decrypt / 100);
    		var p2 = decrypt - 100 * p1;
    		var t1 = ("" + p1).substring(1) + '-' + pad(p2, 2);
    		$(e).text($(e).text().replace("...", "") + t1);
    		$(e).attr(attr, 'false');
    	}
    }


    вот и выходит, что blst="313548", делим на 17, получаеем 313548/17 = 18444
    разбиваем на две части, убираем первый символ, добавляем между ними дефис, получаем: 84-44

    Итого +7 495 626-... преобразовывается в +7 495 626-84-44

    P.S. Можно даже проследить логику программиста, который забавно оптимизировал форматирование первой двойки чисел - чтобы не вызывать дополнительно функцию pad для форматирования нулей, он просто добавил 10000, чтобы нули просто были, и их можно было взять через substring. Для второй двойки чисел так нельзя, поэтому там вызывается pad.
    Ответ написан
    Комментировать
  • Как получить месяц в именительном падеже на питоне?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    Падежей в питоне нет. Есть просто название месяца и аббревиатура (3 буквы).
    Хотите в падеже - создайте свой массив с названиями месяца во всех нужных падежах, и используйте номер месяца в качестве индекса.
    Ответ написан
    4 комментария
  • Порекомендуйте, на чём сделать backend?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    > хранить на сервере базы данных, но тогда каждый запуск скрипта означает ещё и обращение к серверу баз данных
    можно использовать memcached
    Ответ написан
    1 комментарий
  • Как сложить две строки состоящие из чисел?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    Судя по всему, первое значение - у вас строка, а второе - float
    И соответственно float автоматом преобразовывается в 0.11

    Вы 0.11 как строку добавляйте, а не как число и все будет путем.
    Ответ написан
    2 комментария
  • Подойдёт ли Python для взломов?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    Вам нужно не питон учить, а технологии.

    Если вы изучите паяльник, это не значит что вы сможете спаять например телевизор.

    Так и язык программирования - это просто инструмент, он собственно не важен и подойдет любой. А учить вам нужно в первую очередь не его, а то, что вы собрались взламывать.
    Ответ написан
    Комментировать
  • Какой лучший способ посчета времени работы программы?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Просто пишите в лог время запуска программы и время завершения программы.

    Если в логе встретится, что идет два запуска подряд - значит что-то ее прервало. По системному логу линукса или журналам винды можно будет посмотреть когда комп выключался и вычислить время.

    Если нужно автоматизировать, пишите периодически текущее время во временной файл и сделайте простой воркэраунд, смотря насколько критично ловить время перед выключением.
    Ответ написан
    3 комментария
  • Подходит ли python для создания GUI бота для MMORPG игр?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    "насколько это сложная задача если учесть, что python я начал только только изучать?"
    Очень.
    Ответ написан
    Комментировать
  • С чего начать изучение автоматизации на Python?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    Так если вы уже юзаете soapui, то изучите технологии - XML и HTTP, чтобы могли с ними работать в python-е.

    1. Гуглите и читаете документацию и пишете скрипт, который отправляет HTTP запрос и получает ответ.
    2. Гуглите и читаете документацию и пишете скрипт, который отправляет XML запрос по HTTP и получает XML ответ.
    Profit.
    Ответ написан
    Комментировать
  • Куда податься со знанием python (кроме WEB)?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    Двигайтесь в сторону поиска вакансий, связанных с питоном.

    Питон часто используется в автоматизации тестирования, автоматизации системного администрирования, автоматизации деплоя и других CI задач.
    Ответ написан
    4 комментария
  • На чем писать сервер для игры?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    Количество онлайн вообще не так считается. Все зависит от игры.
    У меня был проект с онлайн под 100.000 в сутки. Легко держалось на php/fastcgi, правда для одной штуки пришлось написать примочку на ассемблере и внедрить как либу для apache, но к онлайну это отношения не имеет.

    Напишите нагрузочный тест, прикиньте что именно будут делать игроки. Можно плясать как от языка, так и от архитектуры игры. Например писать что-то типа aion/lineage - я бы предпочел C++, а не java. Хотя эмуляторы на java вполне держали под 1000 онлайн на среднем сервере еще до оптимизации.
    В общем все зависит от трафика и требованию к реакции игрока.
    Ответ написан
    8 комментариев
  • Python не открывается в командной строке. В PATCH заходил. Что делать?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    А собственно сам питон вы на комп устанавливали?
    Где находится python.exe можете показать?
    Ответ написан
    3 комментария