Build a text notebook with independent state for each instance. Inputs are strings; empty strings and duplicates are valid.

Prototype: implement Note(text) with a public text attribute and preview(limit). For a nonnegative integer limit, return the first limit characters of the text. Note("hello").preview(3) -> "hel".

Final: implement Notebook() with methods add(text), all_notes(), and find(term). add appends a string and returns None. all_notes returns a fresh list of every note. find returns a fresh list of notes containing the case-sensitive substring term, preserving insertion order and duplicates. An empty term matches every note. Modifying a returned list must not affect the notebook. Separate notebooks must not share storage. No file persistence is needed.

Drag or use the arrow keys to resize. Home collapses the question; End collapses the editor. Enter or double-click resets the split.
Loading editor…
No results yet.

Complete the starter code, then run the checks.
Results and errors will appear here.