• Как сделать конкатенацию слов из списка?

    0xD34F
    @0xD34F
    chunkSize = 2
    print(':'.join(''.join(g[i:i + chunkSize]) for i in range(0, len(g), chunkSize)))
    Ответ написан
    1 комментарий
  • Прохожу курс на Stepik. Почему выдается ошибка list index out of range?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Ошибка потому, что вы перепутали, что такое у вас i.
    Сначала это у вас один из элементов списка чисел; а потом вы его считаете индексом.

    Рекомендую перестать использовать однобуквенные имена переменных и не лениться называть их по смыслу. Не for i in a:
    а лучше:
    for next_element in my_massive:

    Тогда уж вы не перепутали бы и не стали бы обращаться к my_massive[next_element - 1]
    Ответ написан
    Комментировать
  • Как удалить слово в строке python?

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

    print("Допустим так".replace("Допустим", ""))

    регулярками:
    import re
    print(re.sub('Допустим', '', "Допустим так"))
    Ответ написан
    1 комментарий
  • Как установить библиотеку python скачанную на пк?

    Zoominger
    @Zoominger Куратор тега Python
    System Integrator
    pip install /root/vaitota.zip
    Или:
    unzip ne-umeu-v-gugl.zip
    cd ne-umeu-v-gugl
    pip install .
    Ответ написан
    Комментировать
  • Как происходит присваивание Python?

    @dmshar
    Все очень просто. Рассмотрим ПОСЛЕДОВАТЕЛЬНОСТЬ выполенния:

    x1=3
    x2=5
    x1=x2
    x2+=x1

    Вначале имеем x1=3, x2=5.
    После выполнения первого оператора получаем x1=5, x2=5.
    После выполнения второго оператора получаем x1=5, x2=10.

    При выполнении
    x1=3
    x2=5
    x1, x2 = x2, x1+x2

    Вначале имеем x1=3, x2=5.
    Потом выполняем то, что вы написали последовательно,
    x1=x2, Но до завершении этой операции результат операции сохраняется во временной переменной.
    Поэтому при выполнении x2=x1+x2 в процессе используются начальные значения переменных. Результат, кстати, тоже заноситься во временную переменную.
    И только при завершении всего оператора результаты из временных переменных записываются по назначению.
    В итоге имеем
    x1=5, x2=8

    Попробуйте сравнить
    x1, x2, x3 = x2, x1+x2, x1+x2+x3
    и
    x1=x2
    x2=x1+x2
    x3=x1+x2+x3

    Станет понятнее.
    На самом деле результат ЛЮБОГО оператора всегда сначала заноситься во временную переменную и только в момент завершения всего оператора переноситься по назначению. Но в одном случае это не влияет на результат, а в другом случае - влияет.
    Ответ написан
    1 комментарий
  • Как сделать так, чтобы переменная внутри if стала общей?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    f никогда не будет равно 5, так как input возвращает строку, а не число, поэтому блок условного выражения никогда не выполнится и присваивания k нового значения не произойдёт.
    Ответ написан
    1 комментарий
  • Почему не работает elif?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    1. Заверни в цикл ввод ответа и проверки.
    2. Ты для введенного значения применяешь capitalize, то есть введенный текст у тебя Show и Quit, а сравниваешь ты с showи quit
    from sys import exit
    import random
    
    slv = {'Hello': 'Здравствуй', 'Bye': 'Пока', 'Lesson': 'Урок'}
    keys = list(slv.keys())
    
    print('''Введите "show", чтобы увидеть весь словарь.
    Для завершения введите "Quit".''')
    
    while True:
        a = random.choice(keys)
        print(slv[a])
        print('Напишите перевод слова')
        while True:
            per = input().capitalize()
            if per == a:
                print('Отлично! Продолжаем!')
                break
            elif per == 'Show':
                print(slv)
            elif per == 'Quit':
                exit()
            else:
                print('Ответ неверен. Попробуйте ещё раз.')
    Ответ написан
    1 комментарий
  • Как обрабатывать другие элементы в цикле for во время использования time.sleep()?

    Используйте асинк, примерный код.
    import asyncio
    from time import time
    
    els = list(range(20))
    
    
    async def rm_list(v):
        await asyncio.sleep(5)
        print(v)
    
    
    async def _main():
        await asyncio.gather(*(
            rm_list(value) for value in els
        ))
    
    
    start = time()
    loop = asyncio.get_event_loop()
    loop.run_until_complete(_main())
    loop.close()
    print(time() - start)
    Ответ написан
    Комментировать
  • Какова разница между Scrapy и BeautifulSoup+Requests?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    BeautifulSoup - это просто html-парсер.
    Requests - это просто библиотека для осуществления HTTP-запросов.
    Scrapy - это фреймворк для скрэпинга/краулинга, который из коробки умеет в асинхронщину, перебор страниц, представление данных и много чего еще, при чем делает это быстро и эффективно.
    Так, что есть что - разобрались.
    Если нужно спарсить что-то один раз в небольшом объёме - requests + lxml (да, он лучше, чем bs как минимум тем, что умеет в xpath) более чем.
    Большой объём? aiohttp + lxml (но тут уже хоть немного нужно уметь в python).
    Нужно построить краулер (или много краулеров), который будет работать ежедневно и пробегать кучу страниц? Косплеить велосипедного инженера - это очень хорошо, но scrapy лучше.
    Ответ написан
    2 комментария
  • Как посчитать сумму цифр числа пока оно не станет однозначным?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Не нужны тут ни цикл, ни рекурсия:
    def digital_root(n):
        return n % 9 or n and 9
    
    s = input()
    r = digital_root(int(s))

    https://en.wikipedia.org/wiki/Digital_root
    Ответ написан
    Комментировать
  • Алгоритм пропуска числа?

    Stalker_RED
    @Stalker_RED
    n = 19
    visitors = '16 11 5 7 15 18 6 13 9 10 14 12 2 19 4 17 3'.split(' ')
    missed = list(filter(lambda x: str(x) not in visitors, range(1, n+1)))

    https://ideone.com/PxuDHE
    Ответ написан
    2 комментария
  • Алгоритм пропуска числа?

    @zexer
    n = 19
    numbers_as_string = '16 11 5 7 15 18 6 13 9 10 14 12 2 19 4 17 3'
    numbers = [int(i) for i in numbers_as_string.split(' ')]
    
    all_numbers = set(range(1, n + 1))
    numbers = set(numbers)
    sorted_diff = [str(i) for i in sorted(all_numbers.difference(numbers))]
    print(' '.join(sorted_diff))
    Ответ написан
    3 комментария
  • Как найти первых клиентов на фрилансе, если есть только учебные макеты?

    @LJ322
    Макдональд спит наверное, за него отвечу: "Классно, когда розовые очки разбиваются, да?"

    От себя: начинать с нулём опыта на фрилансе - гиблое дело. Может в нулевые было как-то по-другому, но сейчас на каждой площадке уже сформировался свой пласт специалистов. Которых порой даже ждут, пока они заказы выполнят и освободятся.
    Если уверены, что способны выполнить задачу, за которую можно заплатить - лучше пробуйтесь в офис

    Даже за бесплатно никто не хочет давать заказ

    Это отпугивает... Честно. Выглядит странно как-то. Можно знакомым/друзьям за бесплатно сделать. А на площадке - ну такое

    P.S. Глянул ваше резюме, которое вы скидывали весной. Люди, которые не являются разработчиками (а может и являются), часто интерпретируют "знаю основы HTML и CSS" как "знаю названия тегов". Это вызывает недоверие. Остальные замечания вам в том же посте указали, но вы судя по всему, за ~5 месяцев их не исправили.
    Ответ написан
    2 комментария
  • Алгоритм пропуска числа?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Это обобщение известной задачи, где пропущено одно число. Там можно, например, вычесть все числа из n(n+1)/2. Или про-xor-ить все числа от 1 до n и все числа в массиве.

    Для двух чисел нужно составить какие-то 2 уравнения, Например, найдите сумму двух чисел и сумму их квадратов: Сумма пропущенных чисел - это n*(n+1)/2 - (сумма всех чисел в массиве). Здесь надо аккуратно не забыть о возможном переполнении (если ваш язык, например, С++). Сумма квадратов: сумма квадратов всех чисел от 1 до n минус квадраты всех чисел в массиве.

    Итак, вы за O(n) двумя не вложенными циклами (один для суммы квадратов 1..n, другой для обработки всех чисел массива) нашли X+Y=A и X^2 + Y^2=B.

    Теперь решите уравнения относительно X и Y: Выразите X через Y из первого уравнения и подставьте во второе. Решите квадратное уравнение и получите:
    X = (A-sqrt(2B-A^2))/2, Y = (A+sqrt(2B-A^2))/2.

    Тут, хоть и есть квадратные корни, они в итоге дают целые числа.
    Ответ написан
    Комментировать
  • Не понимаю суть self в python, кто может объяснить?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    Это не функция, а ссылка и ссылается она на объект класса.
    Ты не понимаешь что такое self потому что ты не понимаешь сути самого объекта.
    Вот, хотя-бы это внимательно прочитай.
    Ответ написан
    Комментировать
  • Где ошибка в коде замены символов строки по словарю?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Вообще - эта задача в Python так решается:
    x = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ !:.,-"
    y = "ГЗЩПБОФЪШЭАУЯЙЦДЮКНЕЖМТВСРЧЛЫИЬХ !:.,-"
    my_table = str.maketrans(x, y)
    
    text ='БЫЛ'
    text.translate(my_table)


    'ЗЛУ'
    Ответ написан
    Комментировать