Latest posts on Интеграция программы в telegram бот topichttps://python.su/forum/topic/40153/2021-04-02T11:19:25+03:00Общий :: Python для экспертов :: Интеграция программы в telegram бот
2021-04-02T11:19:25+03:00AD0DE412215756<u><span style="font-size:32px">ВОТ ТАК ВОТ ФОРМАТИРОВАНИЕ</span></u> <br/><span style="font-size:10px">см. ниже</span><br/>
Общий :: Python для экспертов :: Интеграция программы в telegram бот
2021-04-01T12:45:57+03:00DokinsKING215735У меня есть программа эмулятор игральных кубиков, он там делает броски с различными гранями и т. д, но это не важно. Я хочу её интегрировать в Telegram бота. Я уже начал это делать, но столкнулся с проблемой. Я не могу в @bot.message_handler(content_types<img src="/static/djangobb_forum/img/smilies/smile.png" /> сделать вычисления, а потом в @bot.callback_query_handler(func=lambda call: True) эти вычисления отправлять.<br/><br/>Я скину код, кто может наведите на верный путь<br/><br/><br/><strong><u>BOT телеграм:</u></strong><br/><br/><div class="code"><pre> <span class="kn">import</span> <span class="nn">config</span>
<span class="kn">import</span> <span class="nn">telebot</span>
<span class="kn">from</span> <span class="nn">telebot</span> <span class="kn">import</span> <span class="n">types</span>
<span class="n">bot</span> <span class="o">=</span> <span class="n">telebot</span><span class="o">.</span><span class="n">TeleBot</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">token</span><span class="p">)</span>
<span class="nd">@bot.message_handler</span><span class="p">(</span><span class="n">commands</span><span class="o">=</span><span class="p">[</span><span class="s1">'start'</span><span class="p">])</span>
<span class="k">def</span> <span class="nf">welcome</span><span class="p">(</span><span class="n">message</span><span class="p">):</span>
<span class="c1">#keyboard</span>
<span class="n">markup</span> <span class="o">=</span> <span class="n">types</span><span class="o">.</span><span class="n">ReplyKeyboardMarkup</span><span class="p">(</span><span class="n">resize_keyboard</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
<span class="n">item1</span> <span class="o">=</span> <span class="n">types</span><span class="o">.</span><span class="n">KeyboardButton</span><span class="p">(</span><span class="s1">'База данных'</span><span class="p">)</span>
<span class="n">item2</span> <span class="o">=</span> <span class="n">types</span><span class="o">.</span><span class="n">KeyboardButton</span><span class="p">(</span><span class="s1">'Генератор паролей'</span><span class="p">)</span>
<span class="n">item3</span> <span class="o">=</span> <span class="n">types</span><span class="o">.</span><span class="n">KeyboardButton</span><span class="p">(</span><span class="s1">'Эмулятор игральных кубиков'</span><span class="p">)</span>
<span class="n">markup</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">item1</span><span class="p">,</span><span class="n">item2</span><span class="p">,</span><span class="n">item3</span><span class="p">)</span>
<span class="n">bot</span><span class="o">.</span><span class="n">send_message</span><span class="p">(</span><span class="n">message</span><span class="o">.</span><span class="n">chat</span><span class="o">.</span><span class="n">id</span><span class="p">,</span><span class="s1">'Добро пожаловать, {0.first_name}!</span><span class="se">\n</span><span class="s1">Я - <b>{1.first_name}</b>'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">message</span><span class="o">.</span><span class="n">from_user</span><span class="p">,</span><span class="n">bot</span><span class="o">.</span><span class="n">get_me</span><span class="p">()),</span>
<span class="n">parse_mode</span><span class="o">=</span><span class="s1">'html'</span><span class="p">,</span> <span class="n">reply_markup</span><span class="o">=</span><span class="n">markup</span><span class="p">)</span>
<span class="nd">@bot.message_handler</span><span class="p">(</span><span class="n">content_types</span><span class="o">=</span><span class="p">[</span><span class="s1">'text'</span><span class="p">])</span>
<span class="k">def</span> <span class="nf">replayter</span><span class="p">(</span><span class="n">message</span><span class="p">):</span>
<span class="k">global</span> <span class="n">hap</span>
<span class="k">if</span> <span class="n">message</span><span class="o">.</span><span class="n">chat</span><span class="o">.</span><span class="n">type</span> <span class="o">==</span> <span class="s1">'private'</span><span class="p">:</span>
<span class="k">if</span> <span class="n">message</span><span class="o">.</span><span class="n">text</span> <span class="o">==</span> <span class="s1">'База данных'</span><span class="p">:</span>
<span class="n">markup</span> <span class="o">=</span> <span class="n">types</span><span class="o">.</span><span class="n">InlineKeyboardMarkup</span><span class="p">(</span><span class="n">row_width</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>
<span class="n">item1</span> <span class="o">=</span> <span class="n">types</span><span class="o">.</span><span class="n">InlineKeyboardButton</span><span class="p">(</span><span class="s1">'Общий балл'</span><span class="p">,</span> <span class="n">callback_data</span><span class="o">=</span><span class="s1">'1'</span><span class="p">)</span>
<span class="n">item2</span> <span class="o">=</span> <span class="n">types</span><span class="o">.</span><span class="n">InlineKeyboardButton</span><span class="p">(</span><span class="s1">'Добавить учеников'</span><span class="p">,</span> <span class="n">callback_data</span><span class="o">=</span><span class="s1">'2'</span><span class="p">)</span>
<span class="n">item3</span> <span class="o">=</span> <span class="n">types</span><span class="o">.</span><span class="n">InlineKeyboardButton</span><span class="p">(</span><span class="s1">'Удалить ученика'</span><span class="p">,</span> <span class="n">callback_data</span><span class="o">=</span><span class="s1">'3'</span><span class="p">)</span>
<span class="n">item4</span> <span class="o">=</span> <span class="n">types</span><span class="o">.</span><span class="n">InlineKeyboardButton</span><span class="p">(</span><span class="s1">'Изменить данные ученика'</span><span class="p">,</span> <span class="n">callback_data</span><span class="o">=</span><span class="s1">'4'</span><span class="p">)</span>
<span class="n">item5</span> <span class="o">=</span> <span class="n">types</span><span class="o">.</span><span class="n">InlineKeyboardButton</span><span class="p">(</span><span class="s1">'Распечатать базу данных'</span><span class="p">,</span> <span class="n">callback_data</span><span class="o">=</span><span class="s1">'5'</span><span class="p">)</span>
<span class="n">item6</span> <span class="o">=</span> <span class="n">types</span><span class="o">.</span><span class="n">InlineKeyboardButton</span><span class="p">(</span><span class="s1">'Поиск по возрасту'</span><span class="p">,</span> <span class="n">callback_data</span><span class="o">=</span><span class="s1">'6'</span><span class="p">)</span>
<span class="n">item7</span> <span class="o">=</span> <span class="n">types</span><span class="o">.</span><span class="n">InlineKeyboardButton</span><span class="p">(</span><span class="s1">'Поиск по баллу'</span><span class="p">,</span> <span class="n">callback_data</span><span class="o">=</span><span class="s1">'7'</span><span class="p">)</span>
<span class="n">markup</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">item1</span><span class="p">,</span> <span class="n">item2</span><span class="p">,</span> <span class="n">item3</span><span class="p">,</span> <span class="n">item4</span><span class="p">,</span> <span class="n">item5</span><span class="p">,</span><span class="n">item6</span><span class="p">,</span><span class="n">item7</span><span class="p">)</span>
<span class="n">bot</span><span class="o">.</span><span class="n">send_message</span><span class="p">(</span><span class="n">message</span><span class="o">.</span><span class="n">chat</span><span class="o">.</span><span class="n">id</span><span class="p">,</span> <span class="s1">'Какую операцию Вы хотите выполнить?'</span><span class="p">,</span> <span class="n">reply_markup</span><span class="o">=</span><span class="n">markup</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">message</span><span class="o">.</span><span class="n">text</span> <span class="o">==</span> <span class="s2">"Генератор поролей"</span><span class="p">:</span>
<span class="n">markup</span> <span class="o">=</span> <span class="n">types</span><span class="o">.</span><span class="n">InlineKeyboardMarkup</span><span class="p">(</span><span class="n">row_width</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>
<span class="n">item1</span> <span class="o">=</span> <span class="n">types</span><span class="o">.</span><span class="n">InlineKeyboardButton</span><span class="p">(</span><span class="s1">'Сгенерировать'</span><span class="p">,</span> <span class="n">callback_data</span><span class="o">=</span><span class="s1">'8'</span><span class="p">)</span>
<span class="n">markup</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">item1</span><span class="p">)</span>
<span class="n">bot</span><span class="o">.</span><span class="n">send_message</span><span class="p">(</span><span class="n">message</span><span class="o">.</span><span class="n">chat</span><span class="o">.</span><span class="n">id</span><span class="p">,</span> <span class="s1">'Какую операцию Вы хотите выполнить?'</span><span class="p">,</span> <span class="n">reply_markup</span><span class="o">=</span><span class="n">markup</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">message</span><span class="o">.</span><span class="n">text</span> <span class="o">==</span> <span class="s2">"Эмулятор игральных кубиков"</span><span class="p">:</span>
<span class="k">global</span> <span class="n">hap</span>
<span class="k">global</span> <span class="n">results</span>
<span class="n">n</span> <span class="o">=</span> <span class="n">bot</span><span class="o">.</span><span class="n">send_message</span><span class="p">(</span><span class="n">message</span><span class="p">,</span> <span class="s1">'Введите количество граней куба: '</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">message</span><span class="o">.</span><span class="n">from_user</span><span class="p">,</span> <span class="n">bot</span><span class="o">.</span><span class="n">get_me</span><span class="p">()))</span>
<span class="n">z</span> <span class="o">=</span> <span class="n">bot</span><span class="o">.</span><span class="n">send_message</span><span class="p">(</span><span class="n">message</span><span class="o">.</span><span class="n">chat</span><span class="o">.</span><span class="n">id</span><span class="p">,</span> <span class="s1">'Введите количество кубов: '</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">message</span><span class="o">.</span><span class="n">from_user</span><span class="p">,</span> <span class="n">bot</span><span class="o">.</span><span class="n">get_me</span><span class="p">()))</span>
<span class="n">g</span> <span class="o">=</span> <span class="n">bot</span><span class="o">.</span><span class="n">send_message</span><span class="p">(</span><span class="n">message</span><span class="o">.</span><span class="n">chat</span><span class="o">.</span><span class="n">id</span><span class="p">,</span><span class="s1">'Введите количество бросков: '</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">message</span><span class="o">.</span><span class="n">from_user</span><span class="p">,</span> <span class="n">bot</span><span class="o">.</span><span class="n">get_me</span><span class="p">()))</span>
<span class="n">sp</span> <span class="o">=</span> <span class="p">[</span><span class="n">n</span><span class="p">,</span><span class="n">z</span><span class="p">,</span><span class="n">g</span><span class="p">]</span>
<span class="n">hap</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">sp</span><span class="p">[</span><span class="mi">2</span><span class="p">]):</span>
<span class="n">hap</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
<span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">sp</span><span class="p">[</span><span class="mi">1</span><span class="p">]):</span>
<span class="n">d</span> <span class="o">=</span> <span class="n">randrange</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">sp</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
<span class="n">hap</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">d</span><span class="p">)</span>
<span class="n">results</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">hap</span><span class="p">:</span>
<span class="n">results</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">sum</span><span class="p">(</span><span class="n">i</span><span class="p">))</span>
<span class="n">markup</span> <span class="o">=</span> <span class="n">types</span><span class="o">.</span><span class="n">InlineKeyboardMarkup</span><span class="p">(</span><span class="n">row_width</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>
<span class="n">item1</span> <span class="o">=</span> <span class="n">types</span><span class="o">.</span><span class="n">InlineKeyboardButton</span><span class="p">(</span><span class="s1">'Вывести результаты всех кубиков'</span><span class="p">,</span> <span class="n">callback_data</span><span class="o">=</span><span class="s1">'9'</span><span class="p">)</span>
<span class="n">item2</span> <span class="o">=</span> <span class="n">types</span><span class="o">.</span><span class="n">InlineKeyboardButton</span><span class="p">(</span><span class="s1">'Вывести результаты всех бросков'</span><span class="p">,</span> <span class="n">callback_data</span><span class="o">=</span><span class="s1">'10'</span><span class="p">)</span>
<span class="n">item3</span> <span class="o">=</span> <span class="n">types</span><span class="o">.</span><span class="n">InlineKeyboardButton</span><span class="p">(</span><span class="s1">'Вывести максимальную сумму'</span><span class="p">,</span> <span class="n">callback_data</span><span class="o">=</span><span class="s1">'11'</span><span class="p">)</span>
<span class="n">item4</span> <span class="o">=</span> <span class="n">types</span><span class="o">.</span><span class="n">InlineKeyboardButton</span><span class="p">(</span><span class="s1">'Вывести минимальную сумму'</span><span class="p">,</span> <span class="n">callback_data</span><span class="o">=</span><span class="s1">'12'</span><span class="p">)</span>
<span class="n">item5</span> <span class="o">=</span> <span class="n">types</span><span class="o">.</span><span class="n">InlineKeyboardButton</span><span class="p">(</span><span class="s1">'Увеличить результат броска'</span><span class="p">,</span> <span class="n">callback_data</span><span class="o">=</span><span class="s1">'13'</span><span class="p">)</span>
<span class="n">markup</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">item1</span><span class="p">,</span><span class="n">item2</span><span class="p">,</span><span class="n">item3</span><span class="p">,</span><span class="n">item4</span><span class="p">,</span><span class="n">item5</span><span class="p">)</span>
<span class="n">bot</span><span class="o">.</span><span class="n">send_message</span><span class="p">(</span><span class="n">message</span><span class="o">.</span><span class="n">chat</span><span class="o">.</span><span class="n">id</span><span class="p">,</span> <span class="s1">'Какую операцию Вы хотите выполнить?'</span><span class="p">,</span> <span class="n">reply_markup</span><span class="o">=</span><span class="n">markup</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">bot</span><span class="o">.</span><span class="n">send_message</span><span class="p">(</span><span class="n">message</span><span class="o">.</span><span class="n">chat</span><span class="o">.</span><span class="n">id</span><span class="p">,</span> <span class="s1">'Я таких слов не знаю('</span><span class="p">)</span>
<span class="nd">@bot.callback_query_handler</span><span class="p">(</span><span class="n">func</span><span class="o">=</span><span class="k">lambda</span> <span class="n">call</span><span class="p">:</span> <span class="bp">True</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">callback_inline</span><span class="p">(</span><span class="n">call</span><span class="p">):</span>
<span class="k">try</span><span class="p">:</span>
<span class="k">if</span> <span class="n">call</span><span class="o">.</span><span class="n">message</span><span class="p">:</span>
<span class="k">if</span> <span class="n">call</span><span class="o">.</span><span class="n">data</span> <span class="o">==</span> <span class="s1">'1'</span><span class="p">:</span>
<span class="k">pass</span>
<span class="k">elif</span> <span class="n">call</span><span class="o">.</span><span class="n">data</span> <span class="o">==</span> <span class="s1">'2'</span><span class="p">:</span>
<span class="k">pass</span>
<span class="k">elif</span> <span class="n">call</span><span class="o">.</span><span class="n">data</span> <span class="o">==</span> <span class="s1">'3'</span><span class="p">:</span>
<span class="k">pass</span>
<span class="k">elif</span> <span class="n">call</span><span class="o">.</span><span class="n">data</span> <span class="o">==</span> <span class="s1">'4'</span><span class="p">:</span>
<span class="k">pass</span>
<span class="k">elif</span> <span class="n">call</span><span class="o">.</span><span class="n">data</span> <span class="o">==</span> <span class="s1">'5'</span><span class="p">:</span>
<span class="k">pass</span>
<span class="k">elif</span> <span class="n">call</span><span class="o">.</span><span class="n">data</span> <span class="o">==</span> <span class="s1">'6'</span><span class="p">:</span>
<span class="k">pass</span>
<span class="k">elif</span> <span class="n">call</span><span class="o">.</span><span class="n">data</span> <span class="o">==</span> <span class="s1">'7'</span><span class="p">:</span>
<span class="k">pass</span>
<span class="k">elif</span> <span class="n">call</span><span class="o">.</span><span class="n">data</span> <span class="o">==</span> <span class="s1">'8'</span><span class="p">:</span>
<span class="k">pass</span>
<span class="k">elif</span> <span class="n">call</span><span class="o">.</span><span class="n">data</span> <span class="o">==</span> <span class="s1">'9'</span><span class="p">:</span>
<span class="n">bot</span><span class="o">.</span><span class="n">send_message</span><span class="p">(</span><span class="n">call</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">chat</span><span class="o">.</span><span class="n">id</span><span class="p">,</span><span class="nb">str</span><span class="p">(</span><span class="o">*</span><span class="n">hap</span><span class="p">))</span>
<span class="k">elif</span> <span class="n">call</span><span class="o">.</span><span class="n">data</span> <span class="o">==</span> <span class="s1">'10'</span><span class="p">:</span>
<span class="k">pass</span>
<span class="k">elif</span> <span class="n">call</span><span class="o">.</span><span class="n">data</span> <span class="o">==</span> <span class="s1">'11'</span><span class="p">:</span>
<span class="k">pass</span>
<span class="k">elif</span> <span class="n">call</span><span class="o">.</span><span class="n">data</span> <span class="o">==</span> <span class="s1">'12'</span><span class="p">:</span>
<span class="k">pass</span>
<span class="k">elif</span> <span class="n">call</span><span class="o">.</span><span class="n">data</span> <span class="o">==</span> <span class="s1">'13'</span><span class="p">:</span>
<span class="k">pass</span>
<span class="n">bot</span><span class="o">.</span><span class="n">edit_message_text</span><span class="p">(</span><span class="n">chat_id</span><span class="o">=</span> <span class="n">call</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">chat</span><span class="o">.</span><span class="n">id</span><span class="p">,</span> <span class="n">message_id</span><span class="o">=</span><span class="n">call</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">message_id</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s1">'База данных'</span><span class="p">,</span><span class="n">reply_markup</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
<span class="n">bot</span><span class="o">.</span><span class="n">edit_message_text</span><span class="p">(</span><span class="n">chat_id</span><span class="o">=</span><span class="n">call</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">chat</span><span class="o">.</span><span class="n">id</span><span class="p">,</span> <span class="n">message_id</span><span class="o">=</span><span class="n">call</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">message_id</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s1">'Генератор поролей'</span><span class="p">,</span>
<span class="n">reply_markup</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
<span class="n">bot</span><span class="o">.</span><span class="n">edit_message_text</span><span class="p">(</span><span class="n">chat_id</span><span class="o">=</span><span class="n">call</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">chat</span><span class="o">.</span><span class="n">id</span><span class="p">,</span> <span class="n">message_id</span><span class="o">=</span><span class="n">call</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">message_id</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s1">'Эмулятор игральных кубиков'</span><span class="p">,</span>
<span class="n">reply_markup</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
<span class="n">bot</span><span class="o">.</span><span class="n">answer_callback_query</span><span class="p">(</span><span class="n">chat_id</span><span class="o">=</span><span class="n">call</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">chat</span><span class="o">.</span><span class="n">id</span><span class="p">,</span> <span class="n">show_alert</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span><span class="n">text</span> <span class="o">=</span> <span class="s1">'Тест'</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">r</span><span class="p">:</span>
<span class="k">print</span><span class="p">(</span><span class="nb">repr</span><span class="p">(</span><span class="n">r</span><span class="p">))</span>
<span class="n">bot</span><span class="o">.</span><span class="n">polling</span><span class="p">(</span><span class="n">none_stop</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
</pre></div><br/><br/><br/><br/><strong><u>Программа,которую я хочу интегрировать:</u></strong><br/><br/><div class="code"><pre> <span class="kn">from</span> <span class="nn">random</span> <span class="kn">import</span> <span class="n">randrange</span>
<span class="c1"># -*- coding: utf-8 -*-</span>
<span class="k">def</span> <span class="nf">wyw</span><span class="p">():</span> <span class="c1">#ввод данных</span>
<span class="n">n</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">input</span><span class="p">(</span><span class="s1">'Введите количество граней куба: '</span><span class="p">))</span>
<span class="n">z</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">input</span><span class="p">(</span><span class="s1">'Введите количество кубов: '</span><span class="p">))</span>
<span class="n">g</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">input</span><span class="p">(</span><span class="s1">'Введите количество бросков: '</span><span class="p">))</span>
<span class="k">return</span> <span class="p">[</span><span class="n">n</span><span class="p">,</span> <span class="n">z</span><span class="p">,</span> <span class="n">g</span><span class="p">]</span>
<span class="k">def</span> <span class="nf">f_results</span><span class="p">():</span> <span class="c1"># результаты бросков</span>
<span class="k">global</span> <span class="n">results</span>
<span class="n">results</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">hap</span><span class="p">:</span>
<span class="n">results</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">sum</span><span class="p">(</span><span class="n">i</span><span class="p">))</span>
<span class="k">return</span> <span class="n">results</span>
<span class="k">def</span> <span class="nf">act</span><span class="p">():</span> <span class="c1">#генератор случайных бросков</span>
<span class="k">global</span> <span class="n">hap</span>
<span class="n">sp</span> <span class="o">=</span> <span class="n">wyw</span><span class="p">()</span>
<span class="n">hap</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">sp</span><span class="p">[</span><span class="mi">2</span><span class="p">]):</span>
<span class="n">hap</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
<span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">sp</span><span class="p">[</span><span class="mi">1</span><span class="p">]):</span>
<span class="n">d</span> <span class="o">=</span> <span class="n">randrange</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">sp</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
<span class="n">hap</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">d</span><span class="p">)</span>
<span class="k">return</span> <span class="n">hap</span>
<span class="n">act</span><span class="p">()</span>
<span class="n">f_results</span><span class="p">()</span>
<span class="n">menu_commands</span> <span class="o">=</span><span class="s1">'Какую операцию Вы хотите выполнить?</span><span class="se">\n</span><span class="s1">1) Вывести результаты всех кубиков</span><span class="se">\n</span><span class="s1">2) Вывести результаты всех бросков</span><span class="se">\n</span><span class="s1">3) Вывести максимальную сумму</span><span class="se">\n</span><span class="s1">4) Вывести минимальную сумму</span><span class="se">\n</span><span class="s1">5) Увеличить результат броска</span><span class="se">\n</span><span class="s1">6) Уменьшить результат броска</span><span class="se">\n</span><span class="s1">7) Вывести файл со значениями бросков</span><span class="se">\n</span><span class="s1">8) Выйти из программы</span><span class="se">\n</span><span class="s1">Введите номер операции: '</span>
<span class="n">menu</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">input</span><span class="p">(</span><span class="n">menu_commands</span><span class="p">))</span>
<span class="k">while</span> <span class="mi">0</span><span class="o"><</span><span class="n">menu</span><span class="o"><</span><span class="mi">8</span><span class="p">:</span>
<span class="k">if</span> <span class="n">menu</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
<span class="k">print</span><span class="p">(</span><span class="o">*</span><span class="n">hap</span><span class="p">)</span>
<span class="n">menu</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">input</span><span class="p">(</span><span class="n">menu_commands</span><span class="p">))</span>
<span class="k">if</span> <span class="n">menu</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span>
<span class="k">print</span><span class="p">(</span><span class="o">*</span><span class="n">results</span><span class="p">)</span>
<span class="n">menu</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">input</span><span class="p">(</span><span class="n">menu_commands</span><span class="p">))</span>
<span class="k">if</span> <span class="n">menu</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span>
<span class="k">def</span> <span class="nf">mx</span><span class="p">():</span> <span class="c1"># максимальный результат</span>
<span class="k">return</span> <span class="nb">max</span><span class="p">(</span><span class="n">results</span><span class="p">)</span>
<span class="k">print</span><span class="p">(</span><span class="n">mx</span><span class="p">())</span>
<span class="n">menu</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">input</span><span class="p">(</span><span class="n">menu_commands</span><span class="p">))</span>
<span class="k">if</span> <span class="n">menu</span> <span class="o">==</span> <span class="mi">4</span><span class="p">:</span>
<span class="k">def</span> <span class="nf">mn</span><span class="p">():</span> <span class="c1"># минимальный результат</span>
<span class="k">return</span> <span class="nb">min</span><span class="p">(</span><span class="n">results</span><span class="p">)</span>
<span class="k">print</span><span class="p">(</span><span class="n">mn</span><span class="p">())</span>
<span class="n">menu</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">input</span><span class="p">(</span><span class="n">menu_commands</span><span class="p">))</span>
<span class="k">if</span> <span class="n">menu</span> <span class="o">==</span> <span class="mi">5</span><span class="p">:</span>
<span class="k">def</span> <span class="nf">pribavit_k_brosku</span><span class="p">():</span>
<span class="n">pribav</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">input</span><span class="p">(</span><span class="s1">'Введите число, которое хотите прибавить: '</span><span class="p">))</span>
<span class="n">ind</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">input</span><span class="p">(</span><span class="s1">'К какому броску вы хотите прибавить? (введите числом): '</span><span class="p">))</span> <span class="o">-</span> <span class="mi">1</span>
<span class="k">global</span> <span class="n">results</span>
<span class="n">results</span><span class="p">[</span><span class="n">ind</span><span class="p">]</span> <span class="o">=</span> <span class="n">results</span><span class="p">[</span><span class="n">ind</span><span class="p">]</span> <span class="o">+</span> <span class="n">pribav</span>
<span class="k">return</span> <span class="n">results</span>
<span class="k">print</span><span class="p">(</span><span class="o">*</span><span class="n">pribavit_k_brosku</span><span class="p">())</span>
<span class="n">menu</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">input</span><span class="p">(</span><span class="n">menu_commands</span><span class="p">))</span>
<span class="k">if</span> <span class="n">menu</span> <span class="o">==</span> <span class="mi">6</span><span class="p">:</span>
<span class="k">def</span> <span class="nf">otnyat_ot_broska</span><span class="p">():</span>
<span class="n">vichet</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">input</span><span class="p">(</span><span class="s1">'Введите число, которое хотите отнять: '</span><span class="p">))</span>
<span class="n">ind</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">hap</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span>
<span class="k">while</span> <span class="n">ind</span> <span class="o">>=</span> <span class="nb">len</span><span class="p">(</span><span class="n">hap</span><span class="p">):</span>
<span class="n">ind</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">input</span><span class="p">(</span><span class="s1">'Из какого броска вы хотите отнять? (введите числом): '</span><span class="p">))</span> <span class="o">-</span> <span class="mi">1</span>
<span class="n">results</span><span class="p">[</span><span class="n">ind</span><span class="p">]</span> <span class="o">=</span> <span class="n">results</span><span class="p">[</span><span class="n">ind</span><span class="p">]</span> <span class="o">-</span> <span class="n">vichet</span>
<span class="k">return</span> <span class="n">results</span>
<span class="k">print</span><span class="p">(</span><span class="o">*</span><span class="n">otnyat_ot_broska</span><span class="p">())</span>
<span class="n">menu</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">input</span><span class="p">(</span><span class="n">menu_commands</span><span class="p">))</span>
<span class="k">if</span> <span class="n">menu</span> <span class="o">==</span> <span class="mi">7</span><span class="p">:</span>
<span class="k">def</span> <span class="nf">log</span><span class="p">():</span>
<span class="n">f</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="s1">'cubelog.txt'</span><span class="p">,</span> <span class="s1">'a+'</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">'utf-8'</span><span class="p">)</span>
<span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">f</span><span class="s1">'{str(hap)}</span><span class="se">\n\n</span><span class="s1">'</span><span class="p">)</span>
<span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
<span class="n">log</span><span class="p">()</span>
<span class="n">menu</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">input</span><span class="p">(</span><span class="n">menu_commands</span><span class="p">))</span>
<span class="k">print</span><span class="p">(</span><span class="s1">'Программа завершена'</span><span class="p">)</span>
</pre></div>