• Как сделать шанс в python?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    random.choices([5,7], weights=[80,20], k=1)[0]

    Либо нечто похожее через cum_weights
    random.choices([5,7], cum_weights=[0.8, 1.0], k=1)[0]


    https://docs.python.org/3/library/random.html#rand...
    Ответ написан
    Комментировать
  • Как заменить значения в массиве на python без индексов?

    @Drill
    abc = ['1', '4', '45']
    abc = [str(int(x)+5) for x in abc]
    Ответ написан
    Комментировать
  • Стоит ли писать собственное IDE на Python?

    @towin
    Если программированием занимаетесь только месяц, то нужно писать свою операционную систему.
    Своя IDE - это для тех, кто уже 2 месяца программирует.
    Ответ написан
    Комментировать
  • Почему не происходит выход из цикла в python 3.8.0?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Да, дружище, это не Паскаль

    Подумай, с чем ты сравниваешь переменную 'c'? Не с ДА или YES, а с результатом логической операции or
    т.е. твоё ('Да') or ('да') всегда вернёт True
    Переменная же 'c' - не пустая, а, значит, тоже True в смысле булевых отношений. Так что у тебя всегда "ДА"
    Если переделывать твой Паскаль-код, то это, скорее,
    if c == 'Yes' or c == 'yes' or c == 'y' и т.д.

    Но лучше писать сразу на Питоне: проверяй полученное значение на вхождение в список. Так проще:
    if c in ['Yes', 'yes', 'y', 'Да']:

    Но у тебя сплошной повтор одного и того же (плюс я могу ж и "YES" ввести!). Будь проще:
    if c.lower() in ['yes', 'y', 'да', 'д']:

    Далее - вынеси блок
    c = input('Продолжить работу? Д/Н ')
    if c == ('Да') or ('да') or ('Yes') or ('yes') or ('y') or ('Y') or ('д') or ('Д'):
      continue
    elif c == ('Нет') or ('нет') or ('No') or ('no') or ('n') or ('N'):
      break

    после оператора if. Тогда он будет у тебя написан один раз. Это правильно. Не повторяй себя.

    Ну, как-то так...

    print('\n')
    print('Калькулятор\n\n')
    while True:
      x = int(input('Введите первое число: '))
      y = int(input('Введите второе число: '))
      z = input('Введите знак: ')
      res = 0
      if z == '+':
        res = x + y
      elif z == '-':
        res = x - y
      elif z == '*':
        res = x * y
      elif z == '/':
        res = x / y
      else:
        print('Оператор обязателен и может быть только + или - или * или / ')
        continue
    
      print('Ваш результат: ',res)
      c = input('Продолжить работу? Д/Н ')
      if c.lower() in ['да', 'yes','y', 'д']:
        continue
      elif c.lower() in ['нет', 'no', 'n', 'н']:
        break


    Тут можно ещё много чего усовершенствовать, но, надеюсь, главное ты понял :-)
    Ответ написан
    Комментировать
  • Зачем ботов заворачивают во Flask (как пример)?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Чтобы вместо long-polling использовать http call back, например) хотя пилить ботов в таком виде на своем сервере все-равно мазохизм
    Ответ написан
    Комментировать
  • Как запустить несколько ботов Telegram на одном сервере?

    seriyPS
    @seriyPS
    1) Бот использует telegram bot api или работает как telegram клиент?
    Скорее всего первое.

    2) Тспользует webhook или long pooling?
    Может и не так важно, но способ решения будет разным.

    Просто взять и запустить 2 бота с одинаковым bot api token не получится: нельзя включить 2 webhook или 2 long pooling одновременно.
    Ответ написан
    1 комментарий
  • Какой самый экономный дистрибутив Linux?

    Ответ написан
    Комментировать
  • Какую лучше windows установить для работы с большим количеством приложений одновременно?

    Jump
    @Jump Куратор тега Windows
    Системный администратор со стажем.
    Какую лучше windows установить для работы с большим количеством приложений одновременно?

    На выбор Windows 7, 8, 10
    Меньше смысла нет уже не поддерживается, больше еще не вышла.
    По стабильности одинаковы.

    Я обычно открываю много приложений одновременно, например скайп, хром, что-то программирую, что-то параллельно устанавливаю, что-то еще.
    Это в первую очередь память, потом диск и процессор.
    Норма для комфортной офисной работы 8гб - не сильно много, не очень тяжелых приложений.
    Если много приложений, то минимум 16гб, лучше больше.
    Система на быстром диске - SSD.

    Если у вас меньше 8гб памяти и система на HDD - то все будет медленно и печально.

    В ответе жду что-то типа номера винды, разрядность, и назначение(профессиональная там и тд).
    Не имеет значения, тормоза при недостатке оперативной памяти будут на любой ОС, хоть линукс, хоть мак.
    Ответ написан
    Комментировать
  • Насколько у меня правильный код ООП php?

    @D3lphi
    Здесь плохо всё, к сожалению.

    Начнем с того, что вы неверно наследуете классы. Почему у вас класс, отвечающий за подключение к базе данных является родителем класса, работающим с заказами? Наследование применяется, если можно сказать, что что-то является чем-то. Например, разработчик является работником; компьютер является устройством и тд. Здесь же у вас вообще близко такой логике не получится следовать. Вы должны передавать хотя бы объект для работы с бд через инъекцию, например, в конструктор. В идеале, нужно использовать паттерн репозиторий для работы с базой данных.

    Класс SearchOrder у вас не только выполняет запросы, но еще и работает с данными, хранит состояние этих самых данных, фильтрует данные (strip_tags()). Непорядок. Это все нужно разделять. У вас вообще получаются какие-то богообъекты, которые умеют во все.

    Вы каждый раз повторяете строки с подготовкой запроса, биндингом параметров, отправкой запроса и тд. Не думали, что неплохо бы было написать какую-нибудь обертку и выполнять запросы как-нибудь так:
    $result = $wrapper->select("SELECT * FROM `tablename` WHERE `id` = :id", ['id' => 5]);

    ?

    Вы вызываете connect() в методах. То есть, каждый вызов этого метода будет приводить к установке нового соединения с базой данных, даже если оно уже было установлено. Соединение с базой данных это достаточно дорогостоящая операция.

    Зачем вы используете свойства, если можно обойтись обычными локальными переменными:
    $this->orderID = (int) strip_tags($orderID);
    $this->column = (string) strip_tags($column);
    $this->value = (string) strip_tags($value);

    ?

    Почему вы стриппите тэги у идентификатора? вы настолько не уверены в том, что влетает в функцию:
    strip_tags($orderID);
    ?

    Если вы не используете php 7 и, как следствие, скалярный тайпхинтинг, то должны делать проверки на тип входящего аргумента. Если что-то не так с типом, бросаем исключение (А не приводим его к нужному)! Например:
    if (!is_string($arg)) {
        throw new InvalidArgumentTypeException('string', $arg);
    }

    Это в идеале. Вы не обязаны это делать, конечно же. Но вот такие проверки делают приложение безопаснее. Хотя, опять же, повторюсь, в 2017 нужно начинать новые проекты на php 7.1+.

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

    Кроме всего прочего, почитайте про стандарты оформления кода. Вы им не следуете.

    Вам пока рано писать такие велосипеды. Судя по всему, у вас нет опыта вообще. Посмотрите готовые решения: фреймворки, ORM, изучите их, хотя бы поверхностно разберитесь, как оно работает и уже потом пробуйте что-то сделать, исходя из полученных знаний.

    Желаю успехов!
    Ответ написан
    1 комментарий
  • Прикладные задачи python?

    @xDimus
    Задача - сделать сайт по обмену прикладными задачами для Python.
    Еще можно посмотреть на фриланс биржах что хотят заказчики.
    Ответ написан
    Комментировать
  • Кто где делает заметки по программированию?

    OnYourLips
    @OnYourLips
    Microsoft OneNote.
    Поддержки синтаксиса нет, но из IDE копируется нормально.
    Записывать что-то больше, чем пару строк кода бессмысленно - проще в свои старые проекты подсматривать.
    Ответ написан
    Комментировать
  • Наследование в JS. Может лучше использовать примеси?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Перейти на node 5+
    Использовать es6 классы.
    Ответ написан
    2 комментария
  • Как разместиться правильно на github?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    1. вместо /v1.0/ используйте теги гита
    2. test | tests | ... - обычно это каталог для авто тестов
    3. build | release | ... - это каталоги для собранных (релизных) файлов, тот же jquery.min.js например
    4. external | vendor | ... - каталоги с внешними зависимостями текущего проекта
    5. src | lib | ... - сам код проекта
    6. bin - каталог с исполняемыми файлами для проекта
    7. var | tmp | ... - каталог для временных файлов
    8. Makefile - настройка для консольной утилиты make
    9. bower.json - зависимости bower
    10. package.json - зависимости npm
    ...

    Видите ли, сейчас одно-файловые скрипты особо никто не пишет (не берем в расчет тривиальные на полторы строки).
    Ответ написан
    Комментировать
  • Как правильно менять тип переменной?

    Stalker_RED
    @Stalker_RED
    Да, так делают, и довольно часто. Конструкция !! для приведения к boolean вообще чуть ли не стандарт. В jQuery встречается, например.

    Вторая чуток пореже, и как правило, сперва ставят пустые кавычки, а потом уже переменную. Так:
    var num = 12345;
    var x = ("" + x)[3];
    console.log(typeof x, x); // string 4


    Третья еще реже, обычно просто ставится плюс перед переменной:
    var y = +x * 10;
    console.log(typeof x, typeof y, y); // string number 40


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

    И да, это делают не для оптимизации, а потому что
    Краткость - сестра
    Ответ написан
    Комментировать
  • Есть хороший мануал по bootstrap 3 на русском?

    Vanger
    @Vanger
    А что не так с getbootstrap.com там же знаний английского надо 5 класс 1 четверть.
    Ответ написан
    1 комментарий
  • Применение побитовых операторов в PHP и Javascript?

    Aco
    @Aco
    Заклинатель кода
    У меня в проекте есть объект имеющий 42 различных состояния, на подобии сброшен, завершился с ошибкой, процессе того, в процессе сего… и т.д. На каждое состояние выделен 1 бит, таким образом все возможные состояния вмещаются в одно свойство объекта. Так вот, есть много мест где мне надо решать что делать опираясь на эти флаги, для примера сравните 2 куска кода.
    if($this->_sock && !empty($this->_opts["keep-alive"]) && $this->_is_opened && $this->_step == "proceed") {
    }
    

    или
    if($this->_state & self::CAN_PROCEED) {
    }
    

    таким образом можно вместо кучи свойств и проверок ключей у массивов/объектов делать одну битовую операцию
    Ответ написан
    4 комментария