{
 "metadata": {
  "name": ""
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "heading",
     "level": 1,
     "metadata": {},
     "source": [
      "chapter 5 : Functions: Mad Lib"
     ]
    },
    {
     "cell_type": "heading",
     "level": 3,
     "metadata": {},
     "source": [
      "example 5.1 page no : 152"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "\n",
      "# function prototype (declaration)\n",
      "def instructions():\n",
      "    print \"Welcome to the most fun you've ever had with text!\\n\";\n",
      "    print \"Here's how to play the game. . .\\n\";\n",
      "\n",
      "instructions();"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Welcome to the most fun you've ever had with text!\n",
        "\n",
        "Here's how to play the game. . .\n",
        "\n"
       ]
      }
     ],
     "prompt_number": 1
    },
    {
     "cell_type": "heading",
     "level": 3,
     "metadata": {},
     "source": [
      "example 5.2 page no : 156"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "def askYesNo1():\n",
      "    while True:\n",
      "        print \"Please enter 'y' or 'n' : \",\n",
      "        response1 = 'y' #raw_input()\n",
      "        if (response1 == 'y' or response1 == 'n'):\n",
      "            return response1\n",
      "\n",
      "def askYesNo2(question):\n",
      "    while True:\n",
      "        print question ,\n",
      "        response1 = 'n' #raw_input()\n",
      "        if (response1 == 'y' or response1 == 'n'):\n",
      "            return response1\n",
      "\n",
      "\n",
      "answer1 = askYesNo1();\n",
      "print \"Thanks for answering: \" , answer1  \n",
      "answer2 = askYesNo2(\"Do you wish to save your game?\");\n",
      "print \"Thanks for answering: \" , answer2 "
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Please enter 'y' or 'n' :  Thanks for answering:  y\n",
        "Do you wish to save your game? Thanks for answering:  n\n"
       ]
      }
     ],
     "prompt_number": 2
    },
    {
     "cell_type": "heading",
     "level": 3,
     "metadata": {},
     "source": [
      "example 5.3 page no : 162"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "def func():\n",
      "    var = -5; # local variable in func()\n",
      "    print \"In func() var is: \" , var \n",
      "\n",
      "var = 5 # local variable in main()\n",
      "print \"In main() var is: \" , var\n",
      "func();\n",
      "print \"Back in main() var is: \" , var\n",
      "print \"In main() in a new scope var is: \" , var\n",
      "print \"Creating new var in new scope.\";\n",
      "var = 10; # variable in new scope, hides other variable named var\n",
      "print \"In main() in a new scope var is: \" , var \n",
      "\n",
      "print \"At end of main() var created in new scope no longer exists.\";\n",
      "print \"At end of main() var is: \" , var "
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "In main() var is:  5\n",
        "In func() var is:  -5\n",
        "Back in main() var is:  5\n",
        "In main() in a new scope var is:  5\n",
        "Creating new var in new scope.\n",
        "In main() in a new scope var is:  10\n",
        "At end of main() var created in new scope no longer exists.\n",
        "At end of main() var is:  10\n"
       ]
      }
     ],
     "prompt_number": 3
    },
    {
     "cell_type": "heading",
     "level": 3,
     "metadata": {},
     "source": [
      "example 5.4 page no : 167"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "\n",
      "glob = 10; # global variable\n",
      "\n",
      "def access_global():\n",
      "    global glob\n",
      "    print \"In access_global() glob is: \" , glob\n",
      "\n",
      "def hide_global():\n",
      "    glob = 0 # hide global variable glob\n",
      "    print \"In hide_global() glob is: \" , glob\n",
      "\n",
      "def change_global():\n",
      "    glob = -10; # change global variable glob\n",
      "    print \"In change_global() glob is: \" , glob\n",
      "\n",
      "\n",
      "print \"In main() glob is: \" , glob\n",
      "access_global();\n",
      "hide_global();\n",
      "print  \"In main() glob is: \" , glob\n",
      "change_global();\n",
      "print \"In main() glob is: \" , glob"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "In main() glob is:  10\n",
        "In access_global() glob is:  10\n",
        "In hide_global() glob is:  0\n",
        "In main() glob is:  10\n",
        "In change_global() glob is:  -10\n",
        "In main() glob is:  10\n"
       ]
      }
     ],
     "prompt_number": 4
    },
    {
     "cell_type": "heading",
     "level": 3,
     "metadata": {},
     "source": [
      "example 5.5 page no : 172"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "def askNumber(high,low=1):\n",
      "    a = high + 2\n",
      "    while True:\n",
      "        print \"Please enter a number\" , \" (\" , low , \" - \" , high , \"): \"\n",
      "        num = a #int(raw_input())\n",
      "        if (num > high or num < low):\n",
      "            return num\n",
      "\n",
      "\n",
      "number = askNumber(5);\n",
      "print \"Thanks for entering: \" , number\n",
      "number = askNumber(10, 5);\n",
      "print \"Thanks for entering: \" , number"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Please enter a number  ( 1  -  5 ): \n",
        "Thanks for entering:  7\n",
        "Please enter a number  ( 5  -  10 ): \n",
        "Thanks for entering:  12\n"
       ]
      }
     ],
     "prompt_number": 6
    },
    {
     "cell_type": "heading",
     "level": 3,
     "metadata": {},
     "source": [
      "example 5.6 page no : 175"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "\n",
      "def triple(number):\n",
      "    return (number * 3);\n",
      "\n",
      "def triple1(text):\n",
      "    return (text + text + text);\n",
      "\n",
      "print \"Tripling 5: \" , triple(5) \n",
      "print \"Tripling 'gamer': \" , triple1(\"gamer\");"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Tripling 5:  15\n",
        "Tripling 'gamer':  gamergamergamer\n"
       ]
      }
     ],
     "prompt_number": 7
    },
    {
     "cell_type": "heading",
     "level": 3,
     "metadata": {},
     "source": [
      "example 5.7 page no : 178"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "\n",
      "def radiation( health):\n",
      "    return (health / 2);\n",
      "\n",
      "health = 80;\n",
      "print \"Your health is \" , health \n",
      "health = radiation(health);\n",
      "print \"After radiation exposure your health is \" , health \n",
      "health = radiation(health);\n",
      "print \"After radiation exposure your health is \" , health \n",
      "health = radiation(health);\n",
      "print \"After radiation exposure your health is \" , health "
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Your health is  80\n",
        "After radiation exposure your health is  40\n",
        "After radiation exposure your health is  20\n",
        "After radiation exposure your health is  10\n"
       ]
      }
     ],
     "prompt_number": 8
    },
    {
     "cell_type": "heading",
     "level": 3,
     "metadata": {},
     "source": [
      "example 5.8 page no :  181"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "\n",
      "def askText(prompt):\n",
      "    print prompt ,\n",
      "    a = raw_input()\n",
      "    return a\n",
      "\n",
      "def askNumber(prompt):\n",
      "    print prompt ,\n",
      "    return int(raw_input())\n",
      "\n",
      "def tellStory(name, noun, number, bodyPart, verb):\n",
      "    print \"\\nHere's your story:\";\n",
      "    print \"The famous explorer \" ,;\n",
      "    print name ,\n",
      "    print \" had nearly given up a life-long quest to find\",\n",
      "    print \"The Lost City of \",\n",
      "    print noun,\n",
      "    print \" when one day, the \",\n",
      "    print noun,\n",
      "    print \" found the explorer.\"\n",
      "    print \"Surrounded by \",\n",
      "    print number,\n",
      "    print \" \" , noun,\n",
      "    print \", a tear came to \",\n",
      "    print name , \"'s \",\n",
      "    print bodyPart , \".\"\n",
      "    print \"After all this time, the quest was finally over. \",\n",
      "    print \"And then, the \",\n",
      "    print noun \n",
      "    print \"promptly devoured \",\n",
      "    print name , \". \"\n",
      "    print \"The moral of the story? Be careful what you \",\n",
      "    print verb,\n",
      "    print \" for.\",\n",
      "\n",
      "\n",
      "print \"Welcome to Mad Lib.\\n\";\n",
      "print \"Answer the following questions to help create a new story.\";\n",
      "name = 'jay' #askText(\"Please enter a name: \");\n",
      "noun = 'go' #askText(\"Please enter a plural noun: \");\n",
      "number = 10 #askNumber(\"Please enter a number: \");\n",
      "bodyPart = 'nothing' #askText(\"Please enter a body part: \");\n",
      "verb = 'verb' #askText(\"Please enter a verb: \");\n",
      "tellStory(name, noun, number, bodyPart, verb);\n",
      "\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Welcome to Mad Lib.\n",
        "\n",
        "Answer the following questions to help create a new story.\n",
        "\n",
        "Here's your story:\n",
        "The famous explorer  jay  had nearly given up a life-long quest to find The Lost City of  go  when one day, the  go  found the explorer.\n",
        "Surrounded by  10   go , a tear came to  jay 's  nothing .\n",
        "After all this time, the quest was finally over.  And then, the  go\n",
        "promptly devoured  jay . \n",
        "The moral of the story? Be careful what you  verb  for.\n"
       ]
      }
     ],
     "prompt_number": 9
    }
   ],
   "metadata": {}
  }
 ]
}