{ "cells": [ { "cell_type": "markdown", "id": "ddb7f460", "metadata": {}, "source": [ "# Estudos e exemplos em Jupyter notebooks" ] }, { "cell_type": "markdown", "id": "51128a8c", "metadata": {}, "source": [ "```\n", "jupyter notebook --NotebookApp.token=\"abcd\" --notebook-dir=\"/path/\"\n", "```" ] }, { "cell_type": "markdown", "id": "aa2ddd96", "metadata": {}, "source": [ "[SVG no Jupyter](/notebooks/SVG_in_Jupyter.ipynb)" ] }, { "cell_type": "markdown", "id": "a86f1b45", "metadata": {}, "source": [ "[Integração com glowscript via firebase](/notebooks/integracao_com_glowscript.ipynb)" ] }, { "cell_type": "markdown", "id": "c87b333e", "metadata": {}, "source": [ "## Outros\n", "\n", "* Ver como fazer para usar o computador de casa como servidor (no-ip? ipfs?)\n", "* Colocar o jupyter em um container doker\n", "* Acessar REPL do micropython pelo Jupyter\n", "* Fazer sistema pub/sub no python (socket?)" ] }, { "cell_type": "markdown", "id": "fd26bdb4", "metadata": {}, "source": [ "https://docs.python.org/3/library/index.html#library-index" ] }, { "cell_type": "code", "execution_count": 11, "id": "ffe03167", "metadata": {}, "outputs": [], "source": [ "import py_compile" ] }, { "cell_type": "code", "execution_count": 12, "id": "334e04e5", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['PyCompileError',\n", " 'PycInvalidationMode',\n", " '__all__',\n", " '__builtins__',\n", " '__cached__',\n", " '__doc__',\n", " '__file__',\n", " '__loader__',\n", " '__name__',\n", " '__package__',\n", " '__spec__',\n", " '_get_default_invalidation_mode',\n", " 'compile',\n", " 'enum',\n", " 'importlib',\n", " 'main',\n", " 'os',\n", " 'sys',\n", " 'traceback']" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dir(py_compile)" ] }, { "cell_type": "code", "execution_count": 22, "id": "f07f0ffe", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3.141592653589793" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np = py_compile.importlib.import_module('numpy')\n", "np.pi" ] }, { "cell_type": "code", "execution_count": 15, "id": "e254e229", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['_RELOADING',\n", " '__all__',\n", " '__builtins__',\n", " '__cached__',\n", " '__doc__',\n", " '__file__',\n", " '__import__',\n", " '__loader__',\n", " '__name__',\n", " '__package__',\n", " '__path__',\n", " '__spec__',\n", " '_bootstrap',\n", " '_bootstrap_external',\n", " '_imp',\n", " '_pack_uint32',\n", " '_unpack_uint32',\n", " 'abc',\n", " 'find_loader',\n", " 'import_module',\n", " 'invalidate_caches',\n", " 'machinery',\n", " 'reload',\n", " 'sys',\n", " 'types',\n", " 'util',\n", " 'warnings']" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dir(py_compile.importlib)" ] }, { "cell_type": "code", "execution_count": 19, "id": "3cee1aa3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Import a module.\n", "\n", " The 'package' argument is required when performing a relative import. It\n", " specifies the package to use as the anchor point from which to resolve the\n", " relative import to an absolute import.\n", "\n", " \n" ] } ], "source": [ "print(py_compile.importlib.import_module.__doc__)" ] }, { "cell_type": "code", "execution_count": 23, "id": "4f79b046", "metadata": {}, "outputs": [ { "ename": "Terminator", "evalue": "", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mTerminator\u001b[0m Traceback (most recent call last)", "Input \u001b[0;32mIn [23]\u001b[0m, in \u001b[0;36m<cell line: 5>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m \u001b[38;5;28;01mTrue\u001b[39;00m:\n\u001b[1;32m 5\u001b[0m forward(\u001b[38;5;241m200\u001b[39m)\n\u001b[0;32m----> 6\u001b[0m \u001b[43mleft\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m170\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 7\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mabs\u001b[39m(pos()) \u001b[38;5;241m<\u001b[39m \u001b[38;5;241m1\u001b[39m:\n\u001b[1;32m 8\u001b[0m \u001b[38;5;28;01mbreak\u001b[39;00m\n", "File \u001b[0;32m<string>:8\u001b[0m, in \u001b[0;36mleft\u001b[0;34m(angle)\u001b[0m\n", "File \u001b[0;32m/usr/lib/python3.8/turtle.py:1700\u001b[0m, in \u001b[0;36mTNavigator.left\u001b[0;34m(self, angle)\u001b[0m\n\u001b[1;32m 1681\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mleft\u001b[39m(\u001b[38;5;28mself\u001b[39m, angle):\n\u001b[1;32m 1682\u001b[0m \u001b[38;5;124;03m\"\"\"Turn turtle left by angle units.\u001b[39;00m\n\u001b[1;32m 1683\u001b[0m \n\u001b[1;32m 1684\u001b[0m \u001b[38;5;124;03m Aliases: left | lt\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 1698\u001b[0m \u001b[38;5;124;03m 67.0\u001b[39;00m\n\u001b[1;32m 1699\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m-> 1700\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_rotate\u001b[49m\u001b[43m(\u001b[49m\u001b[43mangle\u001b[49m\u001b[43m)\u001b[49m\n", "File \u001b[0;32m/usr/lib/python3.8/turtle.py:3277\u001b[0m, in \u001b[0;36mRawTurtle._rotate\u001b[0;34m(self, angle)\u001b[0m\n\u001b[1;32m 3275\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m _ \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(steps):\n\u001b[1;32m 3276\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_orient \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_orient\u001b[38;5;241m.\u001b[39mrotate(delta)\n\u001b[0;32m-> 3277\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_update\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3278\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_orient \u001b[38;5;241m=\u001b[39m neworient\n\u001b[1;32m 3279\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_update()\n", "File \u001b[0;32m/usr/lib/python3.8/turtle.py:2661\u001b[0m, in \u001b[0;36mRawTurtle._update\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 2659\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m\n\u001b[1;32m 2660\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m screen\u001b[38;5;241m.\u001b[39m_tracing \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m1\u001b[39m:\n\u001b[0;32m-> 2661\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_update_data\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2662\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_drawturtle()\n\u001b[1;32m 2663\u001b[0m screen\u001b[38;5;241m.\u001b[39m_update() \u001b[38;5;66;03m# TurtleScreenBase\u001b[39;00m\n", "File \u001b[0;32m/usr/lib/python3.8/turtle.py:2647\u001b[0m, in \u001b[0;36mRawTurtle._update_data\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 2646\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_update_data\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[0;32m-> 2647\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mscreen\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_incrementudc\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2648\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mscreen\u001b[38;5;241m.\u001b[39m_updatecounter \u001b[38;5;241m!=\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[1;32m 2649\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m\n", "File \u001b[0;32m/usr/lib/python3.8/turtle.py:1293\u001b[0m, in \u001b[0;36mTurtleScreen._incrementudc\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1291\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m TurtleScreen\u001b[38;5;241m.\u001b[39m_RUNNING:\n\u001b[1;32m 1292\u001b[0m TurtleScreen\u001b[38;5;241m.\u001b[39m_RUNNING \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[0;32m-> 1293\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m Terminator\n\u001b[1;32m 1294\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_tracing \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[1;32m 1295\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_updatecounter \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1\u001b[39m\n", "\u001b[0;31mTerminator\u001b[0m: " ] } ], "source": [ "from turtle import *\n", "color('red', 'yellow')\n", "begin_fill()\n", "while True:\n", " forward(200)\n", " left(170)\n", " if abs(pos()) < 1:\n", " break\n", "end_fill()\n", "done()" ] }, { "cell_type": "code", "execution_count": null, "id": "702bf113", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.10" } }, "nbformat": 4, "nbformat_minor": 5 }