Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (2)

Наибольший вклад в теги

Все теги (27)

Лучшие ответы пользователя

Все ответы (60)
  • Заменить окончания через JS?

    @PavelMos
    Можно же без регекспов
    var str1 = 'Зеленая поляна';
    re1='ная';
    re2='яна';
    var str_new = str1.replace(re1, 'ную');
    var str_new=str_new.replace(re2,'яну');


    Можно для падежей также https://morpher.ru/ использовать.
    Ответ написан
  • Как работает магический метод __hаsh__ в питоне при создании словаря?

    @PavelMos
    Имхо навряд ли это с ним связано потому что при списке всё ок. Со словарём может быть проблема если последующий ключ равен предыдущему, тогда он его перезаписывает.
    [(user.email,user.name) for user in (jane, joe)]
    Out[26]: [('jdoe@example.com', 'Jane Doe'), ('jdoe@example.com', 'Joe Doe')]
    [(user,user.name) for user in (jane, joe)]
    Out[33]: 
    [(<__main__.User at 0x1614587a390>, 'Jane Doe'),
     (<__main__.User at 0x1614587a1d0>, 'Joe Doe')]

    UPD
    но
    {joe:joe.name, jane:jane.name}
    Out[46]: {<__main__.User at 0x1614587a1d0>: 'Jane Doe'}
    Ответ написан
  • Как разделить данные в строке Pandas?

    @PavelMos
    Имхо целесообразнее сделать атрибуты вроде "являяется ли комедией ? да/нет (1/0)", для этого ввести доп. столбцы. Если дублировать строки, то также сильно увеличится размер датафрейма.

    import pandas
    df1=pandas.DataFrame.from_records((
        (1, 'xxx', 'Adv|Ani|Doc'),
        (2, 'yyy', 'Adv|Doc'),
        (3, 'zzz', 'Comedy|Doc')),
    columns=['movieId','title','genres'])
    genres_list=('Adv','Ani','Doc','Comedy')
    for i in genres_list:
        df1[i]=[0]*len(df1) #сначала прописать всем нули
    print (df1)
    for idx, row in df1.iterrows():
        c=(row[2])
        l=c.split('|')
        for g in genres_list:
            if g in l:
                df1.loc[idx, g]=1
    print (df1)
       movieId title       genres  Adv  Ani  Doc  Comedy
    0        1   xxx  Adv|Ani|Doc    0    0    0       0
    1        2   yyy      Adv|Doc    0    0    0       0
    2        3   zzz   Comedy|Doc    0    0    0       0
       movieId title       genres  Adv  Ani  Doc  Comedy
    0        1   xxx  Adv|Ani|Doc    1    1    1       0
    1        2   yyy      Adv|Doc    1    0    1       0
    2        3   zzz   Comedy|Doc    0    0    1       1
    Ответ написан
  • Как спарсить файл .doc python?

    @PavelMos
    Можно регулярными выражениями. Выражение ищет фразу от diff до цифрвой комбинации до первого "doc"
    https://regex101.com/r/XLJ1t4/1
    import re
    import urllib
    regexp1='(\/diff\/\d{1,2}-\d{1,2}.?doc)'
    f=urllib.request.urlopen('http://1311.ru/info/info.php') #открывает, возвращает объект http (не текст)
    b=f.read() #читает из него в bytes
    text=b.decode() #из bytes в utf-8 (кодировка по умолчанию, поэтому в аргументах декод можно не писать) переводит в текст
    out=re.findall(regexp1, text)
    #далее, зная адрес сайта
    for i in out:
       print ("http://1311.ru"+i)
    http://1311.ru/diff/16-09.doc
    http://1311.ru/diff/17-09.doc

    Но тут, вероятно, надо брать самое новое расписание, тогда их надо сортировать по датам, разделяя дату и месяц, или проверять каким-то образом дату файла на сервере
    Ответ написан
  • Где здесь ошибка?

    @PavelMos
    Если отступы исправить, всё работает. Пользуйтесь средой, которая подсвечивает форматирование и при запуске указывает, в какой строке какая ошибка.
    По-английский также будет high высокий height высота, а не hight, а искусственный с двумя с пишется.

    import random
    
    low=1
    hight=100
    digit=0
    
    count=0
    win=False
    playGame=True
    x=0
    startScore=100
    score=0
    maxScore=0
    
    while(playGame):
        digit=random.randint(low,hight)
        print('Искусственный интеллект загадал число,')
        print('попробуйте отгадать его!')
        print(f'Загаданное число {digit}')
        print()
        while(not win):
            x=''
            while(not x.isdigit()):
                x=input(f'Введите число от {low} до {hight}: ')
                #print (x, type(x))
                if (not x.isdigit()):
                    print('Некорректно введено число!')
            x=int(x)
            if(x==digit):
           	    print()
                print('В точку!')
                win=True
        if(input('"Enter" - сыграть ещё; "0" - выход.')=='0'):
           playGame=False
        else:
        	win=False
    Ответ написан