Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
kitscribe

Kit Scribe

Хаброжитель
  • 13
    вклад
  • 21
    вопрос
  • 15
    ответов
  • 80%
    решений
Лайки
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Как получить данные автора сообщения и канала откуда оно пришло в Telethon?

    Luck20yan @Luck20yan
    print(message.from_id.user_id)  # ИД отправителя
    from_user = await client.get_entity(message.from_id.user_id)   # Получаем отправителя по ИД
    print(from_user.username)  # Юзернейм отправителя
    
    print(message.chat_id)  # ИД чата
    chat = await client.get_entity(message.chat_id)  # Получаем чат по ИД
    print(chat.username)  # Юзернейм чата


    У from_user есть все стандартные first_name, last_name и тд которые ты можешь использовать также как и username в примере выше
    Ответ написан 06 апр.
    1 комментарий
    Нравится 1 1 комментарий
  • Как я могу накрутить просмотры на видео на youtube?

    hottabxp
    Сергей Карбивничий @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    Что я упускаю?
    То, что в Google инженеры и разработчики честно отрабатывают свою очень хорошую зарплату.

    Как я могу накрутить просмотры на видео на youtube?

    602c234805793235857394.jpeg
    PS: Картинка выше не шутка! Ищите в Google - "Клик фермы"
    Ответ написан 16 февр.
    4 комментария
    Нравится 4 4 комментария
  • Как запустить приложение Flask, как сервис в linux?

    vasilyevmn
    Михаил Васильев @vasilyevmn
    DevOps
    Вот тут подробный мануал, пройдите по шагам:

    https://www.digitalocean.com/community/tutorials/h...
    Ответ написан 23 нояб. 2020
    2 комментария
    Нравится 1 2 комментария
  • Из какого металла сделан чип в сим-картах?

    approximate_solution
    approximate solution @approximate_solution
    JS Developer. Angular\React\Vue\Ember
    https://www.quora.com/What-materials-are-used-for-...

    RE:

    Основным компонентом SIM-карты является электронный чип, изготовленный из кремния с некоторыми добавленными примесями, такими как фосфор. Он покрыт металлами, такими как золото, чтобы сформировать внешний слой, который вступает в контакт с вашим мобильным телефоном. Этот чип находится внутри оболочки из пластика.
    Ответ написан 04 февр.
    Комментировать
    Нравится 1 Комментировать
  • Как сделать так чтобы при обновлении одном столбце изменялись другие в django?

    SoreMix
    SoreMix @SoreMix
    yellow
    Возможно, конечно, это не совсем правильное решение, но можно было бы переопределить метод save() у модели, добавив расчет за грамм

    class Product(models.Model):
        name = models.CharField(default='', max_length=50, help_text='Название продукта')
        price = models.IntegerField(default=0, help_text='Цена за упаковку')
        grams = models.IntegerField(default=0, help_text='Количество в упаковке (грамм)')
        price_for_gram = models.IntegerField(default=0, help_text='Цена за грамм')
    
        def save(self, *args, **kwargs):
            self.price_for_gram = int(self.price / self.grams)
            super().save(*args, **kwargs)
    Ответ написан 03 февр.
    1 комментарий
    Нравится 2 1 комментарий
  • Python list и JavaScript array, как использовать?

    YuriyVorobyov1333
    Yuriy Vorobyov @YuriyVorobyov1333
    Software Developer (Node.js/Angular)
    1) Сделать json на стороне сервера, и отдать его на клиент
    2) Заюзать тот же infinite scroll (можно еще подсмотреть реализацию тут)
    Ответ написан 22 дек. 2020
    Комментировать
    Нравится 1 Комментировать
  • Как выводить значение ключей по парам?

    sergey-gornostaev
    Сергей Горностаев @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Суть такова, словарь в вопросе - сущность лишняя. Просто читайте множество по три элемента и всё.
    Ответ написан 09 нояб. 2020
    2 комментария
    Нравится 1 2 комментария
  • Как разместить по 3 карточки bootstrap в строке?

    sashabeep
    sashabeep @sashabeep
    Дней без вопросов про Slick на тостере : 0
    Как и любые другие элементы - в колонках заданной ширины
    Ответ написан 27 окт. 2020
    Комментировать
    Нравится 1 Комментировать
  • Как разместить по 3 карточки bootstrap в строке?

    AntonLitvinenko
    Антон Литвиненко @AntonLitvinenko
    HTML coder
    Я не знаю, за что отвечает обертка с классом card-group, но если хотите в бутстрап, то ваша разметка будет выглядеть както так
    <div class="card-group">
    	<div class="row">
    		{% for post in post_list %}
    		<div class="col-md-4">
    			<div class="card" style="max-width: 250px; height: auto;">
    				<div class="card-body">
    					<h5 class="card-title">{{ post.title }}</h5>
    					<p class="card-text">{{ post.body | truncate(100) | safe }}</p>
    					<a href="{{ post.get_absolute_url() }}" class="card-link">View post</a>
    					<p class="card-text">{{ post.date }}</p>
    				</div>
    			</div>
    		</div>
    		{% endfor %}
    	</div>
    </div>
    Ответ написан 25 окт. 2020
    Комментировать
    Нравится 1 Комментировать
  • Как правильно использовать margin: 0 auto;?

    jurasarts
    jurasarts @jurasarts
    Этот прием не работает, если элемент не блочный или у него не указана ширина.
    Ответ написан более трёх лет назад
    Комментировать
    Нравится 28 Комментировать
  • Как вывести целые числа из массива?

    aRegius
    aRegius @aRegius
    Python Enthusiast
    print(*X)
    Ответ написан 24 окт. 2020
    Комментировать
    Нравится 2 Комментировать
  • Как можно улучшить алгоритм, чтобы он быстрее работал?

    Ищю в поисковиках @qid00000000
    Мало что знаю, но информацию найду в гугле
    Переписал часть кода на свой говнокод:

    spoiler

    import itertools
    import time
    import numpy as np
    
    number = 1020
    
    print("Входное число: ",number)
    
    t1 = time.time()
    def next_bigger(n):
        nlst = list(str(n))
    
        for i in range(len(nlst) - 1, -1, -1):
            tempLst1 = nlst[:i]
            tempLst2 = nlst[i:]
    
            vs = list(itertools.permutations(tempLst2, len(tempLst2)))
    
            temp = [int("".join(tempLst1 + list(x))) for x in vs if int("".join(tempLst1 + list(x))) > n]
            if len(temp) >= 1:
                return min(temp)
    
    print("Часть 1: %s"%str(next_bigger(number)))
    
    
    t2 = time.time()
    
    
    def nb(n):
        numlist = np.array(list(str(n)),dtype=int)
        
        i = -1
        while i > -len(numlist) and numlist[i-1] >= numlist[i]:
            i -= 1
            if -len(numlist) == i:
                return None
        
        nextnum = i
        for j in range(i,0,1):
            if numlist[i-1] <numlist[j] and numlist[nextnum] > numlist[j]:
                nextnum = j
        
        numlist[i-1],numlist[nextnum] = numlist[nextnum],numlist[i-1]
        tail = np.array(numlist[i:])
        tail.sort()
        return ''.join(np.array(numlist[:i],dtype=str)) + ''.join(np.array(tail,dtype=str))
    
    print("Часть 2: %s"%str(nb(number)))
    
    
    t3 = time.time()
    
    print("Время выполнения первой части кода: %s\nВремя выполнения второй части кода: %s"%(str(t2-t1),str(t3-t2)))



    Вот тест:
    $ python3.8 permut.py 
    Входное число:  1020
    Часть 1: 1200
    Часть 2: 1200
    Время выполнения первой части кода: 5.14984130859375e-05
    Время выполнения второй части кода: 0.00011038780212402344
    
    $ python3.8 permut.py 
    Входное число:  100000020100000
    Часть 1: 100000021000000
    Часть 2: 100000021000000
    Время выполнения первой части кода: 0.010196208953857422
    Время выполнения второй части кода: 0.00019025802612304688


    Можно заметить, что на больших числах, ваш код сдает позиции.

    Можно преобразования переписать через использование map, но мне удобно numpy использовать.
    Ответ написан 21 окт. 2020
    1 комментарий
    Нравится 1 1 комментарий
  • Где ошибка в алгоритме пермутаций?

    o5a @o5a
    Алгоритм должен быть такой: с конца ищем первый символ, такой, что a[i] < a[i+1], так мы определяем наименьший разряд, который сделает число больше предыдущего. Затем нам нужно минимизировать "хвост", чтобы получилось число, ближайшее к исходному (чем меньше хвост, тем оно ближе к исходному). Для этого мы хвост сортируем по возрастанию и переставляем наше число наименьшего разряда с первым числом из хвоста, большим его.

    В примере с 1234567890.

    1. Ищем цифру наименьшего разряда, когда a[i] < a[i+1]. Это 8, хвост [9, 0].
    2. Сортируем хвост [0, 9] и идем по нему в поисках первой цифры, большей нашей 8. Это 9.
    3. Переставляем их и возвращаем результат
    1234567809 => 1234567908
    Ответ написан 21 окт. 2020
    3 комментария
    Нравится 2 3 комментария
  • Как сделать конкатенацию слов из списка?

    0xD34F
    0xD34F @0xD34F
    chunkSize = 2
    print(':'.join(''.join(g[i:i + chunkSize]) for i in range(0, len(g), chunkSize)))
    Ответ написан 18 окт. 2020
    1 комментарий
    Нравится 2 1 комментарий
  • IndexError: list index out of range как исправить?

    Владимир @AstraVlad
    Финансист, консультант, программист-любитель
    split вернул пустой список или список из 1 элемента, а код пытается получить второй элемент (которого нет). Можно проверить длину списка перед обращением, можно завернуть в try-except и обработать исключение там.
    Ответ написан 25 сент. 2020
    4 комментария
    Нравится 3 4 комментария
  • Как сделать вычисления только функциями?

    0xD34F
    0xD34F @0xD34F
    seven = lambda x = None: x(7) if callable(x) else 7
    five = lambda x = None: x(5) if callable(x) else 5
    
    times = lambda x: lambda y: x * y
    Ответ написан 25 сент. 2020
    Комментировать
    Нравится 7 Комментировать
  • Как составить regexp для Google Sheets?

    dodo512 @dodo512
    =REGEXREPLACE(D1, "^7 ", "8 ")
    Ответ написан 21 мая 2020
    9 комментариев
    Нравится 1 9 комментариев
  • Мегафон очень низкая скорость интернета при хорошем уровне связи. Из-за чего?

    vvpoloskin
    Валентин @vvpoloskin Куратор тега Компьютерные сети
    Инженер связи
    Давайте я погадаю:
    • Некорректно поставлен MTU
    • загрузка соты (много других клиентов сосут с этой базуки)
    • Вы находитесь в пересечении радиопокрытия и соединение скачет между несколькими БС одновременно
    • Канал до базухи мегафона идёт через радиорелейку, общая пропускная способность которой 10M
      Позвоните в КЦ или боту в приложении напишите
    Ответ написан 06 мая 2020
    1 комментарий
    Нравится 2 1 комментарий
  • Почему такой порядок вывода на консоль при использовании декораторов?

    Михаил @twistfire92
    Представим декоратор makebold фигурными скобками { }
    А декоратор makeitalic - квадратными скобками [ ]
    Открывающаяся скобка - код до вызова декорируемой функции, закрывающаяся - код после выполнения декорируемой функции.
    Декорируемая функция пусть будет многоточием ...

    Тогда ход выполнения вашей программы можно описать так: { [ ... ] }
    А теперь прочитайте это слева направо.
    Ответ написан более года назад
    Комментировать
    Нравится 2 Комментировать
  • Какие варианты слияния списков есть?

    trapwalker
    Сергей Паньков @trapwalker Куратор тега Python
    Программист, энтузиаст
    a = [x or y for x, y in zip(a, b)]
    Ответ написан более года назад
    Комментировать
    Нравится 1 Комментировать
Оценили как «Нравится»
  • 1
  • 2
  • Следующие →
Самые активные сегодня
  • dimonchik2013
    Dimonchik
    • 10 ответов
    • 0 вопросов
  • MikUrrey
    • 9 ответов
    • 1 вопрос
  • TNPTSYWWCC
    Uneasy Hearts Weigh the Most
    • 7 ответов
    • 0 вопросов
  • Aleksandr-JS-Developer
    Aleksandr-JS-Developer
    • 7 ответов
    • 0 вопросов
  • Casufi
    Владимир
    • 6 ответов
    • 0 вопросов
  • 0xD34F
    0xD34F
    • 6 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации