{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Introduction To Python" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is a collection of various statements, features, etc. of IPython and the Python language. Much of this content is taken from other notebooks so I can't take credit for it, I just extracted the highlights I felt were most useful.\n", "\n", "Code cells are run by pressing shift-enter or using the play button in the toolbar." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "a = 10" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "10\n" ] } ], "source": [ "print(a)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import math" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.0\n" ] } ], "source": [ "x = math.cos(2 * math.pi)\n", "print(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Import the whole module into the current namespace instead." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.0\n" ] } ], "source": [ "from math import *\n", "x = cos(2 * pi)\n", "print(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Several ways to look at documentation for a module." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['__doc__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'hypot', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']\n" ] } ], "source": [ "print(dir(math))" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on built-in function cos in module math:\n", "\n", "cos(...)\n", " cos(x)\n", " \n", " Return the cosine of x (measured in radians).\n", "\n" ] } ], "source": [ "help(math.cos)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Variables" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "float" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x = 1.0\n", "type(x)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "int" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# dynamically typed\n", "x = 1\n", "type(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Operators" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(3, -1, 2, 0)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1 + 2, 1 - 2, 1 * 2, 1 / 2" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1.0" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# integer division of float numbers\n", "3.0 // 2.0" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "4" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# power operator\n", "2 ** 2" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "False" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "True and False" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "not False" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "True or False" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(True, False, False, False, True, True)" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "2 > 1, 2 < 1, 2 > 2, 2 < 2, 2 >= 2, 2 <= 2" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# equality\n", "[1,2] == [1,2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Strings" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "str" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s = \"Hello world\"\n", "type(s)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "11" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(s)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Hello test\n" ] } ], "source": [ "s2 = s.replace(\"world\", \"test\")\n", "print(s2)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'H'" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s[0]" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'Hello'" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s[0:5]" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'world'" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s[6:]" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'Hello world'" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s[:]" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'Hlowrd'" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# define step size of 2\n", "s[::2]" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "('str1', 'str2', 'str3')\n" ] } ], "source": [ "# automatically adds a space\n", "print(\"str1\", \"str2\", \"str3\")" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "value = 1.000000\n" ] } ], "source": [ "# C-style formatting\n", "print(\"value = %f\" % 1.0) " ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "value1 = 3.1415, value2 = 1.5\n" ] } ], "source": [ "# alternative, more intuitive way of formatting a string \n", "s3 = 'value1 = {0}, value2 = {1}'.format(3.1415, 1.5)\n", "print(s3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Lists" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "[1, 2, 3, 4]\n" ] } ], "source": [ "l = [1,2,3,4]\n", "\n", "print(type(l))\n", "print(l)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[2, 3]\n", "[1, 3]\n" ] } ], "source": [ "print(l[1:3])\n", "print(l[::2])" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "l[0]" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1, 'a', 1.0, (1-1j)]\n" ] } ], "source": [ "# don't have to be the same type\n", "l = [1, 'a', 1.0, 1-1j]\n", "print(l)" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[10, 12, 14, 16, 18, 20, 22, 24, 26, 28]" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "start = 10\n", "stop = 30\n", "step = 2\n", "range(start, stop, step)\n", "\n", "# consume the iterator created by range\n", "list(range(start, stop, step))" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['A', 'd', 'd']\n" ] } ], "source": [ "# create a new empty list\n", "l = []\n", "\n", "# add an elements using `append`\n", "l.append(\"A\")\n", "l.append(\"d\")\n", "l.append(\"d\")\n", "\n", "print(l)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['A', 'b', 'c']\n" ] } ], "source": [ "l[1:3] = [\"b\", \"c\"]\n", "print(l)" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['i', 'n', 's', 'e', 'r', 't', 'A', 'b', 'c']\n" ] } ], "source": [ "l.insert(0, \"i\")\n", "l.insert(1, \"n\")\n", "l.insert(2, \"s\")\n", "l.insert(3, \"e\")\n", "l.insert(4, \"r\")\n", "l.insert(5, \"t\")\n", "\n", "print(l)" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['i', 'n', 's', 'e', 'r', 't', 'b', 'c']\n" ] } ], "source": [ "l.remove(\"A\")\n", "print(l)" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['i', 'n', 's', 'e', 'r', 't']\n" ] } ], "source": [ "del l[7]\n", "del l[6]\n", "\n", "print(l)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Tuples" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "((10, 20), )\n" ] } ], "source": [ "point = (10, 20)\n", "print(point, type(point))" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "('x =', 10)\n", "('y =', 20)\n" ] } ], "source": [ "# unpacking\n", "x, y = point\n", "\n", "print(\"x =\", x)\n", "print(\"y =\", y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Dictionaries" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "{'parameter1': 1.0, 'parameter3': 3.0, 'parameter2': 2.0}\n" ] } ], "source": [ "params = {\"parameter1\" : 1.0,\n", " \"parameter2\" : 2.0,\n", " \"parameter3\" : 3.0,}\n", "\n", "print(type(params))\n", "print(params)" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "parameter1 = A\n", "parameter2 = B\n", "parameter3 = 3.0\n", "parameter4 = D\n" ] } ], "source": [ "params[\"parameter1\"] = \"A\"\n", "params[\"parameter2\"] = \"B\"\n", "\n", "# add a new entry\n", "params[\"parameter4\"] = \"D\"\n", "\n", "print(\"parameter1 = \" + str(params[\"parameter1\"]))\n", "print(\"parameter2 = \" + str(params[\"parameter2\"]))\n", "print(\"parameter3 = \" + str(params[\"parameter3\"]))\n", "print(\"parameter4 = \" + str(params[\"parameter4\"]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Control Flow" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "statement1 and statement2 are False\n" ] } ], "source": [ "statement1 = False\n", "statement2 = False\n", "\n", "if statement1:\n", " print(\"statement1 is True\")\n", "elif statement2:\n", " print(\"statement2 is True\")\n", "else:\n", " print(\"statement1 and statement2 are False\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Loops" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n", "1\n", "2\n", "3\n" ] } ], "source": [ "for x in range(4):\n", " print(x)" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "scientific\n", "computing\n", "with\n", "python\n" ] } ], "source": [ "for word in [\"scientific\", \"computing\", \"with\", \"python\"]:\n", " print(word)" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "parameter4 = D\n", "parameter1 = A\n", "parameter3 = 3.0\n", "parameter2 = B\n" ] } ], "source": [ "for key, value in params.items():\n", " print(key + \" = \" + str(value))" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(0, -3)\n", "(1, -2)\n", "(2, -1)\n", "(3, 0)\n", "(4, 1)\n", "(5, 2)\n" ] } ], "source": [ "for idx, x in enumerate(range(-3,3)):\n", " print(idx, x)" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0, 1, 4, 9, 16]\n" ] } ], "source": [ "l1 = [x**2 for x in range(0,5)]\n", "print(l1)" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n", "1\n", "2\n", "3\n", "4\n", "done\n" ] } ], "source": [ "i = 0\n", "while i < 5:\n", " print(i)\n", " i = i + 1\n", "print(\"done\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Functions" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# include a docstring\n", "def func(s):\n", " \"\"\"\n", " Print a string 's' and tell how many characters it has \n", " \"\"\"\n", " \n", " print(s + \" has \" + str(len(s)) + \" characters\")" ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on function func in module __main__:\n", "\n", "func(s)\n", " Print a string 's' and tell how many characters it has\n", "\n" ] } ], "source": [ "help(func)" ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "test has 4 characters\n" ] } ], "source": [ "func(\"test\")" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def square(x):\n", " return x ** 2" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "25" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "square(5)" ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# multiple return values\n", "def powers(x):\n", " return x ** 2, x ** 3, x ** 4" ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(25, 125, 625)" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "powers(5)" ] }, { "cell_type": "code", "execution_count": 57, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "125\n" ] } ], "source": [ "x2, x3, x4 = powers(5)\n", "print(x3)" ] }, { "cell_type": "code", "execution_count": 58, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "25" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f1 = lambda x: x**2\n", "f1(5)" ] }, { "cell_type": "code", "execution_count": 59, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[9, 4, 1, 0, 1, 4, 9]" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "map(lambda x: x**2, range(-3,4))" ] }, { "cell_type": "code", "execution_count": 60, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[9, 4, 1, 0, 1, 4, 9]" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# convert iterator to list\n", "list(map(lambda x: x**2, range(-3,4)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Classes" ] }, { "cell_type": "code", "execution_count": 61, "metadata": { "collapsed": false }, "outputs": [], "source": [ "class Point:\n", " def __init__(self, x, y):\n", " self.x = x\n", " self.y = y\n", " \n", " def translate(self, dx, dy):\n", " self.x += dx\n", " self.y += dy\n", " \n", " def __str__(self):\n", " return(\"Point at [%f, %f]\" % (self.x, self.y))" ] }, { "cell_type": "code", "execution_count": 62, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Point at [0.000000, 0.000000]\n" ] } ], "source": [ "p1 = Point(0, 0)\n", "print(p1)" ] }, { "cell_type": "code", "execution_count": 63, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Point at [0.250000, 1.500000]\n", "Point at [1.000000, 1.000000]\n" ] } ], "source": [ "p2 = Point(1, 1)\n", "\n", "p1.translate(0.25, 1.5)\n", "\n", "print(p1)\n", "print(p2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exceptions" ] }, { "cell_type": "code", "execution_count": 64, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Caught an expection\n" ] } ], "source": [ "try:\n", " print(test)\n", "except:\n", " print(\"Caught an expection\")" ] }, { "cell_type": "code", "execution_count": 65, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Caught an exception: name 'test' is not defined\n" ] } ], "source": [ "try:\n", " print(test)\n", "except Exception as e:\n", " print(\"Caught an exception: \" + str(e))" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.9" } }, "nbformat": 4, "nbformat_minor": 0 }