Display a numeric input widget.
Note
Integer values exceeding +/- (1<<53) - 1 cannot be accurately stored or returned by the widget due to serialization contstraints between the Python server and JavaScript client. You must handle such numbers as floats, leading to a loss in precision.
Function signature[source] | |
---|---|
st.number_input(label, min_value=None, max_value=None, value="min", step=None, format=None, key=None, help=None, on_change=None, args=None, kwargs=None, *, placeholder=None, disabled=False, label_visibility="visible") | |
Parameters | |
label (str) | A short label explaining to the user what this input is for. The label can optionally contain Markdown and supports the following elements: Bold, Italics, Strikethroughs, Inline Code, Emojis, and Links. This also supports:
Unsupported elements are unwrapped so only their children (text contents) render. Display unsupported elements as literal characters by backslash-escaping them. E.g. 1\. Not an ordered list. For accessibility reasons, you should never set an empty label (label="") but hide it with label_visibility if needed. In the future, we may disallow empty labels by raising an exception. |
min_value (int, float, or None) | The minimum permitted value. If None, there will be no minimum. |
max_value (int, float, or None) | The maximum permitted value. If None, there will be no maximum. |
value (int, float, "min" or None) | The value of this widget when it first renders. If None, will initialize empty and return None until the user provides input. If "min" (default), will initialize with min_value, or 0.0 if min_value is None. |
step (int, float, or None) | The stepping interval. Defaults to 1 if the value is an int, 0.01 otherwise. If the value is not specified, the format parameter will be used. |
format (str or None) | A printf-style format string controlling how the interface should display numbers. Output must be purely numeric. This does not impact the return value. Valid formatters: %d %e %f %g %i %u |
key (str or int) | An optional string or integer to use as the unique key for the widget. If this is omitted, a key will be generated for the widget based on its content. Multiple widgets of the same type may not share the same key. |
help (str) | An optional tooltip that gets displayed next to the input. |
on_change (callable) | An optional callback invoked when this number_input's value changes. |
args (tuple) | An optional tuple of args to pass to the callback. |
kwargs (dict) | An optional dict of kwargs to pass to the callback. |
placeholder (str or None) | An optional string displayed when the number input is empty. If None, no placeholder is displayed. |
disabled (bool) | An optional boolean, which disables the number input if set to True. The default is False. |
label_visibility ("visible", "hidden", or "collapsed") | The visibility of the label. If "hidden", the label doesn't show but there is still empty space for it above the widget (equivalent to label=""). If "collapsed", both the label and the space are removed. Default is "visible". |
Returns | |
(int or float or None) | The current value of the numeric input widget or None if the widget is empty. The return type will match the data type of the value parameter. |
Example
import streamlit as st number = st.number_input('Insert a number') st.write('The current number is ', number)To initialize an empty number input, use None as the value:
import streamlit as st number = st.number_input("Insert a number", value=None, placeholder="Type a number...") st.write('The current number is ', number)
Still have questions?
Our forums are full of helpful information and Streamlit experts.