<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Widget List
This lecture will serve as a reference for widgets, providing a list of the GUI widgets available!
Complete list
For a complete list of the GUI widgets available to you, you can list the registered widget types.  Widget and DOMWidget, not listed below, are base classes.
Step1:  Numeric widgets
There are 8 widgets distributed with IPython that are designed to display numeric values.  Widgets exist for displaying integers and floats, both bounded and unbounded.  The integer widgets share a similar naming scheme to their floating point counterparts.  By replacing Float with Int in the widget name, you can find the Integer equivalent.
FloatSlider
Step2:  Sliders can also be displayed vertically.
Step3:  FloatProgress
Step4:  BoundedFloatText
Step5:  FloatText
Step6:  Boolean widgets
There are three widgets that are designed to display a boolean value.
ToggleButton
Step7:  Checkbox
Step8:  Valid
The valid widget provides a read-only indicator.
Step9:  Selection widgets
There are four widgets that can be used to display single selection lists, and one that can be used to display multiple selection lists.  All inherit from the same base class.  You can specify the enumeration of selectable options by passing a list.  You can also specify the enumeration as a dictionary, in which case the keys will be used as the item displayed in the list and the corresponding value will be returned when an item is selected.
Dropdown
Step10:  The following is also valid
Step11:  RadioButtons
Step12:  Select
Step13:  ToggleButtons
Step14:  SelectMultiple
Multiple values can be selected with <kbd>shift</kbd> and/or <kbd>ctrl</kbd> (or <kbd>command</kbd>) pressed and mouse clicks or arrow keys.
Step15:  String widgets
There are 4 widgets that can be used to display a string value.  Of those, the Text and Textarea widgets accept input.  The Latex and HTML widgets display the string as either Latex or HTML respectively, but do not accept input.
Text
Step16:  Textarea
Step17:  Latex
Step18:  HTML
Step19:  Button
<ASSISTANT_TASK:>
Python Code:
import ipywidgets as widgets
# Show all available widgets!
widgets.Widget.widget_types.values()
Explanation: Widget List
This lecture will serve as a reference for widgets, providing a list of the GUI widgets available!
Complete list
For a complete list of the GUI widgets available to you, you can list the registered widget types.  Widget and DOMWidget, not listed below, are base classes.
End of explanation
widgets.FloatSlider(
    value=7.5,
    min=5.0,
    max=10.0,
    step=0.1,
    description='Test:',
)
Explanation: Numeric widgets
There are 8 widgets distributed with IPython that are designed to display numeric values.  Widgets exist for displaying integers and floats, both bounded and unbounded.  The integer widgets share a similar naming scheme to their floating point counterparts.  By replacing Float with Int in the widget name, you can find the Integer equivalent.
FloatSlider
End of explanation
widgets.FloatSlider(
    value=7.5,
    min=5.0,
    max=10.0,
    step=0.1,
    description='Test',
    orientation='vertical',
)
Explanation: Sliders can also be displayed vertically.
End of explanation
widgets.FloatProgress(
    value=7.5,
    min=5.0,
    max=10.0,
    step=0.1,
    description='Loading:',
)
Explanation: FloatProgress
End of explanation
widgets.BoundedFloatText(
    value=7.5,
    min=5.0,
    max=10.0,
    description='Text:',
)
Explanation: BoundedFloatText
End of explanation
widgets.FloatText(
    value=7.5,
    description='Any:',
)
Explanation: FloatText
End of explanation
widgets.ToggleButton(
    description='Click me',
    value=False,
)
Explanation: Boolean widgets
There are three widgets that are designed to display a boolean value.
ToggleButton
End of explanation
widgets.Checkbox(
    description='Check me',
    value=True,
)
Explanation: Checkbox
End of explanation
widgets.Valid(
    value=True,
)
Explanation: Valid
The valid widget provides a read-only indicator.
End of explanation
from IPython.display import display
w = widgets.Dropdown(
    options=['1', '2', '3'],
    value='2',
    description='Number:',
)
display(w)
# Show value
w.value
Explanation: Selection widgets
There are four widgets that can be used to display single selection lists, and one that can be used to display multiple selection lists.  All inherit from the same base class.  You can specify the enumeration of selectable options by passing a list.  You can also specify the enumeration as a dictionary, in which case the keys will be used as the item displayed in the list and the corresponding value will be returned when an item is selected.
Dropdown
End of explanation
w = widgets.Dropdown(
    options={'One': 1, 'Two': 2, 'Three': 3},
    value=2,
    description='Number:')
display(w)
w.value
Explanation: The following is also valid:
End of explanation
widgets.RadioButtons(
    description='Pizza topping:',
    options=['pepperoni', 'pineapple', 'anchovies'],
)
Explanation: RadioButtons
End of explanation
widgets.Select(
    description='OS:',
    options=['Linux', 'Windows', 'OSX'],
)
Explanation: Select
End of explanation
widgets.ToggleButtons(
    description='Speed:',
    options=['Slow', 'Regular', 'Fast'],
)
Explanation: ToggleButtons
End of explanation
w = widgets.SelectMultiple(
    description="Fruits",
    options=['Apples', 'Oranges', 'Pears'])
display(w)
w.value
Explanation: SelectMultiple
Multiple values can be selected with <kbd>shift</kbd> and/or <kbd>ctrl</kbd> (or <kbd>command</kbd>) pressed and mouse clicks or arrow keys.
End of explanation
widgets.Text(
    description='String:',
    value='Hello World',
)
Explanation: String widgets
There are 4 widgets that can be used to display a string value.  Of those, the Text and Textarea widgets accept input.  The Latex and HTML widgets display the string as either Latex or HTML respectively, but do not accept input.
Text
End of explanation
widgets.Textarea(
    description='String:',
    value='Hello World',
)
Explanation: Textarea
End of explanation
widgets.Latex(
    value="$$\\frac{n!}{k!(n-k)!}$$",
)
Explanation: Latex
End of explanation
widgets.HTML(
    value="Hello <b>World</b>"
)
Explanation: HTML
End of explanation
widgets.Button(description='Click me')
Explanation: Button
End of explanation
<END_TASK>