• При роботе с библиотекой colorama(0.4.6) не изменяеться цвет текста?

    Maksim_64
    @Maksim_64
    Data Analyst
    Если у вас windows тогда
    from colorama import init, Fore
    init()
    print(Fore.RED + 'Hello World!')

    будет работать как вы ожидаете. Это на линукс терминал, init() не нужен, а на windows вы должны инициализироваться посредством init(). init() вы используете только раз и потом работаете с библиотекой как обычно.
    Ответ написан
  • Как узнать самое большое число в Python?

    Maksim_64
    @Maksim_64
    Data Analyst
    n = int(input("Введите количество учеников: "))
    students_height = []
    for i in range(1,n+1):
        students_height.append(int(input(f'Введите рост ученика под номером {i} (см): ')))
    max_height = max(students_height)
    number = students_height.index(max_height)+1
    print(f'Самый высокий ученик под номером: {number} имеет рост {max_height} см')

    Если конечно же правильно понял условие вашей проблемы. То вот код попробуйте спрашивает сколько учеников затем спрашивает рост каждого ну и выводит рост и номер ученика. (номера начинаются с 1 как у вас)
    Ответ написан
    Комментировать
  • Почему функция возвращает None?

    Maksim_64
    @Maksim_64
    Data Analyst
    а где return добавьте и функция начнет вам возвращать то что вы ожидаете.
    return longest_substring(string, substring_len - 1)
    Ответ написан
    Комментировать
  • В чем проблема?

    Maksim_64
    @Maksim_64
    Data Analyst
    когда вы создаете таблицу вот здесь
    cursor.execute("""CREATE TABLE IF NOT EXISTS users (
            id INTEGER,
            cash INTEGER,
            date TEXT,
            prel TEXT
        )""")
    вы создаете таблицу с 4 колонками.
    Везде где вы вставляете в таблицу данные например
    cursor.execute(f"INSERT INTO users VALUES ({id}, {money}, '{str(datetime.date.today())}')")
    вы вставляет ряд с тремя переменными id, money и сегодняшнюю дату, а где четвертая переменная? которая при создании таблицы называется prel TEXT И такое не в одном месте, вместо 4 преременных ожидаемых базой вы предоставили только 3.
    Ответ написан
    Комментировать
  • Почему выдает ошибку "sqlite3.OperationalError: near "users": syntax error"?

    Maksim_64
    @Maksim_64
    Data Analyst
    query = """INSERT OR REPLACE INTO users 
    (id, money, bitcoin) 
    VALUES(?, ?, ?);"""
    cursor.execute(query, (user_id, money, bitcoins))
    Ответ написан
    1 комментарий
  • Можно ли в Google Colab запустить более одного файла *.ipynb?

    Maksim_64
    @Maksim_64
    Data Analyst
    Да конечно же можете и не только два но и больше. На всякий случай только что проделал git clone с гитхаба и все в колабе работает. Последовательность действий была следующая.
    1. Создал пустой notebook дал ему доступ к drive
    from google.colab import drive
    drive.mount('/content/drive')

    2.
    %cd drive/My\ Drive/
    %mkdir repos
    %cd repos

    3. !git clone репозитарий (без ковычек просто адресс)
    4. Все дальше вернулся в drive, нашел новый репозитприй и запустил с него несколько нотебуков (они открылись каждый в новой вкладке) и запустил код естественно в этих нотебуках. Работает без каких либо проблем.
    Ответ написан
    4 комментария
  • Почему не появляется колонка ID?

    Maksim_64
    @Maksim_64
    Data Analyst
    А где вы ее создаете, я не вижу в коде колонки ID. Есть Message ID, Есть Telegram ID, есть User ID. А вот ID колонку вы не где создаете. Если же вы имеете ввиду колонку ID которая будет увеличивается на 1 c каждым добавлением новой записи в таблицу. Ну так надо создать ее согласно документацииpeewee AutoFieldкласс это точно вам нужно, поскольку у вас в базе данных две таблицы вам нужно в обе добавить AutoField с параметром column_name = 'ID'.
    Ответ написан
    Комментировать
  • Нужно написать загадку используя python. Где я сделал ошибку?

    Maksim_64
    @Maksim_64
    Data Analyst
    Вообще подобные проблемы лучше решать так, вечный цикл и условие его прерывания.
    print('Какой знак зодиака больше всего боится самолётов?')
    while True:
        s = input('Введите ответ и нажмите Enter: ')
        if s.lower() == 'близнецы':
            break
    print('Вы отгадали загадку')


    Если модернизировать ваш вариант то нужно переделать условие следующим образом
    print('Какой знак зодиака больше всего боится самолётов?')
    s = ''
    while not(s == 'близнецы' or s == 'Близнецы'):
        s = input('Введите ответ и нажмите Enter: ')
    print('Вы отгадали загадку')


    Причина же почему ваш код не работает как ожидается (при введении правильных ответов прерывание цикла не происходит значение в цикле остается TRUE)
    Ответ написан
    Комментировать
  • Как сделать так, чтобы окно webdriver не закрывалось после исполнения скрипта?

    Maksim_64
    @Maksim_64
    Data Analyst
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    o = Options()
    o.add_experimental_option("detach", True)
    driver = webdriver.Chrome(options=o)
    driver.get('http://www.google.com')

    Ну все работает, окно не закрывается.
    Ответ написан
    Комментировать
  • Как сделать рандом в питоне?

    Maksim_64
    @Maksim_64
    Data Analyst
    import random
    round(random.uniform(1,5),2)

    Это будет выдавать десятичную дробь в диапазоне от 1 до 5, с двумя цифрами после запятой.

    (ОТРЕДАКТИРОВАНО) после небольшой проверки выяснилось что данный код иногда (редко будет выдавать) числа такие 1.1 или 2.3 что бы избежать этого написал вот такую функция которая всегда будет выдать случайное число с двумя цифрами после запятой.
    import random
    def get_random(a=1,b=5):
        while True:
            number = round(random.uniform(a,b),2)
            if len(str(number).split('.')[1]) == 1:
                continue
            else:
                return number
    Ответ написан
    2 комментария
  • Удалять ли отрицательную корреляцию, если строишь линейную регрессию?

    Maksim_64
    @Maksim_64
    Data Analyst
    Конечно же нет, негативная корреляция нормальный результат. Когда одна переменная увеличивается другая уменьшается это негативная корреляция. В то время как позитивная корреляция это когда одна переменная увеличивается увеличивается и другая. Вот и вся разница между позитивной и негативной корреляцией.
    Ответ написан
    4 комментария
  • Как сформировать запрос с учетом математического выражения?

    Maksim_64
    @Maksim_64
    Data Analyst
    SELEСT ID
    FROM таблица
    WHERE fakt < size AND farm = 1

    где WHERE оставит только те ряды для которых fakt < size AND farm = 1 будет истинно. (TRUE)
    (Не заметил с утра вы хотите выбрать только ID колонку по этому изменил с SELECT * (выбрать все) на (SELECT ID) (выбрать ID))
    Ответ написан
  • Почему выдается ошибка NameError: name 'InlineKeyboardMarkup' is not defined?

    Maksim_64
    @Maksim_64
    Data Analyst
    потому что python не знает что такое InlineKeyboardMarkup на прямую вы его не импортируете, по всей видимости данный класс содержится в модуле types так что по всей видимости код должен выглядеть так types.InlineKeyboardMarkup причем это у вас не в одном месте, так что везде передед Inline вставьте types
    Ответ написан
  • Как работает преобразование времени в Python?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Отступы в вашем коде (2) пробела должно быть 4.
    2. По существу вопроса 1 ns (нано секунда) = 10^(-9). То есть 1 sec / 1_000_000_000 то есть вы перевели в секунды. А ваш код (якобы выдает в (милисекундах)). По факту ваш результат в секундах. %60 - ничего не меняет в вашем коде вы можете убрать (и там где start и там где end естественно) и ничего не изменится. число на выходе вы получите тоже самое.
    3. Правильно использовать
    start = time.perf_counter()
    ваш код
    end = time.perf_counter()

    end - start даст вам продолжительность выполнения кода в секундах.
    Обратите еще раз внимание что ваш код подсчитал в в секундах а вы говорите что милисекундах. print("time taken:", f"{end-start:.5f}ms")
    Ответ написан
    Комментировать
  • Почему выдается ошибка при создании двумерного массива?

    Maksim_64
    @Maksim_64
    Data Analyst
    Запятую пропустил.
    ID = [[42080, 36039, 35505, 33824, 762074],
          ['2.1', '3.78', '4.2', '2.1', '2.8']
         ]
    Ответ написан
    Комментировать
  • Как запустить jupyter notebook из другой папки?

    Maksim_64
    @Maksim_64
    Data Analyst
    очень просто, перейдите в терминале с помощью (cd) в нужную папку и запускайте jupyter notebook или jupyter lab.
    Ответ написан
  • PackagesNotFoundError: The following packages are not available from current channels: - tensorflow-text?

    Maksim_64
    @Maksim_64
    Data Analyst
    С указанного канала он не может произвести установку.
    pip install tensorflow-text должен решить все ваши проблемы имейте ввиду в терминале должен быть активирован base а то установит не в окружение анаконды а в другое. Различные конфликты, что то перестало работать это обычное дело. Мы используем анаконду потому что это супер удобно, надо просто к ней привыкнуть. Абсолютно, все библиотеки в нее входят, но большое количество существующих без конфликтов работают прекрасно. С tensorflow иногда могут быть проблемы но решаемые. Вам необязательно всегда использовать conda install, установщик pip тоже в деле и его можно использовать.
    Ответ написан
    6 комментариев
  • Что такое «base» в начале командной строки?

    Maksim_64
    @Maksim_64
    Data Analyst
    base это ваша окружающая среда, что бы отключить conda deactivate что бы включить обратно conda activate.
    VS code не видит потому что использует другую окружающую среду. ctrl+shift+p запускаем панель управления в ней печатаем python выбираем selected interpreter выбираем тот который использует анаконда и все там прекрасно будет видеть.
    Ответ написан
    1 комментарий
  • Как нейросети обрабатывают текстовую информацию?

    Maksim_64
    @Maksim_64
    Data Analyst
    Вы правы каждое слово кодируется. Существует огромное количество методов кодирования для NLP (Natural Language Processing). Основной метод кодирования это представления слова в виде вектора где самая важная часть (что делает NLP возможным) при создании такого вектора слова которые используются в схожих контекстах имеют схожее но не одинаковое векторное представление. Векторная схожесть может быть подсчитана разными способами ну например Евклидово расстояние. В таком случае например вы будете иметь уникальный вектор для каждого слова где вектора с близкими Евклидовыми расстояниями будут означать слова которые используются в схожих контекстах. Что касается формата данных которые получит нейронная сеть, то каждый вектор трансформируется где каждое число трансформируется в число 0 до 1. Существует опять таки несколько техник. самая простая формула (x - min(X)) /(max(X) - min(X)), где x это каждый элемент вектора, ну и соответственно min(X) - минимальный элемент вектора max(X) максимальный элемент вектора. подобная трансформация применяется к каждому элементу каждого вектора. Это примитивный пример, для понимания идеи. Данный вопрос глубокий различные техники кодирования могут быть очень сложны и существуют не мало разных подходов для решения подобных задач. Что касается двоичного входа для нейронных сетей то ответ нет. Нейронные сети могут в том числе получать двоичные значения, но не ограничены этим, также они могут получать дискретные (целые) или числа с плавающей запятой.
    Ответ написан
    Комментировать
  • Python - Есть ли аналог Selenium для работы в браузере с профилем?

    Maksim_64
    @Maksim_64
    Data Analyst
    Selenium позволяет вам управлять браузером не только инкогнито но и с вашим профайлом.
    o = webdriver.ChromeOptions()
    o.add_arguments = {'user-data-dir':'Путь к вашему профайлу на жестком диске'}
    driver = webdriver.Chrome(executable_path="путь к chrome driver", options=o)

    все дальше вы будете вы будете управлять хромом под вашим профайлом.
    Ответ написан
    7 комментариев