Задать вопрос
  • Как правильно определить, какое число итераций необходимо?

    @dmshar
    А двавайте велосипед не выдумывать. Есть такой раздел вычислительной науки. "Теория алгоритмов" называется. Он-то как раз и занимается тем, что объясняет, как оценить вычислительную сложность алгоритмов, в том числе ОЦЕНИВАЕТ, сколько циклов, операций сравнения и пр. требуется для того или иного алгоритма.
    Просто после вопроса " единственный вариант - сравнивать список "до" итерации и "после". Но в таком случае, не будет ли затраты на подобные сравнения "затратнее" холостых циклов?" становиться понятным, что тут не на конкретный вопрос отвечать надо, а с азов начинать. Ведь и то что это "единственный способ", и про то что сравнение можно сравнивать с холостым циклом - про все это говориться в Теории алгоритмов. Причем как правило - с самого начала.
    Ответ написан
    Комментировать
  • Как убрать скобки?

    Vindicar
    @Vindicar
    RTFM!
    1. Убрать list(). Обратиться по индексу 0 - bd[0].
    2. Почитать про списки и кортежи.
    Ответ написан
    Комментировать
  • Как убрать скобки?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Попробуйте bot.send_message(message.chat.id, '@' + bd[0])
    Ответ написан
    4 комментария
  • Как убрать скобки?

    Dr_Elvis
    @Dr_Elvis Куратор тега Python
    В гугле забанен
    Почитать про списки. И про то как выдают данные бд. И ещё основы, чтобы наверняка, Марка Лутца хотя бы.
    Ответ написан
    Комментировать
  • Как отслеживать изменение даты файла с сайта?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Спарсить с помощью beautifulsoup4.
    Ответ написан
    Комментировать
  • ValueError: too many values to unpack (expected 2) почему?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Значит в message.text больше элементов, чем вы ожидаете.
    Ответ написан
  • Есть ли программа, сервис, модуль для Excel, Calc для копирования из электронной таблицы в SQL?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Knime.
    Бесплатно. Есть русское комьюнити. Есть интерфейсы к почти любым sql и nosql бд. Открывает и пишет xlsx, csv, всё вот это вот. Можешь делать с «колонками и строчками» что угодно.
    Есть куча аналолитических модулей, логика, циклы и всё такое. Есть возможность создавать вставки на java, js, python и т.п. Можно поднять сервак и выполнять удаленно. Можно десктоп приложение.

    Только надо влиться в процесс. Там несколько нетривиально всё, я например с третьего подхода фишку просёк.
    Ответ написан
    1 комментарий
  • Преобразование даты Python?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    # Timedelta function demonstration
    
    from datetime import datetime, timedelta
    
    
    # Using current time
    ini_time_for_now = datetime.now()
    
    # printing initial_date
    print ("initial_date", str(ini_time_for_now))
    
    # Calculating future dates
    # for two years
    future_date_after_2yrs = ini_time_for_now + \
    						timedelta(days = 730)
    
    future_date_after_2days = ini_time_for_now + \
    						timedelta(days = 2)
    
    # printing calculated future_dates
    print('future_date_after_2yrs:', str(future_date_after_2yrs))
    print('future_date_after_2days:', str(future_date_after_2days))
    Ответ написан
    Комментировать
  • Добрый день. Вопрос по Python связанный с вводом данных. Вводить число надо так чтобы программа принимала числа со знаками после запятой?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Давайте посмотрим на код вашей программы.
    a, b, c, d = map(int, input().split())

    Как вы думаете, что делает функция, выделенная жирным шрифтом?
    Ответ написан
    Комментировать
  • Как конвертировать числа в формат доллара?

    Vindicar
    @Vindicar
    RTFM!
    >>> import locale
    >>> locale.setlocale(0, 'en-us')
    'en-us'
    >>> locale.currency(123400/100)
    '$1234.00'
    >>> locale.currency(123400/100, grouping=True)
    '$1,234.00'
    >>>
    Ответ написан
    Комментировать
  • Как собрать и вывести общее количество строк в базе данных sqlite3?

    @denislysenko
    data engineer
    пример:
    #предположем, что количество строк в таблице равно 5000
    cursor.execute("select count(*) from login_id") # делаем запос на кол-во строк в таблице
    row_count = cursor.fetchone() # значит переменная row_count будет равна (5000) 
    print(row_count) #--> (5000) 
    # то есть, row_count равна кортежу, в котором первым елементоя является число
    
    #вывести значение 5000, можно просто сделав принт по нулевому индексу кортежа row_count
    #вот так:
    print(row_count[0]) #--> 5000
    Ответ написан
    2 комментария
  • Добавляю в sqlite3 через python в таблицу данные и выдает ошибку почему?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Элементарно, Ватсон!
    В области видимости переменных функции passw переменная loginDb - не определена, поэтому функция ищет такую переменную в вышележащей области видимости - в глобальной. А там эта переменная определена и ссылается на класс str (кстати, зачем???)
    В то же время в области видимости переменных функции auth переменная loginDb определена, поэтому она там не имеет никакого отношения ни к одноименной переменной в глобальной области, ни к одноименной переменной в функции passw.
    На вход execute попадает значение str - а это - класс, а не строка, поэтому execute и ругается, что тип не подходящий.

    Что делать?
    • Изучить и понять области видимости переменных.
    • Передавать в явном виде необходимые переменные на вход функций, а также явно возвращать их измененные значения из функций и явно передавать в другие функции.
    Ответ написан
    Комментировать
  • Как распаковать вложенный список?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Наверное, надо проверять элемент исходного списка, является ли он списком, и только тогда распаковывать?
    Если уровень вложенности у нас один, то так и написать
    chained = []
    for item in posl:
        if isinstance(item, list):
            for subitem in item:
                chained.append(subitem)
        else:
            chained.append(item)

    Это будет самый кондовый алгоритм. Задачу можно реализовать и короче, и оптимальнее. Но при изучении программирования надо сначала научиться составлять самому простейшие алгоритмы и их реализовывать, а не просто пытаться использовать по очереди какие-то магические заклинания - авось какое-то сработает. А если не сработает - то идти на Хабр, чтобы тебе его написали.
    Любой красивый код следует применять только тогда, когда ты понимаешь, как он работает, что делает внутри. А если не понимаешь, то лучше сначала разобраться, реализовать тот же алгоритм руками. Иначе ты будешь не программист, а обезьяна с гранатой.

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

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Обход рекурсией:
    posl = ['Один',  'Два',  'Три',  ['Четыре',  'Пять',  'Шесть', ['Семь', 'Восемь', ['Девять']] ], 'Десять']
    
    def unpack_list(somelist):
        res = []
        def to_flat(item):
            if isinstance(item, list):
                for im in item:
                    to_flat(im)
            else:
                res.append(item)
        return to_flat(somelist)
    
    print(unpack_list(posl))
    
    # ['Один', 'Два', 'Три', 'Четыре', 'Пять', 'Шесть', 'Семь', 'Восемь', 'Девять', 'Десять']
    Ответ написан
    Комментировать
  • Как перевести декартовые координаты в полярные и найти полярный угол?

    Vindicar
    @Vindicar
    RTFM!
    Тригонометрию в школе проходили?
    Есть прямоугольный треугольник. Одна точка - начало координат О, вторая - искомая точка в декартовых координатах A, третья - её проекция на ось X (назовем точка B).
    Тогда гипотенуза - это отрезок ОA, а катеты - OB и AB. Тебе нужно найти угол AOB.
    Вспоминаем определения:
    sin AOB = |AB| / |OA| =>
    cos AOB = |OB| / |OA|
    tg AOB = |AB| / |OB|

    Как найти длину гипотенузы OA ты уже знаешь.
    Длина AB будет координатой y, а длина OB - координатой x.
    Используй любое из указанный выражений для нахождения AOB, только не забывай про коррекцию знаков (так, cos AOB не изменится, если сменить знак координаты y, а вот знак угла при этом должен измениться).
    Ответ написан
    Комментировать
  • Как повысить свои скиллы в коде на Python?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    • Смотреть список зависимостей проекта и читать документацию по ним.
    • Читать документацию и комментарии к коду.
    • Пользоваться поисковиком
    • Ставить конкретные задачи и пытаться их реализовать.

    Все это по кругу и со временем все придет.
    Вещей из первых двух пунктов может не быть, но обычно, в нормальных репах оно есть.
    Хочу написать наконец что-то более менее нормальное, но не хочу говнокодить.

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

    amletixq
    @amletixq Автор вопроса
    Все оказалось намного проще. чем я думал.

    Я использовал второй вариант с условием, и дописал в части else:

    for index, letter in enumerate(letters.upper()):
        for number in range(2, len(names) + 2):
            splited_name = names[number - 2].split()
    
            if index == 7:
                if int(splited_name[index - 1]) > 150:
                    ws[f"{letter}{number}"] = "Призер"
                else:
                    ws[f"{letter}{number}"] = "Участник"
            else:
                if index >= 4 or index == 6:
                    ws[f"{letter}{number}"] = int(splited_name[index])


    По факту, у меня было определенное количество данных, и эти данные по своим позициям были фиксированными, то есть, например первый кусок был точно строкой, а с 4 по 6 были числами, так что мне нужно было выловить их в цикле и просто добавить их в таблицу, и не махиначить с исключениями.
    Ответ написан
    Комментировать
  • Помгите с ООП в Python?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Вам же даже ошибка говорит:
    module 'sql' has no attribute 'insert'

    К тому-же сравните:
    class Sql:
    c
    import sql
    Одним словом - проблема не в ООП, а в неправильной работе с модулями.
    Ответ написан
    5 комментариев