{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "

\n", "NASA Goddard Space Flight Center
\n", " Python User Group
\n", "2014 Python Boot Camp\n", "

\n", "
" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Functions and Modules" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Reference Document" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
    \n", "
  1. Python Functions\n", "
  2. Python Programming/Functions\n", "
  3. Python Modules\n", "
  4. Making your Own Module\n", "
" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "What is a Function?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Basic Synthax of a Function" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from IPython.core.display import Image \n", "Image(filename='diagramFunction.png') " ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAAdAAAAElCAIAAADbYCT9AAAWBWlDQ1BJQ0MgUHJvZmlsZQAAWIW1\nWAdQVEGTnvc2LyxpyTnnjGTJWTJIlJyzhCUKKkFUwAACkhQFJAoYSCKCgIAKIkEBBRRFBAQRBUTy\nrXr3/3dXd3V1VXddNfu+7Zqa92b6q+6vBwCmCffQ0CCYBoDgEFK4lYE2t72DIzdmGkAAD3AABozu\nnhGhWhYWJuC/tZ9j5NlkG5X4vdZ/P++/NFov7whPACALMvbwivAMJuMGMpb0DA0nkfEnMh6KJoWS\nMfzbTx9O/kAyfvob+/7FU7+xx1+8+mfOUSsdABBIALCU7u7hvgBQkHcIuKM8fcnrUEgDgKYL8fIP\nIb9el4zVPf3cvQBgSiHPEQ8OPv4b3yFjYY9/t47vf1jT4x9rurv7/gP/3csfw+r6R4QGucf+L4/j\nf7bgoMh/e8fvU6f0DrGxJj/pyIMd6IDjIIg8wgE3MCH/I++O5B1D+j1Z53hobLi/rx+JW4scJW9x\nbqMQT0lxbllpGbn/82/8/7Tf/PyL1qz+nADE+PKfvuBkAJSzyTw49k+f5wwAzd8BwH3+p08gAgCq\neAB6lzwjw6P++pC/f1Bk3lMDesACOAEfEAYSQBYoAFWgCfTAEWAOjgIH4AI8gR8IJp9yNIgHiSAV\npIPLIAcUgGJQCipBLbgHmkEb6AS9oB8MgddgEsyAObAEVsFPsANBEAYiQESIBeKCBCAxSBZSgtQh\nPcgEsoIcIDfIFwqBIqF4KBlKh7KgAugmVAXdhR5AndAzaBh6A32AFqEf0DaMgClhepgDFoSlYCVY\nCzaGj8LOsC8cBsfBKfBFOA8ugW/DTXAn3A+/hmfgJXgDARAUCEYED0ICoYTQQZgjHBE+iHDESUQa\nIhdRgqhDtCL6EKOIGcQyYguJRhKR3EgJpCrSEGmD9ESGIU8iM5AFyEpkE/IJchT5AbmK3EcRUOwo\nMZQKyghlj/JFRaNSUbmoclQjqgf1GjWH+olGoxnRQmhFtCHaAR2APoHOQF9D16Mfo4fRs+gNDAbD\nghHDqGHMMe4YEiYVk4+5jenAjGDmML+wFFgurCxWH+uIDcEmYXOx1dh27Ah2HruDo8EJ4FRw5jgv\nXCzuEq4M14p7iZvD7eBp8UJ4NfxRfAA+EZ+Hr8P34KfwaxQUFLwUyhSWFP4UpynyKO5QPKX4QLFF\nSUcpSqlD6UQZSXmRsoLyMeUbyjUCgSBI0CQ4EkiEi4QqQjfhHeEXFZFKksqIyovqFFUhVRPVCNUK\nNY5agFqL2oU6jjqX+j71S+plGhyNII0OjTvNSZpCmgc04zQbtERaGVpz2mDaDNpq2me0C3QYOkE6\nPTovuhS6UrpuulkigshH1CF6EpOJZcQe4hw9ml6I3og+gD6dvpZ+kH6VgY7hEIMtQwxDIcMjhhlG\nBKMgoxFjEOMlxnuMY4zbTBxMWkzeTOeZ6phGmDaZ2Zg1mb2Z05jrmV8zb7Nws+ixBLJksjSzTLMi\nWUVZLVmjWa+z9rAus9GzqbJ5sqWx3WN7yw6zi7JbsZ9gL2UfYN/g4OQw4AjlyOfo5ljmZOTU5Azg\nzOZs51zkInKpc/lzZXN1cH3hZuDW4g7izuN+wr3Kw85jyBPJc5NnkGeHV4jXhjeJt553mg/Pp8Tn\nw5fN18W3ys/Fb8ofz1/D/1YAJ6Ak4CdwVaBPYFNQSNBO8Kxgs+CCELOQkVCcUI3QlDBBWEM4TLhE\n+JUIWkRJJFDkmsiQKCwqL+onWij6UgwWUxDzF7smNiyOElcWDxEvER+XoJTQkoiSqJH4IMkoaSKZ\nJNksuSLFL+UolSnVJ7UvLS8dJF0mPSlDJ3NEJkmmVeaHrKisp2yh7Cs5gpy+3Cm5Frnvh8QOeR+6\nfmhCnihvKn9Wvkt+T0FRIVyhTmFRkV/RTbFIcVyJXslCKUPpqTJKWVv5lHKb8paKggpJ5Z7KN1UJ\n1UDVatWFw0KHvQ+XHZ5V41VzV7upNqPOre6mfkN9RoNHw12jROOjJp+ml2a55ryWiFaA1m2tFW1p\n7XDtRu1NHRWdBJ3HughdA9003UE9Oj0bvQK9d/q8+r76NfqrBvIGJwweG6IMjQ0zDceNOIw8jaqM\nVo8oHkk48sSY0tjauMD4o4moSbhJqylsesT0iumUmYBZiFmzOTA3Mr9iPm0hZBFm8dASbWlhWWj5\n2UrGKt6qz5po7Wpdbf3zqPbRS0cnbYRtIm26bKltnWyrbDftdO2y7GbspewT7PsdWB38HVocMY62\njuWOG8f0juUcm3OSd0p1GnMWco5xfubC6hLk8siV2tXd9b4bys3Ordpt193cvcR9w8PIo8hj1VPH\n86rnkpemV7bXoread5b3vI+aT5bPgq+a7xXfRT8Nv1y/ZX8d/wL/7wGGAcUBm4HmgRWBB0F2QfXB\n2GC34AchdCGBIU+Ocx6POT4cKhaaGjoTphKWE7YabhxeHgFFOEe0kOjJQmAgUjjyTOSHKPWowqhf\n0bbR92NoY0JiBmJFY8/Hzsfpx906gTzheaIrnic+Mf5DglbCzZPQSY+TXaf4TqWcmjttcLoyEZ8Y\nmPgiSTopK2k92S65NYUj5XTK7BmDMzWpVKnhqeNnVc8Wn0Oe8z83eF7ufP75/TSvtOfp0um56bsZ\nnhnPL8hcyLtwcNHn4uAlhUvXL6Mvh1wey9TIrMyizYrLmr1ieqUpmzs7LXs9xzXnWe6h3OKr+KuR\nV2fyTPJa8vnzL+fvFvgVvC7ULqwvYi86X7R5zevayHXN63XFHMXpxds3/G9M3DS42VQiWJJbii6N\nKv1cZlvWd0vpVlU5a3l6+V5FSMVMpVXlkyrFqqpq9upLNXBNZM3ibafbQ7W6tS11EnU36xnr0++A\nO5F3vtx1uzt2z/he132l+3UNAg1FjcTGtCaoKbZptdmveabFoWX4wZEHXa2qrY0PJR9WtPG0FT5i\neHSpHd+e0n7QEdex8Tj08XKnb+dsl2vXZLd996snlk8Ge4x7nvbq93b3afV1PFV72vZM5dmD50rP\nm/sV+psG5AcaX8i/aBxUGGx6qfiyZUh5qHX48HD7iMZI56juaO8ro1f9r81eD4/ZjE2MO43PTHhN\nLLwJevP9bdTbncnTU6iptGma6dx37O9K3ou8r59RmHn0QffDwEfrj5OznrNLnyI+7c6lfCZ8zp3n\nmq9akF1oW9RfHPpy7MvcUujSznLqV9qvRSvCKw3fNL8NrNqvzn0P/37wI2ONZa1i/dB614bFxruf\nwT93NtN+sfyq3FLa6tu2257fid7F7Obtiey17hvvTx0EHxyEuoe7/5ECCPKAfXwA+FEBAMEBAOIQ\nAHiqv/rxXw1BFh8w+Ykm6y5dsgoYhTghZ6gKBrA9/BAhhChAMiGLUOKoPnQIhgszis3BueElKZAU\n7yi/UxGo5WiO0SbR3SXOM7AzOjBdZZ5iFWALZW/npOby5W7nZeEL528T2BZSEA4VqRB9K46RkJA0\nk/KRjpFJlD0jl3QoQZ6k4KtoqSSqjFR+p/JANfdwpJqNuqIGmyasuaw1rt2j06hboVekn2WQZphk\ndOIIyTjExN/U28zL3MvCy9LPKsSadDTBJtX2ot1V+2KHCsf6Y01Obc5dLr2u/W4v3Uc9xj0nvT56\n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\n", "prompt_number": 20, "text": [ "" ] } ], "prompt_number": 20 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "An Example" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def addnums(x,y):\n", " return x + y" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "addnums(2,3)" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "print addnums(0x1f,3.3)" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "print addnums(\"a\",\"b\")" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "print addnums(\"cat\",23232)" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Scope of a Function" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def numop(x,y):\n", " x *= 3.14\n", " return x + y\n", "x = 2\n", "print numpop(x, 8)\n", "print x" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "raw", "metadata": {}, "source": [ "Python has it\u2019s own local variables list. \n", "x is not modified globally\n", "...unless you specify that it\u2019s a global variable" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def numop(x,y):\n", " x *= 3.14\n", " global a\n", " a += 1\n", " return x + y, a\n", "\n", "a = 2\n", "numop(1,1)\n", "numop(1,1)" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Pass by reference vs value" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "All parameters (arguments) in the Python language are passed by reference. \n", "It means if you change what a parameter refers to within a function, the change also reflects back in the calling function. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "def changeme_1( mylist ):\n", " mylist = [1,2,3,4]; # This would assig new reference in mylist\n", " print \"Values inside the function changeme_1: \", mylist\n", " return\n", "\n", "def changeme_2( mylist ):\n", " mylist.append([1,2,3,4]);\n", " print \"Values inside the function changeme_2: \", mylist\n", " return\n", "\n", "mylist1 = [10,20,30];\n", "changeme_1( mylist1 );\n", "print \"Values outside the function: \", mylist1\n", "print\n", "\n", "mylist2 = [10,20,30];\n", "changeme_2( mylist2 );\n", "print \"Values outside the function: \", mylist2" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Function Arguments\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can call a function by using the following types of formal arguments:\n", "" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Keyword Arguments" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def numop1(x,y,multiplier=1.0,greetings=\"Thank you for your inquiry.\"):\n", " \"\"\" numop1 -- this does a simple operation on two numbers.\n", " We expect x,y are numbers and return x + y times the multiplier\n", " multiplier is also a number (a float is preferred) and is optional.\n", " It defaults to 1.0.\n", " You can also specify a small greeting as a string. \"\"\"\n", " if greetings is not None:\n", " print greetings\n", " return (x + y)*multiplier" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "help(numop1)" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "numop1(1,1)" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "numop1(1,1,multiplier=-0.5,greetings=None)" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Unspecified args and keywords" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def cheeseshop(kind, *arguments, **keywords): \n", " print \"-- Do you have any\", kind, \"?\"\n", " print \"-- I'm sorry, we're all out of\", kind \n", " for arg in arguments: \n", " print arg\n", " print \"-\" * 40\n", " keys = keywords.keys()\n", " keys.sort()\n", " for kw in keys: \n", " print kw, \":\", keywords[kw]" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "cheeseshop(\"Limburger\", \n", " \"It's very runny, sir.\", \n", " \"It's really very, VERY runny, sir.\",\n", " shopkeeper='Michael Palin',\n", " client=\"John Cleese\",\n", " sketch=\"Cheese Shop Sketch\")" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "What is a Module?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", " Any file ending in .py is treated as a module. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "%load \"numfun1.py\"" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "import numfun1" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "numfun1.numop1(2,3,2,greetings=None)" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "numop1(2,3,2,greetings=None)" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "%load \"numfun2.py\"" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "import numfun2" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "print numfun2.x, numfun2.s" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "s = \"eggs\"\n", "print s, numfun2.s" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "numfun2.s = s\n", "print s, numfun2.s" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Import Statements" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "from module_name import name as my_name\n", "from module_name import function_name \n", "from module_name import variable\n", "from module_name import variable, function_name1, function_name2, ...\n", "from module_name import *" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from numfun2 import x, numop2" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "x == 2" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "numop2(2,3,2,greetings=None)" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "s" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "numfun2.x" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "from numfun2 import s as my_fav_food\n", "from numfun2 import numop2 as awesome_adder" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "print my_fav_food" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "awesome_adder(2,3,1)" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "from numfun2 import *" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "print numop2(x,3,1)" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Built-In-Modules" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Breakout Session: Exploring Some Modules" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
    \n", "
  1. Create and edit a new file called age.py\n", "
  2. Within age.py, import the datetime module\n", "
      \n", "
    • use datetime.datetime() to create a variable representing when you were born\n", "
    • subtract the two, forming a new variable, which will be a datetime.timedelta() object. \n", " Print that variable.\n", "
        \n", "
      1. How many days have you been alive? How many hours?\n", "
      2. What will be the date in 1000 days from now?\n", "
      \n", "
    \n", "
  3. Create and edit a new file called age1.py
    \n", " When run from the command line with 1 argument, age1.py should print out the date in days from now.
    \n", " If run with three arguments print the time in days since then.

    \n", " ./age1.py 1000
    \n", " ./age1.py 1980 1 8\n", "
" ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }