Ответы пользователя по тегу Python
  • Что в библиотеке Python numpy означает запись numpy.sum(img==1)?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Считает количество элементов равных "1"
    >>> a = numpy.array([0,1,1,0,1,1,1,0,0,1])
    >>> numpy.sum(a==1)
    6
    >>> numpy.sum(a==0)
    4
    Ответ написан
    2 комментария
  • Как переформатировать переменную datetime?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Отсеяв лишнее, оставив только дату. При этом, сохранить у test1 тип datatime

    Определитесь что вам надо точнее.
    datetime содержит сведения о времени. Если его вам там не надо - то используйте тип datetime.date
    Если сведения о времени нужно обнулить - то используйте combine
    Если все нужно сохранить но просто вывести строкой куда-то без времени - то просто форматируйте вывод - с временем или без - как угодно...
    date1 = datetime.datetime.fromisoformat('2021-09-08 15:45:40.260000+00:00')
    # datetime.datetime(2021, 9, 8, 15, 45, 40, 260000, tzinfo=datetime.timezone.utc)
    
    date1.strftime('%Y-%m-%d')
    # '2021-09-08'
    
    date1.date()
    # datetime.date(2021, 9, 8)
    
    date1.date().isoformat()
    # '2021-09-08'
    
    datetime.datetime.combine(date1.date(), datetime.datetime.min.time())
    # datetime.datetime(2021, 9, 8, 0, 0)
    Ответ написан
    Комментировать
  • Очиститель файла после знака?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Подсказка:
    '164672jeirjfueheh: mom don Bob'.split(':')[0]
    # '164672jeirjfueheh'

    Пробегаете по всему файлу и выполняете эту нехитрую операцию над каждой строкой
    Ответ написан
    Комментировать
  • Как исправить resulttoo large в коде?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Попробовать использовать везде decimal:

    import math
    
    a, alpha, x = 10, 10, 10
    
    y1 = math.log(abs(x**3)) + math.tan(alpha)-pow(math.e, a*(x**2)+x)
    
    print(y1)
    
    # OverflowError: (34, 'Result too large')

    Та же формула обернутая в decimal.
    Выглядит громоздковато, но отрабатывает корректно:

    import math
    import decimal
    
    decimal.getcontext().prec = 100
    
    a, alpha, x = 10, 10, 10
    
    y1 = decimal.Decimal(math.log(decimal.Decimal(abs(decimal.Decimal(x)**decimal.Decimal(3))))) \
        + decimal.Decimal(math.tan(decimal.Decimal(alpha))) \
        - decimal.Decimal(pow(decimal.Decimal(math.e), decimal.Decimal(a)*(decimal.Decimal(x)**decimal.Decimal(2))+decimal.Decimal(x)))
    
    print(y1)
    
    # -4.339370400623091759291109148627508614055728677394889807059531826625028640984354352252576981241604834E+438
    Ответ написан
    Комментировать
  • Как сделать скриншот в python?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Конфликт версий библиотек видимо. Попробуйте установить эти версии через pip (у меня они просто оказались под рукой и успешно отработали)

    PyScreeze==0.1.26
    PyAutoGUI==0.9.50
    Ответ написан
  • Как считывать текст с переносом строк и хранить все в переменной?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Не совсем понятно в чем проблема:
    text = "Строка 1\n"   # считываем строку с переносом
    text += "Строка 2\n"  # добавляем еще строку с переносом
    text += "Строка 3\n"  # ...
    print(text)   # печатаем весь текст с переносами строк
    # Строка 1
    # Строка 2
    # Строка 3
    Ответ написан
    5 комментариев
  • Можно ли импортировать библиотеку в python3 из переменной?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Можно через importlib
    In [1]: import importlib
    
    In [2]: requests.__version__
    ---------------------------------------------------------------------------
    NameError                                 Traceback (most recent call last)
    <ipython-input-2-37d800a179a9> in <module>
    ----> 1 requests.__version__
    
    NameError: name 'requests' is not defined
    
    In [3]: requests = importlib.import_module('requests')
    
    In [4]: requests.__version__
    Out[4]: '2.22.0'
    Ответ написан
    Комментировать
  • Как получить максимальное значение в sqlite с именем пользователя?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Не факт что эта строка - единственная... Поэтому как-то так:
    SELECT * FROM db WHERE ochki=(select max(ochki) from db)
    Ответ написан
    9 комментариев
  • Как получить значение элемента div только определенного класса?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    from lxml import etree
    import io
    
    html = '''<div class="eP0wn _2xJnS"> $192.88<span class="_2plVT">$386</span></div>'''
    
    parser = etree.HTMLParser()
    tree = etree.parse(io.StringIO(html), parser=parser)
    
    print(tree.xpath('.//div[@class="eP0wn _2xJnS"]')[0].text)
    
    # $192.88
    Ответ написан
    Комментировать
  • Как сохранить данные в .txt в Python?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Модулем pickle как вариант, если я правильно понял:

    Запись:
    import pickle
    
    # An arbitrary collection of objects supported by pickle.
    data = {
        'a': [1, 2.0, 3, 4+6j],
        'b': ("character string", b"byte string"),
        'c': {None, True, False}
    }
    
    with open('data.txt', 'wb') as f:
        # Pickle the 'data' dictionary using the highest protocol available.
        pickle.dump(data, f, pickle.HIGHEST_PROTOCOL)


    Чтение
    import pickle
    
    with open('data.txt', 'rb') as f:
        # The protocol version used is detected automatically, so we do not
        # have to specify it.
        data = pickle.load(f)
    print(data)
    # {'a': [1, 2.0, 3, (4+6j)], 'b': ('character string', b'byte string'), 'c': {None, True, False}}
    Ответ написан
    Комментировать
  • Python-проверка, начинается ли строка c "@"?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Выбирайте:
    import re
    text1 = '@0'
    text2 = '0'
    print(text1, text1.startswith('@'))
    print(text2, text2.startswith('@'))
    print(text1, bool(re.match('^@', text1)))
    print(text2, bool(re.match('^@', text2)))
    print(text1, text1[:1] == '@')
    print(text2, text2[:1] == '@')
    # @0 True
    # 0 False
    # @0 True
    # 0 False
    # @0 True
    # 0 False
    Ответ написан
    3 комментария
  • Invalid syntax в IDLE как понять что не так?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    В первой строке неизвестно откуда переменная planned_sales_volume взялась...
    В строке
    planned_sales_volume = int(input("Введите...
    скобка не закрыта
    дальше лень смотреть...
    Ответ написан
    Комментировать
  • Как лучше делать return?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Ну во-первых - у вас немного разная логика функций.
    Первая процедура вылетит с ошибкой если передать значение не равное 123 или abc.
    result-то вы не проинициализировали...
    Вторая - отработает успешно, просто ничего не вернет.
    Если они будут задействованы в критической логике программы, - то у вас программа просто в ошибку свалится в первом случае. Во втором случае - не свалится, если возврат значения None предусмотрено дальнейшей программой (только не спутать ее с False)

    Во вторых - первая функция компилируется в байткод из 28 команд, а вторая - в 26. Лишнее присваивание дает лишние шаги программы. В одном месте - как минимум - 2 лишних бесполезных байт-кода, в другом, в третьем... И потом этот ничего не делающий байт-код просто греет процессор, внося свою толику в дело глобального потепления и ухудшения экологии на планете в целом... Так что лишний раз подумайте - есть ли особая в этом необходимость...

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

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Ну если действительно такой формат:
    import csv, io, json
    
    data = '''X Y
    1 1
    2 2
    3 3
    4 4
    5 5'''
    f = io.StringIO(data)
    reader = csv.DictReader(f, delimiter=' ')
    json.dumps(list(reader))
    
    # '[{"X": "1", "Y": "1"}, {"X": "2", "Y": "2"}, {"X": "3", "Y": "3"}, {"X": "4", "Y": "4"}, {"X": "5", "Y": "5"}]'

    вместо использования io - в вашем случае можно просто читать из файла, разумеется.
    Ответ написан
    1 комментарий
  • Как исправить запись файла?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Подвинуть
    f.write(password)
    на четыре пробела вправо
    Ответ написан
    3 комментария
  • В чем моя ошибка?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    В чем моя ошибка?

    во-первых - в том что не соблюдаете pep8
    во-вторых - объект у вас вложен в список - его оттуда сначала извлечь надо, к примеру так:

    print(jsonsCoin[0]['name'])
    Ответ написан
    1 комментарий
  • Вывод None, хотя там его не должно быть?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Глянул метод info в Wallet
    https://github.com/1200wd/bitcoinlib/blob/master/b...
    не нашел чтобы он что-либо возвращал....
    Там просто вывод информации через print в консоль, - и все.

    Если надо - наследуйтесь от Wallet - да дополните/перепишите метод info по своему усмотрению...
    Ответ написан
  • Как получить поле из JSON?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Потому что там путь посложнее:
    import requests
    r = requests.get("http://search.maps.sputnik.ru/search/addr?format=json&lat&q=Песочная+аллея,+дом+1")
    print(r.json()['result']['address'][0]['features'][0]['geometry']['geometries'][0]['coordinates'])
    # [37.674698, 55.79341]


    Как вариант - можно пробежаться рекурсией и вытянуть все ключи с 'coodinates':
    coordinates = []
    
    def search_key(data, key):
        if isinstance(data, list):
            for x in data:
                search_key(x, key)
        if isinstance(data, dict):
            for x in data.keys():
                if x == key:
                    coordinates.append(data[x])
                else:
                    search_key(data[x], key)
    
    search_key(r.json(), 'coordinates')
    print(coordinates)
    # [[37.674698, 55.79341]]
    Ответ написан
    Комментировать
  • Как реализовать обработку post параметра, если не знаешь его имени?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Ну какой-то общий признак должен быть. Если это подстрока "phone" или там - "телефон" - то можно как-то так:
    data1 = {'key': '1', 'phone': '2'}
    data2 = {'key': '3', 'telephone': '4'}
    data3 = {'key': '5', 'telePhone': '6'}
    data4 = {'key': '7', 'PHONE': '8'}
    data5 = {'key': '9', 'Телефон': '10'}
    
    PATTERNS = ['phone', 'телефон']  # тут перечислить подстроки
    
    getphone = lambda data:next(filter(lambda x: any([y in x.lower() for y in PATTERNS]), data.keys()))
    print(data1[getphone(data1)])
    print(data2[getphone(data2)])
    print(data3[getphone(data3)])
    print(data4[getphone(data4)])
    print(data5[getphone(data5)])
    # 2
    # 4
    # 6
    # 8
    # 10
    Ответ написан
    Комментировать
  • Как вывести не повторяющиеся элементы списка python?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Код работает, но выводит это: ['2', '3', '1']
    А мне надо без: ['', '', '']


    int(''.join(['2', '3', '1']))   # ['2', '3', '1'] можно заменить на a[:3] 
    # 231
    Ответ написан
    1 комментарий