{ "cells": [ { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "# Introduction to Python \n", "\n", "## [Packages](https://docs.python.org/3/tutorial/modules.html#packages) and [Modules](https://docs.python.org/3/tutorial/modules.html)\n", "\n", "#### Packages are a way of structuring Python’s module namespace by using “dotted module names”. For example, the module name A.B designates a submodule named B in a package named A. Just like the use of modules saves the authors of different modules from having to worry about each other’s global variable names, the use of dotted module names saves the authors of multi-module packages like NumPy or Pillow from having to worry about each other’s module names. \n", "\n", "#### A module is a file containing Python definitions and statements. The file name is the module name with the suffix .py appended. Within a module, the module’s name (as a string) is available as the value of the global variable __name__. " ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "__main__\n" ] } ], "source": [ "print(__name__)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### We can check all the properties (attributes and methods) from an object using _dir()_" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['In',\n", " 'Out',\n", " '_',\n", " '__',\n", " '___',\n", " '__builtin__',\n", " '__builtins__',\n", " '__doc__',\n", " '__loader__',\n", " '__name__',\n", " '__package__',\n", " '__spec__',\n", " '_dh',\n", " '_i',\n", " '_i1',\n", " '_i2',\n", " '_ih',\n", " '_ii',\n", " '_iii',\n", " '_oh',\n", " 'exit',\n", " 'get_ipython',\n", " 'quit']" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dir()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### We can also access all the Python builtins introspecting the __builtins__ variable " ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['ArithmeticError',\n", " 'AssertionError',\n", " 'AttributeError',\n", " 'BaseException',\n", " 'BlockingIOError',\n", " 'BrokenPipeError',\n", " 'BufferError',\n", " 'BytesWarning',\n", " 'ChildProcessError',\n", " 'ConnectionAbortedError',\n", " 'ConnectionError',\n", " 'ConnectionRefusedError',\n", " 'ConnectionResetError',\n", " 'DeprecationWarning',\n", " 'EOFError',\n", " 'Ellipsis',\n", " 'EnvironmentError',\n", " 'Exception',\n", " 'False',\n", " 'FileExistsError',\n", " 'FileNotFoundError',\n", " 'FloatingPointError',\n", " 'FutureWarning',\n", " 'GeneratorExit',\n", " 'IOError',\n", " 'ImportError',\n", " 'ImportWarning',\n", " 'IndentationError',\n", " 'IndexError',\n", " 'InterruptedError',\n", " 'IsADirectoryError',\n", " 'KeyError',\n", " 'KeyboardInterrupt',\n", " 'LookupError',\n", " 'MemoryError',\n", " 'ModuleNotFoundError',\n", " 'NameError',\n", " 'None',\n", " 'NotADirectoryError',\n", " 'NotImplemented',\n", " 'NotImplementedError',\n", " 'OSError',\n", " 'OverflowError',\n", " 'PendingDeprecationWarning',\n", " 'PermissionError',\n", " 'ProcessLookupError',\n", " 'RecursionError',\n", " 'ReferenceError',\n", " 'ResourceWarning',\n", " 'RuntimeError',\n", " 'RuntimeWarning',\n", " 'StopAsyncIteration',\n", " 'StopIteration',\n", " 'SyntaxError',\n", " 'SyntaxWarning',\n", " 'SystemError',\n", " 'SystemExit',\n", " 'TabError',\n", " 'TimeoutError',\n", " 'True',\n", " 'TypeError',\n", " 'UnboundLocalError',\n", " 'UnicodeDecodeError',\n", " 'UnicodeEncodeError',\n", " 'UnicodeError',\n", " 'UnicodeTranslateError',\n", " 'UnicodeWarning',\n", " 'UserWarning',\n", " 'ValueError',\n", " 'Warning',\n", " 'ZeroDivisionError',\n", " '__IPYTHON__',\n", " '__build_class__',\n", " '__debug__',\n", " '__doc__',\n", " '__import__',\n", " '__loader__',\n", " '__name__',\n", " '__package__',\n", " '__spec__',\n", " 'abs',\n", " 'all',\n", " 'any',\n", " 'ascii',\n", " 'bin',\n", " 'bool',\n", " 'breakpoint',\n", " 'bytearray',\n", " 'bytes',\n", " 'callable',\n", " 'chr',\n", " 'classmethod',\n", " 'compile',\n", " 'complex',\n", " 'copyright',\n", " 'credits',\n", " 'delattr',\n", " 'dict',\n", " 'dir',\n", " 'display',\n", " 'divmod',\n", " 'enumerate',\n", " 'eval',\n", " 'exec',\n", " 'filter',\n", " 'float',\n", " 'format',\n", " 'frozenset',\n", " 'get_ipython',\n", " 'getattr',\n", " 'globals',\n", " 'hasattr',\n", " 'hash',\n", " 'help',\n", " 'hex',\n", " 'id',\n", " 'input',\n", " 'int',\n", " 'isinstance',\n", " 'issubclass',\n", " 'iter',\n", " 'len',\n", " 'license',\n", " 'list',\n", " 'locals',\n", " 'map',\n", " 'max',\n", " 'memoryview',\n", " 'min',\n", " 'next',\n", " 'object',\n", " 'oct',\n", " 'open',\n", " 'ord',\n", " 'pow',\n", " 'print',\n", " 'property',\n", " 'range',\n", " 'repr',\n", " 'reversed',\n", " 'round',\n", " 'set',\n", " 'setattr',\n", " 'slice',\n", " 'sorted',\n", " 'staticmethod',\n", " 'str',\n", " 'sum',\n", " 'super',\n", " 'tuple',\n", " 'type',\n", " 'vars',\n", " 'zip']" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dir(__builtins__)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "***" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## There are 4 main ways to import Packages and Modules \n", "### 1 - Importing the full package: " ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "deletable": true, "editable": true }, "outputs": [], "source": [ "import string\n", "import random\n", "import math\n", "import numpy" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['In',\n", " 'Out',\n", " '_',\n", " '_2',\n", " '_3',\n", " '__',\n", " '___',\n", " '__builtin__',\n", " '__builtins__',\n", " '__doc__',\n", " '__loader__',\n", " '__name__',\n", " '__package__',\n", " '__spec__',\n", " '_dh',\n", " '_i',\n", " '_i1',\n", " '_i2',\n", " '_i3',\n", " '_i4',\n", " '_i5',\n", " '_ih',\n", " '_ii',\n", " '_iii',\n", " '_oh',\n", " 'exit',\n", " 'get_ipython',\n", " 'math',\n", " 'numpy',\n", " 'quit',\n", " 'random',\n", " 'string']" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dir()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "'!\"#$%&\\'()*+,-./:;<=>?@[\\\\]^_`{|}~'" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "string.punctuation" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "0.13693478736873155" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "random.random()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "3.141592653589793" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "math.pi" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "3.141592653589793" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "numpy.pi" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "numpy.pi == math.pi" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "***" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "### 2 - Importing all modules from a package: \n", "#### (although this is not recommended) " ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "deletable": true, "editable": true }, "outputs": [], "source": [ "from math import *\n", "from numpy import *" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "#dir()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "2.718281828459045" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "e" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "deletable": true, "editable": true }, "outputs": [], "source": [ "e = [1,2,3]" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[1, 2, 3]" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "e" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "deletable": true, "editable": true }, "outputs": [], "source": [ "from math import *" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "2.718281828459045" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "e # The original variable was overwritten after the import" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "***" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3 - Importing specific modules from a package: " ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "deletable": true, "editable": true }, "outputs": [], "source": [ "from numpy import mean, pi" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "#dir()" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "5.0" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mean([1,2,3,4,5,6,7,8,9])" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "3.141592653589793" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pi" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "math.pi == nu==mpy.pi" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "***" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "### 4 - Importing a module and giving it a nickname: " ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "deletable": true, "editable": true }, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "#dir()" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot([1,2,3,4,5,6,4,3,2,1])" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "ename": "NameError", "evalue": "name 'pandas' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mpandas\u001b[0m \u001b[0;31m#NameError: name 'pandas' is not defined\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mNameError\u001b[0m: name 'pandas' is not defined" ] } ], "source": [ "pandas #NameError: name 'pandas' is not defined" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "***" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5 - (Creating and) Importing your own module: " ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "This will be printed on import\n" ] } ], "source": [ "import utils" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['__builtins__',\n", " '__cached__',\n", " '__doc__',\n", " '__file__',\n", " '__loader__',\n", " '__name__',\n", " '__package__',\n", " '__spec__',\n", " 'cube',\n", " 'my_constant',\n", " 'other_property',\n", " 'square']" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dir(utils)" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "64" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "utils.cube(4)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'3.14159'" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "utils.my_constant" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "***" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### And, as a curiosity, there is an \"Easter egg\" in Python\"" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false, "deletable": true, "editable": true, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The Zen of Python, by Tim Peters\n", "\n", "Beautiful is better than ugly.\n", "Explicit is better than implicit.\n", "Simple is better than complex.\n", "Complex is better than complicated.\n", "Flat is better than nested.\n", "Sparse is better than dense.\n", "Readability counts.\n", "Special cases aren't special enough to break the rules.\n", "Although practicality beats purity.\n", "Errors should never pass silently.\n", "Unless explicitly silenced.\n", "In the face of ambiguity, refuse the temptation to guess.\n", "There should be one-- and preferably only one --obvious way to do it.\n", "Although that way may not be obvious at first unless you're Dutch.\n", "Now is better than never.\n", "Although never is often better than *right* now.\n", "If the implementation is hard to explain, it's a bad idea.\n", "If the implementation is easy to explain, it may be a good idea.\n", "Namespaces are one honking great idea -- let's do more of those!\n" ] } ], "source": [ "import this" ] } ], "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": 4 }