Ответы пользователя по тегу Python
  • Состоит список только лишь из единиц, или нет?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Я не знаю, кто тот гений, который ставил эту задачу, но видимо, весь вопрос в том, чтобы догадаться, что перебирать весь массив целиком не обязательно.
    result=True
    for x in arr:
       if x != 1:
           result=False
           break
    Ответ написан
  • Как оптимальнее всего добраться до директории?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    "Я ничего не понял".

    Все что мне приходит в голову, это
    def dosmth(starts, path):
        if any(x.startswith(starts) for x in os.listdir(path)):
            print "Папка " + starts
    Ответ написан
    Комментировать
  • Как обработать сразу несколько строк из запроса бд?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    SELECT sum(game), sum(win) FROM wins WHERE id = ?
    И будет всегда одна строка с посчитанной суммой.
    То есть надо использовать не fetchall, а fetchone()

    А в общем случае обычная работа с коллекцией
    sum_game=0
    sum_win=0
    for row in jbs:
        sum_game +=row[0]
    Ответ написан
    Комментировать
  • Как узнать сколько сделал код попыток для выпадения нужного числа?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Посчитать все строки, которые этот код вывел. Для удобства можно приложить палец к экрану и вести вниз, в уме прибавляя единицу для каждой строчки.
    Ответ написан
    2 комментария
  • Ошибка table hod has 4 columns but 3 values were supplied?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Для программиста очень важно логическое мышление.
    То есть способность анализировать факты и соотносить их со своими представлениями о действительности.

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

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Вопрос, конечно, сформулирован криво, но из кода можно понять, что автору нужно.

    Прервать ожидание input() нельзя.
    Поэтому я бы пошёл другим путём - перед запросом ответа запоминал текущее время (time.time()) в переменную, а после ввода - сравнивал её опять с текущим временем, и разница больше заданного значения, то не принимал ответ. Для задачи "пишем свою первую игрушку на Питоне" этого более чем достаточно.

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

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Здесь два вопроса в одном, как прочитать файл, и как назначить в переменные.
    Судя по формулировке, вы не знаете даже как прочитать файл,поэтому надо начать с этого.
    Самый простой и наглядный способ - это просто читать каждую строку и добавлять в список.
    config = [];
    with open(filename) as file:
        for line in file:
            config.append(line.rstrip());

    Теперь можно назначить отдельным переменным, например
    email=config[0]
    Но я бы не стал назначать отдельным переменным, а подумал над более удобным механизмом. Например, добавил бы все значения не в список, а в словарь
    Ответ написан
    3 комментария
  • Как реализовать математическую формулу в Telegram боте, написанном на языке python?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Комментировать
  • Почему не записываются данные в бд?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Мужчина, вы издеваетесь?
    Я вам уже раз пять повторил ответ на этот вопрос:

    имена колонок и таблиц нельзя брать в одинарные кавычки. Потому что в одинарных кавычках пишутся строки.
    И если даже иногда sqlite и смотрит сквозь пальцы на такую ошибку (когда она может понять по контексту, что имеется в виду), это не значит, что так будет везти всегда.
    Строка 'money' никогда не будет равна числу.
    Ответ написан
    3 комментария
  • Почему не видит файл?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Как правильно заметили в комментарии выше, какой-то из файлов не является изображением.
    Соответственно, такие файлы надо пропускать
    imgs = os.listdir("images")
    for file in imgs:
        img = cv.imread(f"images\{file}")
        if img is not None:
            copy = img.copy()


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

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    После запросов, выполняющих изменения в БД, надо вызывать
    self.connection.commit()

    И имена колонок и таблиц нельзя брать в одинарные кавычки. Потому что в одинарных кавычках пишутся строки.
    И если даже иногда sqlite и смотрит сквозь пальцы на такую ошибку (когда она может понять по контексту, что имеется в виду), это не значит, что так будет везти всегда.
    Строка 'money' никогда не будет равна числу.
    Ответ написан
    8 комментариев
  • Как сложить словари в которых числа?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    У вас задача на сложение переменных, которые являются элементами разных словарей.
    А не на скоростное гугление по запросу "как сложить элементы в одном словаре".
    Чтобы сложить три переменные, не нужно создавать новый словарь. Надо просто сложить три переменные и вывести результат.

    Это всё очень плохо.
    Программы, которые мы пишем, должны выдавать правильный результат при любых вводных.
    А ваша будет всегда будет выдавать 514, либо её надо будет каждый раз переписывать под новые данные.
    Потому что она считает не то что было задано, а какой-то левый массив, который не имеет никакой связи с исходными данными.
    Ответ написан
    Комментировать
  • Парсинг JSON в Python. Как брать конкретные данные?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Получить "конкретный ключ" - это "парсить все данные" до тех пор, пока не найден искомый.
    То есть банально два оператора, for и if. Только не говорите, что вы даже их не знаете.
    for item in json:
        if item['Ccy'] == 'EUR':
            break
    print(item)

    но лучше сразу перегнать список в словарь,
    rates = {}
    for item in json:
        rates[item['Ccy']] = item

    и дальше просто обращаться по индексу
    Ответ написан
    1 комментарий
  • Как поменять значение во вложенном словаре по списку ключей?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    просто в цикле продвигаться по уровням словаря не выйдет!

    На самом деле выйдет, поскольку в Питоне новая переменная является ссылкой на старую.
    Перебираем все ключи кроме последнего и потом присваиваем ему новое значение
    def changeDictValueByPath(my_dict, path, value):
        tmp_dict = my_dict
        for k in path[:-1]:
            tmp_dict = tmp_dict[k]
        tmp_dict[path[-1]] = value
    
    indices = "first_sec_x"
    source = {"first": {"sec": {"x": 1}}}
    changeDictValueByPath(source, indices.split("_"), 2)
    print(source);
    Ответ написан
  • Почему SQL запрос возвращает список?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    > Почему SQL запрос возвращает список?

    Потому что функция execute_read_query написана так, чтобы возвращать список.

    > Как быть?

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

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    4. После размещения вопроса пользователю запрещается осуществлять:
    4.1. Дублирование вопроса, который уже размещался на страницах Сервиса. В том числе и в случае, если вопрос был удалён модератором, или на вопрос не был дан ответ (т.е. категорически запрещается дублирование вопроса с целью повторного привлечения к нему внимания).
    Ответ написан
    Комментировать
  • Как автоматизировать запуск sql скриптов?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Проще всего будет действительно через шелл скрипт ("файл с расширением sh"), причем даже записывать эту команду в файл не обязательно, а можно просто выполнить в консоли:
    for file in `ls /path/to/files/*.sql`; do mysql -uUSER -pPASSWORD DATABASE < $file ; done

    здесь mysql - это консольный клиент mysql
    Ответ написан