Ответы пользователя по тегу Python
  • Следующий шаг после базы Python?

    @dmshar
    Прежде чем отвечать вам, хотелось понять, чем ответ на предыдущий ваш вопрос - в котором точно есть ответ и на этот очередной - вас не устроил. Вы внимательно прочитали, осмыслили и вот что-то вас сподвигло не идти по предложенному пути, а по сути повторять предыдущий только чуть чуть другими словами. Так что "не так" в предыдущем вопросе? Про полтора десятка точно таких-же вопросов даже на этом форуме я даже не заикаюсь.

    Ну и ответы на ваши вопросы в этой теме.
    Я правильно понимаю, что сейчас мне нужно начать изучать библиотеки? - библиотеки изучают не сами по себе, а выбирают и изучают библиотеку под конкретную задачу.

    попробовать запилить своё веб-приложение (благо есть база html/css). Правильно ли, что для этого нужно перейти от изучения питона к изучению Django/Flask? - правильно вы понимаете.

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

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

    У меня есть идеи проектов - это отлично. Не все могут этим похвастаться.

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

    @dmshar
    Во-первых, это не программа удаляет объекты неправильно, это вы написали такую программу, которая неправильно работает.
    Во-вторых, никаких двух проходов не надо.
    my_list = ['some word', 'some', 'leave', 1, None, 'leave', True, 'leave', 'else']
    for i in my_list[::-1]:
        if i != 'leave':
            my_list.remove(i)
    print(my_list)


    Вот что на выходе:
    ['leave', 'leave', 'leave']

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

    @dmshar
    Добрый вечер ребят.
    - привет, ребятёнок.
    Пытаюсь перевести то, что написано в вопросе на нормальный язык.
    "Файл в массиве" - т.е. данные уже считаны в массив. Тогда причем тут "очиститель файла"?
    "скрип который очистит в файле после определённого знака" - Противоречит дальнейшему примеру, в котором на самом деле очищается не "файл", а просто удаляется в каждой записи файла (а точнее - в каждом элементе массива) то, что стоит после ":".
    "строк более 1миллиарда" - не впечатляет.
    Так вот, если данные уже в "массиве" - правда, не ясно, как вы его на Python организовали, но будем считать, что все-таки с помощью списка, - то далее все элементарно:

    arr =['164672jeirjfueheh: mom don Bob','Uehehe72+7388: udiend jejd jejaj']
    for i,row in enumerate(arr):
        arr[i]=row.split(':')[0]
    print (arr)


    Результат:
    ['164672jeirjfueheh', 'Uehehe72+7388']
    Можете, если нужно, возвращать в файл.
    Впредь постарайтесь свой вопрос излагать более четко и технически грамотно.
    Ответ написан
    2 комментария
  • Как правильно транспонировать матрицы в numpy?

    @dmshar
    Насколько я понимаю, операция транспонирования в numpy не позволяет преобразовать вектор-строку в вектор-столбец. --- ????? Это откуда вы взяли?
    a=np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15])
    print(a)
    b=a.reshape(-1,1)
    print(b)


    Результат работы:
    [ 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15]
    [[ 1]
     [ 2]
     [ 3]
     [ 4]
     [ 5]
     [ 6]
     [ 7]
     [ 8]
     [ 9]
     [10]
     [11]
     [12]
     [13]
     [14]
     [15]]
    Ответ написан
    1 комментарий
  • Как совместить 2 цикла и будет ли это оптимизировать программу?

    @dmshar
    Де-факто программа выполняет непонятно что. Например
    inter_mass_n = {item : 0 for i in mass_q for item in range(i[0]-1, i[1])}

    создает словарь со всеми нулевыми значениями.
    А тут просто увеличивает эти нули на единицу.
    for i in mass_q:
        for j in range(i[0]-1, i[1]):
            inter_mass_n[j] += 1


    Что-бы это значило? Почему сразу не присваивать единицы?
    Ответ написан
  • Как стать python backend программистом?

    @dmshar
    Берете сайт поиска работы. Ищете вакансии "python backend программист", выписываете требования. Вот это и надо знать.
    OOП надо знать всем, кто имеет наглость в своем резюме указывать слово "программист". Вне зависимости от Python, С++, backend, GameDev и прочей ерунды.
    Ответ написан
    2 комментария
  • Можно ли использовать другие програмы с помощью кода python в фоновом режиме?

    @dmshar
    1. Оформите свой код в теги, что-бы можно было понять, что делает ваша программа.
    2. Напишите свой вопрос, используя грамматику русского языка, что-бы можно было понять, а в чем собственно ваш вопрос заключается.
    3. Попытайтесь объяснить, что значит "использовать другие програмы с помощью кода python" в общепринятой терминологии.
    4. "оно используется на открытих окнах " - кто ОНО и на каких ОКНАХ (в множественном числе)?
    5. то есть я тип работаю в другом окне а она работает в другом окне - т.е. вы запустили программу в одном окне, а сами переключились в другое? - Да так можно. (Похоже, именно это и есть ответ на ваш вопрос)
    6. Или же можно ли сделать чтобы она работала вместе с програмой в фоновом режиме? - кто ОНА, вместе с какой программой? Что значит "вместе"? В фоновом режиме можно выполнять любую программу, не ведущую диалог с пользователем (на то он и фоновый). Причем таких программ можно поназапускать столько, сколько позволяют ресурсы вашего компьютера.
    Ответ написан
    2 комментария
  • Как улучшить качество изображения на Python?

    @dmshar
    Если вы неспособны самостоятельно сделать этот элементарный запрос в Гуугл и найти на него ответ, то браться за такую задачу вам точно не стоит.
    Видите-ли, программирование - это не копирование чужого кода, и исправление ошибок в коде. А дебажить без твердого умения гууглить сегодня просто невозможно. На подсказках с форума программистом не станешь никогда.
    P.S. "Спокойно" можно использовать чужие нейронки разве что для получения результата операции XOR. Остальные спокойствия не гарантируют и требуют существенной нервотрепки.
    Ответ написан
    3 комментария
  • Как начать запись с определённой строки python csv?

    @dmshar
    Дописывать в файл, можно просто указав значение "a" в методах работы с файлом.
    Или вы собрались ПЕРЕЗАПИСЫВАТЬ остаток файла после некоторой строки?
    Ну, если длинна записываемых строк известна, то можно сместиться на нужное количество байт (метод seek) и писать, начиная с этого места, перетирвая все, что там было записано ранее.
    Ответ написан
    Комментировать
  • Как построить модель полиномиальной регрессии с несколькими независимыми переменными, используя Python?

    @dmshar
    Вариантов много.
    sklearn.preprocessing.PolynomialFeatures - это раз.
    Можно вручную преобразовать многомерную полиноминальную модель в многомерную линейную, а потом запустить
    sklearn.LinearRegression()
    Можно использовать более универсальный вариант
    scipy.optimize.curve_fit () , а поскольку регрессия - это по сути задача минимизации, то тут можно подгонять любую функцию. Более того, в scipy.optimize есть множество разных методов численной оптимизации, которые можно использовать для получения регрессионной модели в том числе.

    В ТensorFlow можно использовать
    GradientDescentOptimizer

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

    @dmshar
    Во-первых, ошибки не решают. Решают домашние задания, которые вам задают в школе. Ошибки исправляют.
    Во-вторых, а вы то сами по ссылке, которая приведена прошли? Ее прочитали? Разобрали? Попробовали сделать то, что там написано? Или вы предоставили это удовольствие другим? В домашнем задании это называется подсказка. Или списывание у соседа. И сильно не приветствуется.
    Ну и последнее, один из рецептов, которые вам предлагают по ссылке, заключается в том, что-бы в качестве первой строки вашего скрипта поставить
    # -*- coding: utf-8 -*-
    Но поскольку мы не знаем, ни какая у вас ОС, ни какие у вас локализации, ни какая у вас IDE, ни даже какая у вас версия Python, то может придется поэксперементирвать и с этми "magic comment".
    Ответ написан
    1 комментарий
  • Как получить верный результат в расшифровке?

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

    Я уже не говорю о том, шифруя сообщения и создавая одновременно ключ для расшифровки - вы должны их оба передавать читателю. Причем, ключ той-же длины, что и само сообщение. Круто! Ладно, сообщение отправили по e-mail. А ключ как будете передавать - голубиной почтой или курьером? Это фундаментальная ошибка.

    А техническая - вы так и не разобрались, где и что у вас индексируется.
    Вот вам пища для размышления - решение вашей задачи (в той постановке, какую вы задали). Попробуйте разобраться сами что и как тут работает.
    def encrypt(msg):
        key = []
        new_msg = []
        alphabet = ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ !?.,")
        ind = 0
        while True:
            rannd = random.randint(0, 52)
            key.append(rannd)
            ab_temp = alphabet[rannd:] + alphabet[:rannd]
            new_msg.append(ab_temp[alphabet.index(msg[ind])])
            ind += 1
            if ind >= len(list(msg)):
                break
        print("Зашифрованное сообщение:")
        print(new_msg)
        print('Ключ:')
        print(key)
    
    def decipher(msg, key):
        alphabet = ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ !?.,")
        ind = 0
        new_msg = []
        while True:
            ab_temp = alphabet[key[ind]:] + alphabet[:key[ind]]
            new_msg.append(alphabet[ab_temp.index(msg[ind])])
            ind += 1
            if ind >= len(list(msg)):
              break
        print("Исходное сообщение:")
        print(new_msg)


    Шифруем:
    encrypt('Hello world')
    Зашифрованное сообщение:
    ['X', 'K', 'w', 'M', 'M', 'f', 'n', 'w', 'j', 'O', 'T']
    Ключ:
    [16, 32, 11, 27, 24, 10, 48, 8, 49, 29, 42]


    Расшифровываем:
    decipher(['X', 'K', 'w', 'M', 'M', 'f', 'n', 'w', 'j', 'O', 'T'], [16, 32, 11, 27, 24, 10, 48, 8, 49, 29, 42])
    Исходное сообщение:
    ['H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
    Ответ написан
    Комментировать
  • Как решить ошибку: unknown error: cannot create temp dir for user data dir?

    @dmshar
    1. Решают домашние задачки в школе. Ошибки - исправляют.
    2. Как можно сказать что исправить в вашей программе, если вы не удосужились даже свой код показать. Вы считаете, что тут обитают экстрасенсы?
    3. Попробуйте хотя-бы самостоятельно перевести текст ошибки. Это поможет уяснить, что не так в вашей невидимой программе. Если самостоятельно справиться не в состоянии - то даю перевод ; "невозможно создать временный каталог для каталога данных пользователя". Думайте, чего вы не дописали в вашем коде.
    4. А раз вы засекретили свой код - то вот вам ссылки (правда понять не могу, что вам помешало их найти самостоятельно). Разбирайтесь, какой из ответов вам подойдет.
    https://forum.katalon.com/t/unknown-error-cannot-c...
    https://stackoverflow.com/questions/46066670/
    https://ru.stackoverflow.com/questions/905824/
    Ответ написан
  • Как выполнять функцию, которую я задам самостоятельно?

    @dmshar
    Предложенный выше варианты - неполохи, но жестко завязаны на конкретные функции и даже их количество. Добавьте еще одну функцию - и надо вносить правки в скрипт. Что не есть хорошо.

    Есть другой вариант. Пишем одну вспомогательную микрофункцию, которая будет читать ответ пользователя и в зависимости от первого слова вызывать функцию, имя которой совпадает с этим словом. Сделать это относительно просто. Но не все с таким хитрым способом знакомы.

    Всего-то:
    def ExecIt(func, param):
        return func(param)


    Тогда в самом скрипте достаточно вставить всего две строчки:
    request = input('Enter your request: ')
    ExecIt(globals()[request.split()[0]], request.split(maxsplit=1)[1])

    и получить УНИВЕРСАЛЬНОЕ решение.

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

    @dmshar
    Похоже, вы сделали все, что-бы запутать тех, кто попытается вам помочь.
    Начнем с название вопроса. Как можно объединить pandas и seriaes ?? Даже не говоря о неизвестном втором из этих терминов - предположим, вы имели ввиду Series - как можно ОБЪЕДЕНИТЬ модуль Pandas и объект типа Series ??
    Идем далее.
    Берем ваш датафрейм.

    state           cl    area       pop
    0   California     tropic  423967  38332521
    1    Texas          tropic   695662  26448193
    2    New York       norm  141297  19651127
    3     Florida      tropic  170312  19552860
    4    Illinois       norm  149995  12882135


    Если бы вы группировали хотя-бы по cl - я бы хоть что-то понял. Получили бы две группы - тропических и умеренных штатов, потом искали бы медиану населения для каждой из этих групп.
    А что значить группировка, включающая не только название штата, но еще и и площадь и наделение?? Сколько элементов в каждой группе вы предлагаете получить???

    Идем дальше.
    Как подписать получившиеся значения в предыдущем dataframe по значениям столбцов
    Что значит "подписать ЗНАЧЕНИЯ"??? А "по значениям (??) столбцов? У столбца может быть множество значений. Что и как вы подписывать-то собрались?
    (Кстати, надеюсь, вы понимаете, что data_1 у вас это НЕ DataFrame? )
    Если бы вы сделали группировку, про которую я написал выше
    data_1 = data.groupby(['cl'])['pop'].median()
    то в результате бы действительно, получили бы объект типа Series
    cl
    norm      16266631
    tropic    26448193

    Что тут вы собрались подписывать???

    Идем далее:
    data_1.keys() перебирал и собирал кортеж в DataFrame
    Что вы перебирали?
    Понятно, что data_1.keys() вернет мультииндекс вашего нового датафрейма.
    MultiIndex([('California', 'tropic', 423967),
                (   'Florida', 'tropic', 170312),
                (  'Illinois',   'norm', 149995),
                (  'New York',   'norm', 141297),
                (     'Texas', 'tropic', 695662)],
               names=['state', 'cl', 'area'])

    А надо-то вам что?? И какой кортеж вы преобразовали в DataFrame? И главное - зачем? К элементу мультииндекса можно обратиться по индексу списка.

    Ну, и главный вопрос (очевидно, так как именно он написан в заголовке темы) - что с чем вы объединяете? Он так и остался загадкой.

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

    @dmshar
    Ну, если вы нам вместо файла приводите некоторый список, то будем считать, что из файла сотворить соответствующий список вы сможете. Пусть это будет список lines в примере ниже.
    А дальше - все просто:
    import re
    lines=["mail@domen1:password","mail@domen2:password","mail@domen3:password",
           "mail@domen4:password","mail@domen2:password", "mail@domen3:password",
           "mail@domen4:password","mail@domen2:password"]
    st_list=[]
    for ln in lines:
        st=re.findall(r"\@(.*?)\:", ln)
        st_list.append(st[0])
    st_count = {i: st_list.count(i) for i in st_list}
    print (st_count)


    Результат:
    {'domen1': 1, 'domen2': 3, 'domen3': 2, 'domen4': 2}
    Ответ написан
    Комментировать
  • В чём причина ошибки?

    @dmshar
    Интересно, в какой "этой сфере" имеется ввиду. Если в программировании на языке Python - то возникает вопрос: А новичек книжку хоть по Python открыл? Если бы открыл, то даже бы новичек понял, что вот тут:
    a=[]
    создается ПУСТОЙ список , а вот тут:
    = a[0]
    делается попытка из этого ПУСТОГО списка что-то прочитать.
    Это как-то "не очень", в какой бы сфере вы бы не специализировались.

    Кстати, могу предположить, что следующим вопросом "новичка в сфере" будет сначала
    Почему появляется ошибка, свзанная с xrange(0,num), а потом "а почему у меня ошибка в строчках:
    print min
    print index"

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

    @dmshar
    Примерно так-же, как из среднего получить значения ряда его составляющих. По простому - никак.
    Вы сначала умышленно существенно ограничиваете количество имеющейся в вашем распоряжении информации, а потом говорите - а как из этого сокращенного описания получит исходное расширенное.
    Ответ написан
    Комментировать
  • Как узнать сколько элементов и их значений есть в словаре?

    @dmshar
    Если "у меня есть словарь" то абсолютно непонятно, как вы его умудрились создать, не понимая, как со словарем работать? Просто где-то скопировали готовый код, что-ли?

    dict = {'А': [173, 70], 'Б': 12345, 'С': 'Привет семье', 'D':{'D1':'Aу','D2':'[1,2,3]','D3':321}}
    for itm in dict.items():
        print(itm)


    Результат:
    ('А', [173, 70])
    ('Б', 12345)
    ('С', 'Привет семье')
    ('D', {'D1': 'Aу', 'D2': '[1,2,3]', 'D3': 321})


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

    @dmshar
    Hagel, Ну, не хотите устанавливать pip - используйте Anaconda. Судя по вопросу все (ну 99.99%) того, что вам потребуется в ближайшее время там есть. В том числе и pip.
    Ответ написан
    1 комментарий