ipywidgets - 单击后显示列表中的下一个值
ipywidgets - display next value in list after clicking
我正在尝试使用 ipywidgets
以便在我的列表(在 Jupyter 笔记本中)中显示下一个值,在单击按钮后显示为 display_vals
。但是,使用以下代码片段,我收到错误
local variable 'i' referenced before assignment
这是我的片段
from IPython.display import display, clear_output
import ipywidgets as widgets
button = widgets.Button(description="Click Me!")
display(button)
display_vals = ['a', 'b', 'c']
i = 0
def on_button_clicked(b):
print(display_vals[i])
clear_output()
i += 1
button.on_click(on_button_clicked)
我想我只是不知道单击按钮时如何解析我的变量。
您可以通过将 i 声明为全局变量并包含如下 if 语句来实现:
from IPython.display import display, clear_output
import ipywidgets as widgets
button = widgets.Button(description="Click Me!")
display(button)
display_vals = ['a', 'b', 'c']
i = 0
def on_button_clicked(b):
global i
clear_output()
if i < len(display_vals):
print(display_vals[i])
i += 1
button.on_click(on_button_clicked)
但是,如果您决定走这条路,您应该将 i
重命名为更独特的名称。
我正在尝试使用 ipywidgets
以便在我的列表(在 Jupyter 笔记本中)中显示下一个值,在单击按钮后显示为 display_vals
。但是,使用以下代码片段,我收到错误
local variable 'i' referenced before assignment
这是我的片段
from IPython.display import display, clear_output
import ipywidgets as widgets
button = widgets.Button(description="Click Me!")
display(button)
display_vals = ['a', 'b', 'c']
i = 0
def on_button_clicked(b):
print(display_vals[i])
clear_output()
i += 1
button.on_click(on_button_clicked)
我想我只是不知道单击按钮时如何解析我的变量。
您可以通过将 i 声明为全局变量并包含如下 if 语句来实现:
from IPython.display import display, clear_output
import ipywidgets as widgets
button = widgets.Button(description="Click Me!")
display(button)
display_vals = ['a', 'b', 'c']
i = 0
def on_button_clicked(b):
global i
clear_output()
if i < len(display_vals):
print(display_vals[i])
i += 1
button.on_click(on_button_clicked)
但是,如果您决定走这条路,您应该将 i
重命名为更独特的名称。