• Как работает кошелек https://t.me/CryptoBot?

    trapwalker
    @trapwalker
    Александр Маджугин,
    т.е. это вообще не кошелек, а типо как банк что ли?

    Технически это кошелёк, но не ваш, а владельца бота.
    Банком это "заведение" только кажется. потому что у банка есть регуляторные механизмы хоть какие-то, а тут просто "подержи деньги в своём кармане, мужик, я вижу ты честный парень, держи, мне надо обменять эту котлету на крипту".

    Когда-то был такой интересный разводняк автоматизированный. Сарафаном тебе рассказывают про некий номер телефона, мол если туда переводишь денежку со своего телефонного счета, в ответ обратно тут же прилетает вдвое больше. Народ поверив в удачу пробует кинуть рубль и тут же получает два. Потом кидает 10, и получает 20! Кидает 100 (ну не жалко же для проверки), и получает 200! Ну ок, работает. не могут же они себе в убыток работать. Наверно бабло так отмывают и им это выгодно каким-то образом. Херяк, туда 1000. а в ответ тишина.
    Итого у скамеров -110+1000=890р чистой прибыли с одного лоха. Если задержку возврата сделать рандомизированной и не мгновенной, то некоторые будут умудряться сливать туда куда больше, ведь самое лучше, что умеют делать люди - это обманывать самих себя. Сабя обманывать мы учимся всю жизнь и хорошо в этом поднаторели.
  • Как работает кошелек https://t.me/CryptoBot?

    trapwalker
    @trapwalker
    Александр Маджугин, ну это же видно по логике работы с ботом.
    Чтобы что-то обменять, вам предлагается задепонировать крипту. При депонировании вам предлагается перечислить денежки на предлагаемый кошелёк. Да, этот кошелёк вам тут же сгенерили пустой специально под ваш "вклад", чтобы "видеть", что это от вас денежки. Но это кошелёк владельца бота, вам никто ключи от него не даст.
    Да и как вообще можно было подумать, что ключи от кошелька могут храниться "где-то на серверах телеграма"?!
    Порой удручает непонимание "криптоинвесторами" предметной области, в которой они пытаются оперировать.

    Порой это напоминает как Буратино сажал свои денежки в поле чудес. Не, ну он тоже не слышал, чтобы так кого-то обманули. Зачем читать и разбираться, ведь проще поверить всем сердцем во всё светлое и неосознанно фильтровать все негативные примеры?

    Нет никакого смысла сравнивать количество случаев соскамливания фиатных банков и криптобирж-криптообменников. Причина проста - это несооставимые объёмы рынков. По сравнению объёмами фиатного рынка крипты просто нет. И я не про объёмы денежных средств сейчас, а про количество осмысленных транзакций, где продается или покупается конкретный товар.

    Если вас не обманули и не обокрали в крипте - это не заслуга каикх-то особенных свойств крипты, это просто ваше позитивно предвзятое отношение к рискам и малый опыт.
    Буратино тоже с лёгким сердцем делал свои криптоинвестиции, вед его в этом еще ни разу не обманули. И даром что случаев просто не было, Барстино оперирует своей статистикой из нуля случаев.
    Ну ок, у криптомагнатов это единицы, сотни, тысячи транзакций. Кому-то везёт и они энтузиасты. А кто-то потерял всё бабло на соскамившемся обменнике, или валюте, или бирже, хлопнул себя по лбу, сказал в сердцах "я так и знал" и живет себе дальше.

    Ничего не имею против крипты. Мне нравится элегантность идеи и как всё внутри устроено. Но всегда смущает поверхностность понимания криптоинвесторами и хомячками как работает вся эта математика в крипте. Они не вникают толком ни в риски, ни в суть всех этих механизмов. А стоило бы.
  • Как работает кошелек 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,
    начинать изучать сам ООП с полного нуля или абсолютно всё?

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