Example notebook

made with nobe🐳

Capture output

Output of commands is captured (two ways to declare a code block, check in source code)

print("hi")
hi
print("hello")
hello

Accessing variables in blocks

Declare a variable in one block

x = 0


change it in another block and print it

x += 1
print(x)
1

do it 3 times (look for the loop in source code)

@nb.code
def _():

    x += 1
    print(x)
2
@nb.code
def _():

    x += 1
    print(x)
3
@nb.code
def _():

    x += 1
    print(x)
4

You have to know Python scoping in functions and use global keyword to do the above

Source code

This is the source code for this document:

import nobe

nb = nobe.Doc()

print(nb.filename)

nb.text("# Example notebook\nmade with [nobe](https://github.com/pietroppeter/nobe)🐳")

nb.text("## Capture output")
nb.text("Output of commands is captured (two ways to declare a code block, check in source code)")

nb.code(lambda: print("hi"))


@nb.code
def _():
    print("hello")


nb.text("## Accessing variables in blocks")

nb.text("Declare a variable in one block")


@nb.code
def _():
    global x
    x = 0


nb.text("change it in another block and print it")


@nb.code
def _():
    global x
    x += 1
    print(x)


nb.text("do it 3 times (look for the loop in source code)")

for _ in range(3):

    @nb.code
    def _():
        global x
        x += 1
        print(x)


nb.text("You have to know Python scoping in functions and use global keyword to do the above")

nb.text(f"""## Source code

This is the source code for this document:

````py
{nb.source.replace("````", "`````")}
````

""")

nb.save()