Найти - Пользователи
Полная версия: От новичка
Начало » Python для новичков » От новичка
1
uecm
Начал изучать python с нуля. Предыдущий опыт только basic в школе. Да, я не молод. Лучшее обучение это постоянное применение новых знаний. Вот такой проект планирую. Создать список игроков любителей в один из командных видов спорта. У каждого игрока свой рейтинг. Программа будет разбивать игроков на команды в зависимости от рейтинга игрока. Соответственно программа будет редактировать рейтинг игроков в зависимости от результата игры. Список желающих играть в определенный день формировать через какой нибудь телеграмм-бот. При полном наборе запись заканчивается. Далее буду фантазировать.
Реальные задачи я перед собой ставлю? Начинаю с создания списка с атрибутами. Или нужен словарь, массив?
Наставьте на путь истинный
py.user.next
uecm
Наставьте на путь истинный
Ну, ты её как себе представляешь в качестве пользователя? Если предположить, что эта программа уже полностью готова и ты ей пользуешься, то как ты ей пользуешься? Вот с этого и надо начинать.

uecm
Начинаю с создания списка с атрибутами. Или нужен словарь, массив?
А это уже потом решается. Сначала нужно представить не то, что у неё под капотом, а то, что у неё с внешней стороны, - то, как её видит пользователь, как её видишь ты, запуская её в операционной системе.

Для начала создаёшь пустую программу, которая запускается. В ней при запуске выводишь пользователю сначала просто сообщение про игроков. Когда всё работает и сообщение выводится, заменяешь вывод сообщения на чтение игроков откуда-то и вывод сообщения про прочитанных игроков. И так потихоньку пишешь её.
uecm
py.user.next
Сначала нужно представить не то, что у неё под капотом, а то, что у неё с внешней стороны
Я это сейчас представляю как список игроков с рейтингом, историей рейтинга всё это возможно на сайте, мобильном приложении.
Но, начать хочу с бэкенда. Меня сейчас заводит именно рандомное условно деление на основании рейтинга и фиксация результатов и корректировка рейтинга. Такой путь не правильный? Обязательно с фронта начинать?
xam1816
uecm
напишите сюда какая информация имеется,т.е чем оперируем
напишите что должно получиться после обработки информации(хотя бы примерно как эта информация должна изменится)
py.user.next
uecm
Обязательно с фронта начинать?
Это не фронт, а абстракция. Начинать надо с абстракции, а заканчивать реализацией этой абстракции. Не наоборот.

Например: я хочу построить дом, чтобы в нём жить. И вот мы думаем снаружи: а должно там быть тепло? а должно там быть светло? а должно там быть сухо? а должно там вкусно пахнуть? И после ответов на эти вопросы мы ставим следующие вопросы: что нужно сделать, чтобы в доме было тепло? что нужно сделать, чтобы в доме было светло? что нужно сделать, чтобы в доме было сухо? что нужно сделать, чтобы в доме вкусно пахло? И так мы получаем ответы: мы должны сделать систему отопления; мы должны сделать окна; мы должны сделать канализацию; мы должны сделать вентиляцию. Таким образом, спускаясь всё ниже и ниже к подробностям, ты приходишь к тому, что кирпичи дома должны быть в форме одинаковых параллелепипедов, а не в форме тетраэдров да ещё и разного размера.

А сейчас ты начинаешь то ли с треугольных кирпичей строить дом, то ли с круглых. Закончится это известно чем - ничем.
uecm
py.user.next
py.user.next
Логика понятна. С логикой согласен.

xam1816
напишите сюда какая информация имеется,т.е чем оперируем
напишите что должно получиться после обработки информации(хотя бы примерно как эта информация должна изменится)
Сейчас игроки записываются в чате вотсапп. Потом вручную данные вносятся в эксель. Макрос разбивает игроков на команды. По результату игр меняется рейтинг игроков и это всё фиксируется в виде списка игроков с рейтингом на сайте-конструкторе. Например,
  1. Иванов 50
  • Петров 46
и т.д.
Хочу всё это связать и автоматизировать.
xam1816
uecm
Потом вручную данные вносятся в эксель
какие данные вводятся,напишите пример
uecm
Макрос разбивает игроков на команды
по какой логике макрос разбивает на команды?
uecm
По результату игр меняется рейтинг игроков
по какой логике меняется рейтинг игроков?
uecm
xam1816
какие данные вводятся,напишите пример
Иванов 50
Петров 47
Сидоров 45
и т.д. 15 человек
xam1816
по какой логике макрос разбивает на команды?
Разбивает игроков близких по рейтингу на корзины (5 корзин) и рандомно из каждой корзины по одному человеку в каждую команду. Общий рейтинг игроков каждой команды должен быть приблизительно равным.
xam1816
по какой логике меняется рейтинг игроков?
После игры считается количество побед и поражений каждой команды и игрокам лучшей команды рейтинг повышается, а худшей снижается.
xam1816
я понял это вот так
 ключи имена игроков:значение рейтинг
{'A': 43, 'B': 46, 'C': 45, 'D': 40, 'E': 42, 'F': 44, 'G': 41, 'H': 44, 'I': 43, 'J': 45, 'K': 40, 'L': 45, 'M': 40, 'N': 47, 'O': 48}
разбиты на 5 корзин по 3 игрока получается
[['D', 'K', 'M'], ['G', 'E', 'A'], ['I', 'F', 'H'], ['C', 'J', 'L'], ['B', 'N', 'O']]
пермешиваем каждую корзину
[['D', 'K', 'M'], ['G', 'A', 'E'], ['H', 'F', 'I'], ['J', 'C', 'L'], ['B', 'N', 'O']]
по одному человеку в каждую команду
[['D', 'G', 'H', 'J', 'B'], ['K', 'A', 'F', 'C', 'N'], ['M', 'E', 'I', 'L', 'O']]
Process finished with exit code 0
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB