{
 "metadata": {
  "name": "ch5"
 },
 "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// Instructions\n// Demonstrates writing new functions\n'''\n\n# function prototype (declaration)\ndef 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\ninstructions();",
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": "Welcome to the most fun you've ever had with text!\n\nHere'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// Yes or No\n// Demonstrates return values and parameters\n'''\n\ndef 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\ndef 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\nanswer1 = askYesNo1();\nprint \"Thanks for answering: \" , answer1  \nanswer2 = askYesNo2(\"Do you wish to save your game?\");\nprint \"Thanks for answering: \" , answer2 ",
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": "Please enter 'y' or 'n' :  Thanks for answering:  y\nDo 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# Scoping\n# Demonstrates scopes\n'''\ndef func():\n    var = -5; # local variable in func()\n    print \"In func() var is: \" , var \n\nvar = 5 # local variable in main()\nprint \"In main() var is: \" , var\nfunc();\nprint \"Back in main() var is: \" , var\nprint \"In main() in a new scope var is: \" , var\nprint \"Creating new var in new scope.\";\nvar = 10; # variable in new scope, hides other variable named var\nprint \"In main() in a new scope var is: \" , var \n\nprint \"At end of main() var created in new scope no longer exists.\";\nprint \"At end of main() var is: \" , var ",
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": "In main() var is:  5\nIn func() var is:  -5\nBack in main() var is:  5\nIn main() in a new scope var is:  5\nCreating new var in new scope.\nIn main() in a new scope var is:  10\nAt end of main() var created in new scope no longer exists.\nAt 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": "'''\nglobal access of variable\n'''\n\nglob = 10; # global variable\n\ndef access_global():\n    global glob\n    print \"In access_global() glob is: \" , glob\n\ndef hide_global():\n    glob = 0 # hide global variable glob\n    print \"In hide_global() glob is: \" , glob\n\ndef change_global():\n    glob = -10; # change global variable glob\n    print \"In change_global() glob is: \" , glob\n\n\nprint \"In main() glob is: \" , glob\naccess_global();\nhide_global();\nprint  \"In main() glob is: \" , glob\nchange_global();\nprint \"In main() glob is: \" , glob",
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": "In main() glob is:  10\nIn access_global() glob is:  10\nIn hide_global() glob is:  0\nIn main() glob is:  10\nIn change_global() glob is:  -10\nIn 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// Give Me a Number\n// Demonstrates default function arguments\n'''\ndef 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\nnumber = askNumber(5);\nprint \"Thanks for entering: \" , number\nnumber = askNumber(10, 5);\nprint \"Thanks for entering: \" , number",
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": "Please enter a number  ( 1  -  5 ): \nThanks for entering:  7\nPlease enter a number  ( 5  -  10 ): \nThanks 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// Triple\n'''\n\ndef triple(number):\n    return (number * 3);\n\ndef triple1(text):\n    return (text + text + text);\n\nprint \"Tripling 5: \" , triple(5) \nprint \"Tripling 'gamer': \" , triple1(\"gamer\");",
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": "Tripling 5:  15\nTripling '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// Taking Damage\n// Demonstrates function inlining\n'''\n\ndef radiation( health):\n    return (health / 2);\n\nhealth = 80;\nprint \"Your health is \" , health \nhealth = radiation(health);\nprint \"After radiation exposure your health is \" , health \nhealth = radiation(health);\nprint \"After radiation exposure your health is \" , health \nhealth = radiation(health);\nprint \"After radiation exposure your health is \" , health ",
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": "Your health is  80\nAfter radiation exposure your health is  40\nAfter radiation exposure your health is  20\nAfter 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// Mad-Lib\n// Creates a story based on user input\n'''\n\ndef askText(prompt):\n    print prompt ,\n    a = raw_input()\n    return a\n\ndef askNumber(prompt):\n    print prompt ,\n    return int(raw_input())\n\ndef 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\nprint \"Welcome to Mad Lib.\\n\";\nprint \"Answer the following questions to help create a new story.\";\nname = 'jay' #askText(\"Please enter a name: \");\nnoun = 'go' #askText(\"Please enter a plural noun: \");\nnumber = 10 #askNumber(\"Please enter a number: \");\nbodyPart = 'nothing' #askText(\"Please enter a body part: \");\nverb = 'verb' #askText(\"Please enter a verb: \");\ntellStory(name, noun, number, bodyPart, verb);\n\n",
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": "Welcome to Mad Lib.\n\nAnswer the following questions to help create a new story.\n\nHere's your story:\nThe 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.\nSurrounded by  10   go , a tear came to  jay 's  nothing .\nAfter all this time, the quest was finally over.  And then, the  go\npromptly devoured  jay . \nThe moral of the story? Be careful what you  verb  for.\n"
      }
     ],
     "prompt_number": 9
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": "",
     "language": "python",
     "metadata": {},
     "outputs": []
    }
   ],
   "metadata": {}
  }
 ]
}