• Django channels. Как получить список channel_name, которые добавленны в группу?

    nikkyhud
    @nikkyhud Автор вопроса
    Пишу скрипты на python
    channels = [channel for channel in channel_layer.groups.get(room_group_name, set())]
    Ответ написан
    Комментировать
  • Написал программу, которая определяет тип числа - составное или простое. Так ли всё ужасно написано?

    nikkyhud
    @nikkyhud
    Пишу скрипты на python
    def F(n):
        # начало с 2, ибо любое число делится на 1
        d = 2
        # увеличиваем делитель, пока число не делится на этот делитель
        while n % d !=0:
            d+=1
        # если делитель равен данному числу, то у данного числа нет делителей кроме 1 и самого числа => оно простое
        if n == d:
            return True
        # return обрабатывается лишь раз, поэтому если число простое, то он вернет True и выйдет из блока программы
        # не дойдя до False
        return False
    
    
    print(F(7))
    print(F(12))


    Стандартная проверка на простое число, вообще можно оптимизировать данный код и искать делители числа только до sqrt(n), ибо дальше если и есть множитель, то он будет иметь в пару множитель, который находится до sqrt(n). Доказывать этот факт не буду, разбор есть на youtube.
    Ответ написан
    Комментировать
  • Почему не совпадают результаты sha1?

    nikkyhud
    @nikkyhud
    Пишу скрипты на python
    Потому что одним и тем же символам соответствует несколько "кодов", которые подбираются рандомным образом.
    Например п = ['01','02','03'], р = ['10','20',30'], и = ['04','05'], в = ['40','50'], е = ['06','07','08'], т = ['60',70',80']
    и тогда слово "привет" можно будет закодировать 324 способами (на п - 3 способа, на р - 3 способа, на и - 2 способа, на в - 2 способа, на у - 3 способа и на т - 3 способа, т.е 3*3*2*2*3*3 = 324, простая комбинаторика) . Это нужно для усложнения расшифровки.
    Вот 2 примера, как можно зашифровать с помощью моего "шифра" слово "привет":
    1) 021005400870
    2) 033004500780
    Надеюсь ничего не напутал и понятно объяснил)
    Ответ написан
    1 комментарий
  • Как лучше было бы написать код?

    nikkyhud
    @nikkyhud
    Пишу скрипты на python
    1) Нет смысла делать вложенные условные операторы.
    2) Проверять не кратность на 22 бессмысленно, ибо мы уже проверяем на не кратность 2.
    3) В функциях типа int всегда должен быть возврат числа типа int, в точке входа (main) используют return 0.

    #include <iostream>
    using namespace std;
    
    int main() {
        int a = 4668;
        int b = 10415;
        int c = 0;
        int minValue = 0;
        for(int i=a; i<b; i++) {
            if(i%13!=0 && i%2!=0 && i % 33!=0 && (i%3==0 || i%11==0)) {
                c++;
                if(c == 1) {
                    minValue = i;
                }
            }
        }
        cout << c << minValue << endl;
    
        return 0;
    }
    Ответ написан
    Комментировать