10 простых способов обработки целочисленного ввода в приложениях Streamlit

Создание удобных и интерактивных приложений часто предполагает обработку различных типов вводимых пользователем данных. В этой статье блога мы рассмотрим различные методы обработки целочисленного ввода, особенно в приложениях Streamlit. Независимо от того, являетесь ли вы новичком или опытным разработчиком, эти простые методы помогут вам создать надежные и интуитивно понятные интерфейсы. Итак, приступим!

  1. Использование функции number_input.
    Streamlit предоставляет удобную функцию number_input, которая позволяет пользователям вводить числовые значения. Указав для параметра value_typeзначение 'int', вы можете ограничить ввод целыми числами. Вот пример:
age = st.number_input("Enter your age:", value_type='int')
  1. Проверка ввода с помощью условных операторов.
    Вы можете использовать условные операторы, чтобы проверить, является ли ввод целым числом, с помощью функции isinstance. Вот простой пример:
age = st.number_input("Enter your age:")
if isinstance(age, int):
    st.write("Valid age!")
else:
    st.write("Please enter a valid integer.")
  1. Использование блоков try-кроме:
    Другой подход заключается в использовании блока try-кроме для перехвата любых исключений, возникающих при преобразовании входных данных в целое число. Таким образом, вы можете корректно обрабатывать нецелочисленные входные данные. Вот пример:
try:
    age = int(st.text_input("Enter your age:"))
    st.write("Valid age!")
except ValueError:
    st.write("Please enter a valid integer.")
  1. Проверка ввода с помощью регулярных выражений.
    Регулярные выражения можно использовать для проверки шаблонов ввода. Если вы хотите, чтобы входные данные состояли только из целых чисел, вы можете использовать такие регулярные выражения:
import re
age_input = st.text_input("Enter your age:")
if re.match("^\d+$", age_input):
    age = int(age_input)
    st.write("Valid age!")
else:
    st.write("Please enter a valid integer.")
  1. Использование виджета slider:
    Виджет sliderStreamlit позволяет пользователям выбирать значение в пределах указанного диапазона. Установив для параметра stepзначение 1, вы можете ограничить ввод целыми числами. Вот пример:
age = st.slider("Select your age:", min_value=0, max_value=100, step=1)
  1. Создание раскрывающегося меню.
    Вы можете создать раскрывающееся меню с целочисленными параметрами, используя функцию selectbox. Вот пример:
age = st.selectbox("Select your age:", range(0, 101), index=0)
  1. Обработка целочисленных входных данных из файла CSV.
    Если вы читаете входные данные из файла CSV, вы можете использовать библиотеку pandasдля обработки целочисленных столбцов. Вот простой пример:
import pandas as pd
data = pd.read_csv("input.csv")
age_column = data["Age"].astype(int)
  1. Использование переключателей.
    Виджет radioStreamlit позволяет пользователям выбирать одно значение из предопределенного списка. Вы можете создать группу переключателей с целочисленными параметрами, например:
age = st.radio("Select your age:", range(0, 101))
  1. Обработка целочисленного ввода в формах.
    API formStreamlit позволяет создавать формы для пользовательского ввода. Вы можете указать целочисленное поле ввода в форме следующим образом:
with st.form("User Details"):
    age = st.number_input("Age", value_type='int')
    submitted = st.form_submit_button("Submit")
  1. Использование обычного ввода и преобразование в целое число.
    Если вы предпочитаете простой подход, вы можете использовать обычную функцию text_inputи преобразовать входные данные в целое число вручную. Вот пример:
age = int(st.text_input("Enter your age:"))

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