Задать вопрос
  • Как работает кошелек https://t.me/CryptoBot?

    trapwalker
    @trapwalker
    Чтобы что-то вывести, нужно это спера обменять. Чтобы бло на что обменять, нужно что-то ввести. На кошелёк дяде - владельцу бота.
    Никакие ключи не хранятся ни на каких среверах телеграмма. Всё это хранится в памяти и БД бота, то есть в полном доступе у владельца бота. Телега ни при чем.
    Представьте нелегального менялу на рынке, который трётся там и предлагает поменять денюшку. Вы ему суёте купюру, он вам суёт другую меняя по своему курсу. Обычно он даже не обманывает, ведь если он каждого будет обманывать, то каждый будет орать, суетиться, портить ему "прикормку" и репутцию.
    Но никакой гарантии, что он не испарится с вашей купюрой, или что не всучит фальшивую, а потом тоже испарится... Или лёгким движением напёрсточника облопошит, а вы и сами запутаетесь что и как вы там наменяли.
  • Почему условие выполняется не корректно?

    trapwalker
    @trapwalker Куратор тега Python
    #@Maksim_64, да, похоже тема исчерпана.
    Разве что не соглашусь, что отсутствие исключения при оптимизации - это негативный побочный эффект. На базе такого эффекта можно добиться что эффекта, схожего с монадой Maybe на минималках:
    К примеру, у вас есть список аргументов
    arg = sys.argv
    # Вам нужно получить первый после нулевого элемент, если он есть, 
    # а если его нет, то взять значение из настроек, или что-то по умолчанию:
    conf = {'cfg': 'config.ini'}
    param = arg[1:] and arg[1] or conf and conf.get('cfg') or 'default.ini'

    И такая запись вполне прозрачно читается.
    На тернарных операторах или if'ах это было бы громоздко и нечитабельно.
    В SQL есть удобная функция coalesce, а в питоне её может щаменить цепочка выражений, соединенных через `or`.
    Сплошная польза.
  • Почему условие выполняется не корректно?

    trapwalker
    @trapwalker Куратор тега Python
    Максим Припадчев, В данном случае их нет, но они могли бы быть. Просто нужны особенные дополнительные ментальные усилия. чтобы удивиться там, где ожидаешь and\or встретив "&|".
    Не берите в голову. Есть хоть одна причина использования битовых операций вместо логических в этом примере? Нет.
    Кстати, а побочные эффекты могут возникнуть при ошибках в выражениях, описывающих критерии.
  • Таблица умножения, python. Ошибка?

    trapwalker
    @trapwalker Куратор тега Python
    Алан Гибизов, есть вероятность, что ИИ вроде ChatGPT обладает некоторым интеллектом, но не обладает сознанием.
    Это как у Питера Уотса в его романе "Ложная Слепота". Аналогия просматривается очень и очень завораживающая.
  • Таблица умножения, python. Ошибка?

    trapwalker
    @trapwalker Куратор тега Python
    Александр Нестеров, это я понял, но можно же и дальше пойти=) Почему, к примеру, по-вашему, автор вопроса игнорирует просьюы отформатировать код в тексте вопроса? Почему не видит и не понимает очевидного места, где у нее крестик?
    Я ничем не могу внятно это для себя объяснить, кром етого, что с нами разговаривает нейросеть, а не человек.
    Когда-то это должно произойти, согласитесь.
  • Таблица умножения, python. Ошибка?

    trapwalker
    @trapwalker Куратор тега Python
    Александр Нестеров, думаете он научился сам регаться на Q&A и доставать тут всех своими вопросами, если что-то не получается?
  • Таблица умножения, python. Ошибка?

    trapwalker
    @trapwalker Куратор тега Python
    pure_pure, Внимательно глазами читаем: {} x {} = {}
    Никакого понимания. Плюс крестиком называть - пипец.
    Не понимать как абзацы в принте работают...
  • Таблица умножения, python. Ошибка?

    trapwalker
    @trapwalker Куратор тега Python
    Кто-то просто скопипастил откуда-то готовый код не пытаясь разобраться.=)
  • Таблица умножения, python. Ошибка?

    trapwalker
    @trapwalker Куратор тега Python
    Отформатируйте код специальным тегом. Вы разве не видите, что отступы без тега поломались? А для питона отступы критичны, как читать ваш код в таком виде?
  • Почему условие выполняется не корректно?

    trapwalker
    @trapwalker Куратор тега Python
    Надо, кстати, отметить, что такие тупые запретительные критерии - плохая идея в целом.
    Гораздо правильнее - это считать энтропию введённого пароля, и, если она превышает пороговую, принимать пароль.
    У примеру, что плохого в пароле без верхнего регистра и спецсимволов, если он длиной больше 20 символов?
    Что плохого, если в пароле нет цифр, если он длинный, или что нет спец-символов, если итоговая энтропия получается достаточно большая.
    Зато такие пароли гораздо легче запоминать, не придётся записывать на бумажках под клавиатурой, не придётся часто восстанавливать, потому что забыл куда поставил восклицательный знак в этот раз, а какое 'o' заменил на нолик, чтобы большой запоминающийся пароль стал удовлетворять тупым требованиям сайта.
  • Почему условие выполняется не корректно?

    trapwalker
    @trapwalker Куратор тега Python
    Максим Припадчев, погодите. Как раз логические and и or работают с оптимизацией. А бтовые "&|" вычисляют всё выражение независимо от промежуточныхрезультатов.
  • Почему условие выполняется не корректно?

    trapwalker
    @trapwalker Куратор тега Python
    Максим Припадчев, А почему вы в своём коде не использовали булевы операции? Результат был бы идентичный.
    Ваше выражение:
    not (crit1 & crit2 & crit3)
    по результату не отличается от:
    not (crit1 and crit2 and crit3)
    А если инвертировать критерии обратно, как было у автора в вопросе, то:
    crit1 or crit2 or crit3
    И не надо думать для чего использовались эти & и какие проблемы они могут принести.
  • Почему условие выполняется не корректно?

    trapwalker
    @trapwalker Куратор тега Python
    Максим Припадчев,
    Если выносить критерии, то лучше уж вот так:
    crits = [
        lambda password: len(password) >= 8,
        lambda password: sum(s.isnumeric() for s in password) >=3,
        lambda password: sum(s.isupper() for s in password) >=1,
    ]
    
    while True:
        password = input('Придумайте пароль: ')
        if not all(crit(password) for crit in crits):
            print('Вы ввели не надежный пароль')
        else:
            print('Пароль надежный')
            break


    Все криитерии имеет смысл проверять только в случае, если нужно выдать полный отчет о несоответствиях пользователю:
    crits = [
        ((lambda password: len(password) >= 8), '- слишком короткий'),
        ((lambda password: sum(s.isnumeric() for s in password) >=3), '- должно быть >2 цифр'),
        ((lambda password: sum(s.isupper() for s in password) >=1), '- должно быть >1 символа в верхнем регистре'),
    ]
    
    while True:
        password = input('Придумайте пароль: ')
        problems = [comment for crit, comment in crits if not crit(password)]
        if problems:
            print('Вы ввели не надежный пароль:')
            print('\n'.join(problems))
        else:
            print('Пароль надежный')
            break
  • Почему условие выполняется не корректно?

    trapwalker
    @trapwalker Куратор тега Python
    YНе надо учить новичков плохому.
    Это довольно грязный хак, причем с не всегда очевидными побочными эффектами.
    Штатные булевы операции (and, or) участвуют в ленивой оптимизации на уровне интерпретации.
    То есть, когда результат уже очевиден и дальше можно высисления не проихводить, тогда интерпретатор возвращает уже понятный результат.
    Например a() and b()
    Если результат a() будет False, то функция b не будет даже вычисляться. Потому что уже очевидно, что результат всего выражения будет False из-за первого аргумента.
    В вашем случае "&" не оптимизируется и вы бестолку вычиляете то, что не нужно вычислять.
    Нельзя стать программистом не понимая этой особенности большинства языков программирования.

    Именно поэтому ваш код учит плохому.
  • Почему условие выполняется не корректно?

    trapwalker
    @trapwalker Куратор тега Python
    Emince,
    если ввести 8 цифр, выпадает в "пароль надежный"

    Так у вас условие, что пароль НЕнадёжный, если МЕНЬШЕ 8 сиволов. То есть если 8 или больше символов, то надёжный.
    Просто переведите на русский язык это условие и прочитайте. "И" тут неуместно.
    "И" будет истино когда одновременно истины и левая и правая его часть.
    "ИЛИ" будет истино, если любая хотя бы одна ее часть будет истина.
  • Как исправить ошибку в программе на python?

    trapwalker
    @trapwalker Куратор тега Python
    laspo, успехов.
    Заведите себе блокнотик для слов и понятий, которые не знаете. Выписывайте в него все непонятные вещи и планомерно разбирайтесь с каждой.
    Поначалу список в блокноте будет очень стремительно расти и будет казаться, что растёт он гораздо быстрее, чем вы вычеркиваете слова с которыми разобрались.
    Иногда тема будет слишком большой или преждевременной, например, ООП в данном случае. Тогда переносите это слово в конец списка для изучения в будущем. Некоторые темы придётся переносить в конец несколько раз.
    Вам не нужен ООП пока вы не почувствуете его необходимость в своём коде. Когда ваш код в процедурном стиле станет излишне громоздкм и запутанным, а использование ООП сократит его в разы без потери функциональности - это тот момент, когда вам уже нужно ООП.
    Вам правильно сказали про соответствие инструмента работе. Вскопать грядку горнопроходческой машиной, экскаватором или отбойным молотком гораздо сложнее чем лопатой.
    Если грядка маленькая, то и трактор с плугом на ней не развернётся. Применение его будет избыточным и сложным делом, которое не скажется положительно на качестве.
    Всему своё время. А начать нужно с теории и не перепрыгивать через темы.
    Возьмите хорошую книгу и читайте по порядку.
  • Как исправить ошибку в программе на python?

    trapwalker
    @trapwalker Куратор тега Python
    laspo,
    Но я это делал для того чтоб понять саму тему методов и объектов.

    Вы не поймёте тему ООП просто тыкая пальцем в небо. Это как разбираться в устройстве наручных часов расколошматив их кувалдой. Не нужно перепрыгивать через теорию. Вы формируете своим методом тыка Карго-культ в практически буквальном смысле.

    Вы точно так же не поняли функции, когда начали их неправильно использовать не разобравшись для чего они нужны.
  • Как исправить ошибку в программе на python?

    trapwalker
    @trapwalker Куратор тега Python
    laspo,
    начинать изучать сам ООП с полного нуля или абсолютно всё?

    Всё, начная с того, для чего нужны функции, что такое чистая функция, какие требования нужно соблюдать при создании функций, как правильно разбить алгоритм на функции.
  • Как исправить ошибку в программе на python?

    trapwalker
    @trapwalker Куратор тега Python
    Алан Гибизов,
    методом тыка устранить дым из выхлопной трубы машины

    В данном случае автор видел у машин дым и теперь пытается накурившись привязать свой дым скотчем к выхлопной трубе, чтобы машина поехала.
  • Как исправить ошибку в программе на python?

    trapwalker
    @trapwalker Куратор тега Python
    laspo,
    Когда я учил функции я знал эту ошибку она означала что нужно передать аргументы в параметры

    Вы плохо "учили функции". Вы не понимаете для чего они нужны. Вернитесь и повторите материал по учебнику.