{ "metadata": { "name": "", "signature": "sha256:cea79a35a095750f932030d193b34f2136c703d7c2c54113f8e7917863a4322a" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "

Chapter 8: Functions,Part Two: References, Overloading, and Default Arguments

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Example 8.1, Page Number: 158

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "def sqr_it(x):\n", " x=x*x\n", " return x\n", "\n", "#Variable decleration\n", "t=10\n", "\n", "#Result; function calling\n", "print sqr_it(t),' ',t\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "100 10\n" ] } ], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Example 8.2, Page Number: 159

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "\n", "def swap(x,y):\n", " temp=x\n", " x=y\n", " y=temp\n", " return x, y\n", "\n", "#Variable decleration\n", "i=10\n", "j=20 \n", "\n", "#Initial values\n", "print \"Initial values of i and j: \",\n", "print i,' ',j\n", "\n", "#Calling function to swap\n", "i, j=swap(i,j)\n", "\n", "#Result\n", "print \"Swapped values of i and j: \",\n", "print i,' ',j" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Initial values of i and j: 10 20\n", "Swapped values of i and j: 20 10\n" ] } ], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Example 8.3, Page Number: 161

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "\n", "def f(i):\n", " i=10\n", " return i #Returning the value since the function cannot access the variables in the calling scope.\n", "\n", "#Variable Decleration\n", "val=1\n", "\n", "print \"Old value for val: \",val\n", "val=f(val) #Function call\n", "\n", "#Result\n", "print \"New value for val: \",val\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Old value for val: 1\n", "New value for val: 10\n" ] } ], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Example 8.4, Page Number: 162

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "def swap(i,j):\n", " temp=i[0]\n", " i[0]=j[0]\n", " j[0]=temp\n", " return i, j\n", "\n", "#Variable decleration\n", "i=[]\n", "j=[]\n", "i.append(10)\n", "j.append(20)\n", "\n", "#Initial values\n", "print \"Initial values of i and j: \",\n", "print i[0],' ',j[0]\n", "\n", "#Calling function to swap\n", "i, j=swap(i,j)\n", "\n", "#Result\n", "print \"Swapped values of i and j: \",\n", "print i[0],' ',j[0]" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Initial values of i and j: 10 20\n", "Swapped values of i and j: 20 10\n" ] } ], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Example 8.5, Page Number: 164

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "#Variable Decleration\n", "val = 100.0\n", "\n", "def f():\n", " global val\n", " return val\n", "\n", "#Result\n", "print val\n", "\n", "newval=f() #function call\n", "print newval\n", "\n", "val=99.1 #change val's value\n", "print f() #print val's new value\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "100.0\n", "100.0\n", "99.1\n" ] } ], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Example 8.6, Page Number: 166

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "#Function definition\n", "def change_it(i,n):\n", " global vals\n", " vals[i]=n\n", "\n", "#Variable Decleration\n", "vals=[1.1,2.2,3.3,4.4,5.5]\n", "\n", "print \"Here are the original values: \",\n", "for i in range(5):\n", " print vals[i],\n", "print\n", " \n", "#Function call\n", "change_it(1,5298.23)\n", "change_it(3,-98.8)\n", "\n", "#Result\n", "print \"Here are the changed values: \",\n", "for i in range(5):\n", " print vals[i]," ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Here are the original values: 1.1 2.2 3.3 4.4 5.5\n", "Here are the changed values: 1.1 5298.23 3.3 -98.8 5.5\n" ] } ], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Example 8.7, Page Number: 167

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "#Variable Decleration\n", "vals=[None]*10\n", "error=-1\n", "\n", "#put values into the array\n", "def put(i,n):\n", " global vals\n", " if i>=0 and i<10:\n", " vals[i]=n\n", " else:\n", " print \"Bounds Error!\"\n", " error=n\n", "\n", "#obtain a value from the array\n", "def get(i):\n", " if i>=0 and i<10:\n", " return vals[i]\n", " else:\n", " print \"Bounds error!\"\n", " return -1\n", " \n", "#put values into the array\n", "put(0,10)\n", "put(1,20)\n", "put(9,30)\n", "\n", "#Result\n", "print get(0),' ',get(1),' ',get(9),\n", "\n", "#now, intentionally generate an errer\n", "put(12,1)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "10 20 30 Bounds Error!\n" ] } ], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Example 8.8, Page Number: 169

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "#Variable Decleration\n", "i=[]\n", "j=i #independent reference\n", "\n", "j.append(10) #Here i and j are just references to [10]\n", "\n", "print j[0],\" \",i[0] \n", "\n", "k=121\n", "i[0]=k #copies k's value into j[0] \n", "\n", "#Result\n", "print j[0]" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "10 10\n", "121\n" ] } ], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Example 8.9, Page Number: 170

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "def f(i,j=None):\n", " if j==None: \n", " if isinstance(i,int): #for 1st function\n", " print \"In f(int), i is \",i \n", " else: #for 3rd function\n", " print \"In f(double), k is \",i\n", " else: #for 2nd arguments\n", " print \"In f(int,int), i is \",i,\", j is \",j\n", " \n", "#calling function\n", "f(10)\n", "f(10,20)\n", "f(12.23)\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "In f(int), i is 10\n", "In f(int,int), i is 10 , j is 20\n", "In f(double), k is 12.23\n" ] } ], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Example 8.10, Page Number: 171

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "#myabs() in three ways\n", "def myabs(i):\n", " if isinstance(i,int): #first instance\n", " print \"Using integer myabs(): \",\n", " if i<0:\n", " return -i\n", " else:\n", " return i\n", " elif isinstance(i,float): #second instance\n", " print \"Using double myabs(): \",\n", " if(i<0.0):\n", " return -i\n", " else:\n", " return i\n", " elif isinstance(i,long): #third instance\n", " print \"Using long myabs(): \",\n", " if i<0:\n", " return -i\n", " else:\n", " return i\n", "\n", "#Result; calling the function \n", "print myabs(-10)\n", "print myabs(-11.0)\n", "print myabs(-9L)\n", "\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Using integer myabs(): 10\n", "Using double myabs(): 11.0\n", "Using long myabs(): 9\n" ] } ], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Example 8.11, Page Number: 174

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "import os\n", "\n", "def clrscr(size=25):\n", " while(size):\n", " print \"\"\n", " size-=1\n", " \n", "for i in range(30):\n", " print i\n", " clrscr() #clears 25 lines\n", "\n", "for i in range(30):\n", " print i\n", " clrscr(10) #clears 10 lines\n", " " ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "0\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "1\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "2\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "3\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "4\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "5\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "6\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "7\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "8\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "9\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "10\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "11\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "12\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "13\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "14\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "15\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "16\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "17\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "18\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "19\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "20\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "21\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "22\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "23\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "24\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "25\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "26\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "27\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "28\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "29\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "0\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "1\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "2\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "3\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "4\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "5\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "6\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "7\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "8\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "9\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "10\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "11\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "12\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "13\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "14\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "15\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "16\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "17\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "18\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "19\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "20\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "21\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "22\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "23\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "24\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "25\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "26\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "27\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "28\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "29\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n" ] } ], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Example 8.12, Page Number: 176

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "#Variable Decleration\n", "str1 = \"This is a test\"\n", "str2 = \"0123456789\"\n", "\n", "#function for concatenation\n", "def mystrcat(s1,s2,l=-1):\n", " if l==-1:\n", " l=len(str2)\n", " s2=s2[:l] #truncates s2\n", " s1=s1+s2 #concatenates the 2 strings\n", " return s1\n", "\n", "str1=mystrcat(str1,str2,5) #concatenate 5 chars\n", "print str1\n", "\n", "str1 = \"this is a test\" #reset str1\n", "\n", "str1=mystrcat(str1, str2) #concatenate entire string\n", "print str1" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "This is a test01234\n", "this is a test0123456789\n" ] } ], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Example 8.13, Page Number: 177

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "def myfunc(i):\n", " return i\n", " \n", "print myfunc(10.1),\n", "print myfunc(10)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "10.1 10\n" ] } ], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Example 8.14, Page Number: 178

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "from ctypes import *\n", "\n", "def myfunc(ch):\n", " if isinstance(ch,c_int):\n", " return chr(ch.value+1)\n", " elif isinstance(ch,c_uint):\n", " return chr(ch.value-1)\n", " \n", " \n", "print myfunc(c_int(ord('c'))),\n", "print myfunc(c_uint(88))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " d W\n" ] } ], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Example 8.15, Page Number: 179

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "def myfunc(i,j=1):\n", " if j==1:\n", " return i*j\n", " else:\n", " return i\n", " \n", " \n", "print myfunc(4,5),\n", "print myfunc(10)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "4 10\n" ] } ], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }