显示一个数字输入小部件。

注意

由于Python服务器和JavaScript客户端之间的序列化限制,小部件无法准确存储或返回超过+/- (1<<53) - 1的整数值。您必须将这些数字作为浮点数处理,这会导致精度损失。

函数签名[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")

参数

label (str)

一个简短的标签,向用户解释此输入的用途。 标签可以选择性地包含以下类型的GitHub风格的Markdown:粗体、斜体、删除线、内联代码、链接和图片。图片显示为图标,最大高度等于字体高度。

不支持的Markdown元素会被解包,因此只有它们的子元素(文本内容)会呈现。通过反斜杠转义不支持的元素,将其显示为字面字符。例如, "1\. 不是一个有序列表"

有关其他支持的Markdown指令,请参见st.markdownbody参数。

出于可访问性原因,您不应设置空标签,但如有需要,可以使用label_visibility隐藏它。将来,我们可能会通过引发异常来禁止空标签。

min_value (int, float, or None)

允许的最小值。 如果为None,则没有最小值。

max_value (int, float, or None)

允许的最大值。 如果为None,则没有最大值。

value (int, float, "min" 或 None)

此小部件首次渲染时的值。如果为None,将初始化为空并返回None,直到用户提供输入。 如果为"min"(默认值),将使用min_value初始化,如果min_value为None,则使用0.0。

步长 (int, float, 或 None)

步进间隔。 如果值为整数,则默认为1,否则为0.01。 如果未指定值,则将使用格式参数。

format (str or None)

一个printf风格的格式字符串,控制界面应如何显示数字。输出必须是纯数字的。这不会影响小部件的返回值。格式化由sprintf.js处理。

例如,format="%0.1f"调整显示的小数精度,只显示小数点后一位。

key (str or int)

一个可选的字符串或整数,用作小部件的唯一键。 如果省略,将根据小部件的内容生成一个键。 任何两个小部件都不能有相同的键。

help (str)

一个可选的工具提示,显示在小部件标签旁边。 Streamlit 仅在 label_visibility="visible" 时显示工具提示。

on_change (callable)

当此number_input的值发生变化时调用的可选回调函数。

args (tuple)

传递给回调函数的可选参数元组。

kwargs (dict)

一个可选的字典,用于传递给回调函数。

placeholder (str or None)

当数字输入为空时显示的可选字符串。 如果为None,则不显示占位符。

disabled (bool)

一个可选的布尔值,如果设置为True,则禁用数字输入。默认值为False

label_visibility ("visible", "hidden", or "collapsed")

标签的可见性。默认是"visible"。如果这是"hidden",Streamlit会显示一个空的占位符而不是标签,这有助于保持小部件与其他小部件对齐。如果这是"collapsed",Streamlit不会显示标签或占位符。

返回

(int or float or None)

数字输入小部件的当前值,如果小部件为空则为None。返回类型将与值参数的数据类型匹配。

示例

import streamlit as st

number = st.number_input("Insert a number")
st.write("The current number is ", number)

要初始化一个空的数字输入,使用 None 作为值:

import streamlit as st

number = st.number_input(
    "Insert a number", value=None, placeholder="Type a number..."
)
st.write("The current number is ", number)
forum

还有问题吗?

我们的 论坛 充满了有用的信息和Streamlit专家。