Задать вопрос
  • Не создается срез в python. Ошибка TypeError?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Давайте я помогу перевести этот текст для вас:
    TypeError: slice indices must be integers or None or have an __index__ method

    - Ошибка Типов: индексы среза должны быть целочисленными значениями или None или должны поддерживать метод __index__.
    Теперь посмотрите внимательно на строку, где произошла ошибка:
    full_downtime = string[downtime_border1:downtime_border2]

    Где же у вас тут индексы среза?
    -- Вот они: downtime_border1 и downtime_border2
    Давайте посмотрим какие значения у вас могут принимать эти переменные:
    downtime_border1 = ''
    downtime_border2 = ''

    Неожиданно!
    Что это а тип? Это целые числа? - нет
    Это None? - Нет!
    У них есть метод __index__?
    А что, черт возьми, вы хотели этим сказать в своей программе?
    На лицо не понимание кода. Вам слеует немного поучить основы питона.
    Ответ написан
    5 комментариев
  • Как расчитать координаты точек для шестиугольника вписанного в круг?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    А мне нравится такое на комплексных числах считать. То же, что и с синусами, но элегантнее.
    Вот пример на питоне:
    from math import e, pi
    f=lambda c, r, n=3, fi0=0: [c+r*e**(1j*(2*pi/n*i+fi0)) for i in range(n)]

    Получим функцию f которая может рассчитать точки любого вписанного n-угольника:
    >>> f(c=250+250j, r=250)
    [(500+250j),
     (375+466.50635094610965j),
     (125.00000000000006+466.5063509461097j),
     250.00000000000003j,
     (124.99999999999989+33.49364905389041j),
     (374.99999999999983+33.49364905389024j)]

    А если надо обяательно кортежами, а не комплексными точками. то вот:
    >>> [(round(p.real), round(p.imag)) for p in f(c=250+250j, r=250, n=5, fi0=pi/2)]
    [(250, 500), (12, 327), (103, 48), (397, 48), (488, 327)]

    Тут, заметьте, пятиугольник, причем вершинкой вниз (при оси Y, направленной вниз).

    Чтобы было понятно как это работает...
    Представим, что центр окружности в нуле координат. Нам нужно 6 точек, смещенных относительно нуля на радиус под нужными углами: 0, 60, 120, 180, 240 и 300 градусов. В формулах мы. конечно используем радианы: pi - это 180 градусов.
    Чтобы повернуть единичный вектор на какой-то угол, нужно его просто домножить на e в степени мнимая единица, умноженная на угол. Поскольку единичный вектор на комплексной плоскости это просто 1, то его даже писать не надо. Просто возводим e в нужную степень и получаем нужный вектор в виде комплексного числа. Осталось его домножить на требуемый радиус (он при этом удлинится: был длиной 1, а станет r) и добавить к нему желаемый центр (тоже в виде комплексного числа, где реальная часть - X, а мнимая - Y).
    Вот и всё!
    Красота же?..

    Да, забыл сказать, что если нужно повернуть весь n-угольник на какой-то угол, то для этого есть там параметр fi0, который по умолчанию ноль.
    c - это координаты центра в комплексной форме. Например если X=30, а Y=40, то c=30+40j.
    n - это число вершин.
    r - радиус.
    И да, в javascript'е нет такого элегантного способа работать с комплексными числами, как в питоне. Но для js есть много библиотек для работы с комплексными числами. Будет не так компактно и красиво, как на питоне, но в целом всё точно так же в плане математики.

    UPD: Исправил функцию. Там скобочек не хватало, поэтому поворот на fi0 работал неверно. Теперь все как надо.
    Ответ написан
    6 комментариев
  • Как отсортировать произвольные точки так, чтобы при проведении линии через них последовательно получился многоугольник?

    Adamos
    @Adamos
    Банально-наколенный вариант: находим среднюю арифметическую координату, пересчитываем координаты всех точек в радиальные относительно этой средней, сортируем по углу (а при равенстве углов - по удаленности) - и соединяем в этом самом порядке.
    Ответ написан
    4 комментария
  • Как работает бинарный оператор & в python?

    Vindicar
    @Vindicar
    RTFM!
    Этот оператор может быть перегружен, а потому имеет разную семантику для разных типов данных.
    Для множеств этот оператор возвращает их пересечение.
    Ты можешь добавить поддержку этого оператора в свой класс, объявив магический метод __and__().
    Ответ написан
    2 комментария
  • Реально ли поменять bluetooth пароль на китайском приемнике?

    15432
    @15432
    Системный программист ^_^
    Разобрать, определить модель микроконтроллера, найти программатор под него, считать прошивку, провести реверс-инжиниринг и найти, где там пароль, поменять его, залить обратно программатором.

    За пару месяцев для вас вполне реально.
    Ответ написан
    3 комментария
  • Как настроить дебаг в Arduino IDE 2.0?

    @Zolg
    добавить любой пункт из предложенного
    не знаю за Arduino IDE, но названия пунктов как бы намекают, что выбирать нужно не 'любой из предложенного', а соответствующий вашему JTAG адаптеру и программному интерфейсу к нему.
    Ответ написан
    Комментировать
  • Почему записывает данные иероглифами?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Исправить этот файл можно так:

    iconv -f utf-8 -t utf-16 < test.txt | sed '1s/^\xFF\xFE//' > test_fixed.txt


    Под Linux советую encoding не использовать при работе с файлами, так как если специально не намудрить, будет правильно и красиво использоваться utf-8.
    Ответ написан
    3 комментария
  • Как достать строку из листа?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Во-первых, не советую использовать слово list как имя переменной - это имя используется как имя встроенного типа «список».
    Во-вторых, список это и есть в некотором роде массив, к элементам которого можно обращаться по индексу (именно так, как вы показали - по номеру элемента в скобках). Нет смысла перемещать его содержимое в другой массив, если только это не условие задачи или обусловлено какой-то очень специфической задачей (для использования математических и статистических пакетов).. Задачи тут не решают.
    В-третьих, очень рекомендую вначале изучить структуры вообще и начала языка Python в частности, а потом браться за вот это вот всё. Сэкономит вам время.
    Ответ написан
    Комментировать
  • Стоит ли использовать микрокомпьютер для удаленной работы?

    @AVKor
    Ответ написан
    Комментировать
  • Стоит ли использовать микрокомпьютер для удаленной работы?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Тонкий клиент - нормальный рабочий вариант при наличии стабильного подключения к интернету.
    Ответ написан
    Комментировать
  • Создал Python код, но он сразу закрывается, что делать?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    pass - ключевое слово в Python. Его нельзя использовать по собственному назначению
    Ответ написан
    1 комментарий
  • Почему Python считает приближенное float значения?

    @AVKor
    Почему Python считает приближенное float значения?

    Потому что так устроено (и это не специфика Python). Ознакомьтесь с основами CS.
    Ответ написан
    Комментировать
  • Python не запускается "utf-8" что делать?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Убедиться, что файл в кодировке utf-8 и не имеет BOM.
    Ответ написан
    Комментировать
  • Что такое "типы данных" в Python?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Все типы данных - это классы, но не все классы - это типы данных. Хотя классы - это типы=) но не буду вас путать.
    "map, range, срез" - это не типы данных.
    Полагаю в том вашем вопросе од типами жанных имеют в виду простые типы вроде строк, чисел с плавающей точкой, целых чисел и даже комплЕксных.
    Кортежи (tuple) и словари (dict) - это уже структуры данных, коллекции... как угодно. Да, технически это тоже классы и в каком-то смысле их можно назвать типами, но все эти терминологические дебри вам ни к чему.
    Просто считайте типами данных атомарные значения простых типов. Если к вам докопаются при таком понимании, то надо таких слать=).
    Дальше интереснее. range, к примеру, это класс, инстанс которого "умеет" делать генератор арифметических последовательностей. Вот это вот слово "умеет" связано с питоновским понятием протоколов. К примеру, если к объекту можно обратиться по индексу, значит он поддерживает соответствующий протокол __getitem__. Если объект поддерживает срезы, то в этот метод можно подать специальный объект - инстанс slice. Этот инстанс просто несёт три параметра среза (начало, конец и шаг), а как его будет применять объект - это на откуп программисту.

    Вам, надо, наверно, еще понимать разницу между изменяемыми и неизменяемыми объектами, но... мне кажется вы решили избежать чтения учебников и планомерного изучения языка, а просто решили приёти сюда за персональным репетитором, который станет тут тратить своё время на объяснение тривиальных вещей из каждого первого учебника?

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

    Vindicar
    @Vindicar
    RTFM!
    N=int(input())
    Программа ждёт ввода, не?
    А зачем, кстати, ждёт?
    Ответ написан
    1 комментарий
  • Ffmpeg. Бат файл который сможет разделить 3gp?

    Ukrainskiy
    @Ukrainskiy
    Ну, судя по постановке вопроса, вам нужно взять этот текст и заменить им тот текст, сделать это можно текстовым редактором. Или выражайтесь яснее.
    Ответ написан
    Комментировать
  • Проблема в создании эхо-бота для телеги на пайтоне, в чем причина?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Вы издеваетесь? Где правильный код?
    Где у вас на 4=й строке bot.reply_to?
    UPD. Хауди Хо и телегам-боты это конечно прекрасно и хорошо, но вы же не будете устраиваться на работу в ресторан, не умея готовить и посмотрев передачу про Гордона Рамзни? Что-то мне кажется, что нет. Тогда почему вы пытаетесь писать ботов на языке программирования, которого не знаете, посмотрев только видос попсового ютубера?
    Ответ написан
    1 комментарий
  • Как распознать рукопись в pytesseract?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Тессерактом вряд ли достигнете желаемое. Обучайте нейронки...
    Туториалов по распознаванию mnist - валом. А у вас - задача очень похожая.
    Ответ написан
    4 комментария