%matplotlib inline
from matplotlib import pyplot as plt
import numpy as np

from IPython.html.widgets import interact, interactive, fixed
from IPython.display import display

"""
Explanation: Interact Exercise 01
Import
End of explanation
"""


def print_sum(a, b):
    return (a+b)

"""
Explanation: Interact basics
Write a print_sum function that prints the sum of its arguments a and b.
End of explanation
"""


w = interactive(print_sum, a = (-10.0,10.0,0.1), b = (-8, 8, 2))

display(w)

w.result

assert True # leave this for grading the print_sum exercise

"""
Explanation: Use the interact function to interact with the print_sum function.

a should be a floating point slider over the interval [-10., 10.] with step sizes of 0.1
b should be an integer slider the interval [-8, 8] with step sizes of 2.
End of explanation
"""


def print_string(s, length=False):
    print (s)
    if length == True:
        print(len(s))

"""
Explanation: Write a function named print_string that prints a string and additionally prints the length of that string if a boolean parameter is True.
End of explanation
"""


w = interactive(print_string, s = "Hello, World!")

w

assert True # leave this for grading the print_string exercise

"""
Explanation: Use the interact function to interact with the print_string function.

s should be a textbox with the initial value "Hello World!".
length should be a checkbox with an initial value of True.
End of explanation
"""


