An exercise to help build the right mental model for Python data. - Solution: memory-graph.com#codeurl=http... - Explanation: github.com/bterwijn/mem... #PythonDev #memory_graph #Mutability #LocalVariables
Bas Terwijn | Python memory_graph
@bterwijn.bsky.social
Software Engineer and Educator at University of Amsterdam. Developer of memory_graph, a Python execution visualizer: https://github.com/bterwijn/memory_graph#readme
Solving SUDOKU Repeatedly clicking (or holding) the green "Continue" button solves each Sudoku puzzle in the Memory Graph Web Debugger: memory-graph.com#codeurl=http... - easy - medium, from Gordon Royle’s collection - hard, "Everest" by Arto Inkala #PythonDev #memory_graph #Sudoku #SudokuSolver
An exercise to help build the right mental model for Python data. - Solution: memory-graph.com#codeurl=http... - Explanation: github.com/bterwijn/mem... - More exercises: bsky.app/profile/bter... #PythonDev #memory_graph #Mutability
🌳 Recursive tree traversal in Python visually explained: memory-graph.com#codeurl=http... A binary tree can be traversed in three classic ways: 🔹 𝗣𝗿𝗲𝗼𝗿𝗱𝗲𝗿: current, left, right 🔹 𝗜𝗻𝗼𝗿𝗱𝗲𝗿: left, current, right 🔹 𝗣𝗼𝘀𝘁𝗼𝗿𝗱𝗲𝗿: left, right, current #Python #memory_graph #Recursion #BinaryTree
Friday brings #Python With defaultdict + lambda you can build a nested tree that never raises a KeyError. Isn't that cool?
A 𝐡𝐚𝐫𝐝 exercise to help build the right mental model for Python data. - Solution: memory-graph.com#codeurl=http... - Explanation: github.com/bterwijn/mem... #PythonDev #memory_graph #ShallowCopy
🌳 Trie demo: memory-graph.com#codeurl=http... A trie is a tree-shaped data structure that can be implemented elegantly in Python using nested dictionaries (hash tables). Tries are often used for: - Autocomplete - Prefix search - Sequence matching #PythonDev #memory_graph #DataStructures #Trie
An exercise to help build the right mental model for Python data. - Solution: memory-graph.com#codeurl=http... - Explanation: github.com/bterwijn/mem... #PythonDev #memory_graph #ShallowCopy
How does 𝗟𝗮𝘇𝘆 𝗘𝘃𝗮𝗹𝘂𝗮𝘁𝗶𝗼𝗻 work in Python? In this example: memory-graph.com#codeurl=http... we show a sink reading from different sources, some eager some lazy, using the Iterator Protocol, where 𝐦𝐞𝐦𝐨𝐫𝐲_𝐠𝐫𝐚𝐩𝐡 shows what's really going on. #PythonDev #memory_graph #LazyEvaluation #IteratorProtocol
❓️ Your functions work, but you want to add logging. Do you edit each function? 🎯 Decorators help: wrap a function, add logic before and after each call. 🔎 We use '@log_call' to log each call with arguments and return value: memory-graph.com#codeurl=http... #PythonDev #memory_graph #Decorators
An exercise to help build the right mental model for Python data. - Solution: memory-graph.com#codeurl=http... - Explanation: github.com/bterwijn/mem... #PythonDev #memory_graph #ShallowCopy
How do we turn, say €24.72, into coins? 🪙🪙💰⛀⛁ In this classic beginner-friendly exercise 𝐦𝐞𝐦𝐨𝐫𝐲_𝐠𝐫𝐚𝐩𝐡 visualizes what happens step-by-step at execution for easy understanding and debugging. Run the demo: memory-graph.com#codeurl=http... #PythonDev #memory_graph
How do Python for-loops work? Using the Iterator Protocol: 𝑖𝑡𝑒𝑟𝑎𝑡𝑜𝑟 = 𝑖𝑡𝑒𝑟(𝑐𝑜𝑛𝑡𝑎𝑖𝑛𝑒𝑟) 𝑤ℎ𝑖𝑙𝑒 𝑇𝑟𝑢𝑒: ..𝑡𝑟𝑦: ....𝑣𝑎𝑙𝑢𝑒 = 𝑛𝑒𝑥𝑡(𝑖𝑡𝑒𝑟𝑎𝑡𝑜𝑟) ....𝑝𝑟𝑖𝑛𝑡(𝑣𝑎𝑙𝑢𝑒) ..𝑒𝑥𝑐𝑒𝑝𝑡 𝑆𝑡𝑜𝑝𝐼𝑡𝑒𝑟𝑎𝑡𝑖𝑜𝑛: ....𝑏𝑟𝑒𝑎𝑘 A Linked_List example: memory-graph.com#codeurl=http... #PythonDev #memory_graph #Iterator #IteratorProtocol
An exercise to help build the right mental model for Python data. - Solution: memory-graph.com#codeurl=http... - Explanation: github.com/bterwijn/mem... The Solution link uses 𝗺𝗲𝗺𝗼𝗿𝘆_𝗴𝗿𝗮𝗽𝗵: github.com/bterwijn/mem... to visualize code execution. #PythonDev #memory_graph #ShallowCopy #DeepCopy
Data Structures in Python get easy when you can see the structure of your data using 𝗺𝗲𝗺𝗼𝗿𝘆_𝗴𝗿𝗮𝗽𝗵. A Binary Tree example: memory-graph.com#codeurl=http... VS Code setup: dai.ly/xb2u52e?star... memory_graph GitHub: github.com/bterwijn/mem... #PythonDev #memory_graph #DataStructures #BinaryTree
An exercise to help build the right mental model for Python data. - Solution: memory-graph.com#codeurl=http... - Explanation: github.com/bterwijn/mem... The Solution link uses memory_graph: github.com/bterwijn/mem... to reveal what’s actually happening. #PythonDev #memory_graph #Mutability
Programming courses often focus heavily on understanding code, while paying far less attention to understanding the program state. Package memory_graph: memory-graph.com#codeurl=http... visualizes the state for easy program understanding and debugging. #PythonDev #memory_graph #PythonTeaching