PyDataCZ / naucse.python.cz

Website with learning materials / Stránka s učebními materiály
https://naucse.python.cz
Other
14 stars 13 forks source link

Jakým způsobem zadávat úkoly v lekcích? #8

Open frenzymadness opened 5 years ago

frenzymadness commented 5 years ago

K interaktivitě a úkolům: Máme dvě možnosti:

Z následujících důvodů se přihláním k možnosti č. 2:

kokes commented 5 years ago

Taky se mi víc líbí ta dvojka, je to takové víc volné a nesvazuje to ruce nějakou implementací.

janpipek commented 5 years ago

Podle mě to není úplně ve sporu a těžil bych z obojího.

janpipek commented 5 years ago

Co se týče těch notebooků, tak tohle: https://github.com/pyvec/naucse/issues/26 vede směrem k realizaci skrytých oken na webu, ale neřeší to notebooky na počítačí posluchačů :-/

janpipek commented 5 years ago

Skrze meta data zjevně (nebo se pletu?) bez custom JS nejde do DOM cokoliv přidávat.

Poor man's solution (které vlastně může vypadat docela cool a jde z něj udělat IPython magic):

def zakoduj_reseni(reseni: str) -> bytes:
    return base64.b64encode(reseni.encode())

def ukaz_reseni(encoded: bytes, typ: str = "code"):
    decoded = base64.b64decode(encoded).decode() 
    if typ == "code":
        print(decoded)
    elif typ in ["md", "markdown"]:
        from IPython.core.display import Markdown
        return Markdown(decoded)
    else:
        raise ValueEror(f"Neplatný typ obsahu: {typ}")

ukaz_reseni(b'aW1wb3J0IG51bXB5IGFzIG5wCmltcG9ydCBwYW5kYXMgYXMgcGQKaW1wb3J0IHBhbmRhc19wcm9maWxpbmcKaW1wb3J0IHNlYWJvcm4gYXMgc25z')