Интерфейс

Для начала соберём интерфейс приложения. Он будет состоять из:

  • формы (контейнера для других элементов);
  • нескольких слайдеров;
  • пары полей для ввода чисел;
  • кнопки;
  • линейного графика.

Для каждого из этих элементов в Streamlit есть отдельный класс.

Элемент Класс
Форма form
Слайдер slider
Поле для ввода чисел number_input
Кнопка form_submit_button
График line_chart

Форма нужна для того, чтобы скрипт не перезапускался полностью при каждом изменении слайдера или поля для ввода (по умолчанию в Streamlit реализовано именно такое поведение).

Пишем код

Задаём настройки страницы, добавляем заголовок «Симулятор ставок» и создаём форму с элементами.

import streamlit as st

st.set_page_config(
    page_title='Симулятор ставок',
    page_icon='🍰'
)
st.title('Симулятор ставок 💰')

with st.form('main_form'):
    start_bankroll = st.number_input('Стартовый капитал', 10000)
    winrate = st.slider('Вероятность выигрыша в %', 0, 100, 53) / 100
    winning_amount = st.number_input('Размер выигрыша', 1, value=100)
    losing_amount = st.number_input('Размер проигрыша', 1, value=100)
    players_number = st.slider('Количество игроков', 1, 10, 3)
    bets_number = st.slider('Количество ставок', 100, 10000, 2000)

    # Обработчик для клика по кнопке добавим позже
    submitted = st.form_submit_button('Запустить симуляцию')
    if submitted:
        pass

Запускаем сервер

Чтобы запустить сервер Streamlit, выполните в терминале следующую команду:

python -m streamlit run main.py

Вместо main.py, конечно же, укажите имя вашего основного модуля.

Если всё сделано правильно, то спустя несколько секунд откроется окно браузера, в котором отрисуется интерфейс.

Streamlit interface

Важно: запускать программу с помощью интерпретатора Python не нужно, сервер Streamlit сам это сделает. Если вы внесёте изменения в исходный код, то достаточно будет просто обновить страницу, чтобы изменения вступили в силу.