{ "metadata": { "name": "", "signature": "sha256:d3ec56f0fb1e7a95eb53ee17745721c0f8fa66da6256b85d8eb402b33b736e2d" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Hour 20 : Understanding Unions" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 20.1, Page No 335" ] }, { "cell_type": "code", "collapsed": false, "input": [ "class menu:\n", " def __init__(self,name,price):\n", " self.name = name\n", " self.price = price\n", "if __name__ == '__main__':\n", " print \"The content assigned to the union separately:\\n\"\n", " dish = menu(\"Sweet and Sour Chicken\",9.95)\n", " print \"Dish Name: \",dish.name\n", " print \"Dish Price: \",dish.price" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "The content assigned to the union separately:\n", "\n", "Dish Name: Sweet and Sour Chicken\n", "Dish Price: 9.95\n" ] } ], "prompt_number": 2 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 20.2, Page No 338" ] }, { "cell_type": "code", "collapsed": false, "input": [ "class employee:\n", " def __init__(self,start_year,dpt_code,id_number):\n", " self.start_year = start_year\n", " self.dpt_code = dpt_code\n", " self.id_number = id_number\n", "if __name__ == '__main__':\n", " info = employee(1997,8,1234)\n", " print \"Start Year: \",info.start_year,\"\\n\"\n", " print \"Dpt. Code: \",info.dpt_code,\"\\n\"\n", " print \"ID Number: \",info.id_number,\"\\n\"" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Start Year: 1997 \n", "\n", "Dpt. Code: 8 \n", "\n", "ID Number: 1234 \n", "\n" ] } ], "prompt_number": 4 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 20.3, page no. 340" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import sys\n", "class u:\n", " def __init__(self,x,y):\n", " self.x = x\n", " self.y = y\n", "class s:\n", " def __init__(self,x,y):\n", " self.x = x\n", " self.y = y\n", "if __name__ == '__main__':\n", " a_union = u(10,20)\n", " a_struct = s(10,20)\n", " #print \"The size of double: \",sys.getsizeof(double),\"byte\\n\" Double is not in python\n", " print \"The size of int: \",sys.getsizeof(int),\"byte\\n\"\n", " print \"The size of union: \",sys.getsizeof(a_union),\"byte\\n\"\n", " print \"The size of struct: \",sys.getsizeof(a_struct),\"byte\\n\"" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "The size of int: 872 byte\n", "\n", "The size of union: 72 byte\n", "\n", "The size of struct: 72 byte\n", "\n" ] } ], "prompt_number": 2 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 20.4, Page No 341" ] }, { "cell_type": "code", "collapsed": false, "input": [ "class u:\n", " ch = [0, 0]\n", " num = 0\n", "\n", "def UnionInitialize(val):\n", " val.ch[0] = 'H'\n", " val.ch[1] = 'I'\n", " return val.ch\n", "if __name__ == '__main__':\n", " val = u()\n", " x = UnionInitialize(val)\n", " print \"The two characters held by the union:\\n\"\n", " print x[0],\"\\n\"\n", " print x[1],\"\\n\"" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "The two characters held by the union:\n", "\n", "H \n", "\n", "I \n", "\n" ] } ], "prompt_number": 11 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 20.5, Page No 344" ] }, { "cell_type": "code", "collapsed": false, "input": [ "class survey:\n", " def __init__(self,name,c_d_p,age,hour_per_week):\n", " self.name = name\n", " self.c_d_p = c_d_p\n", " self.age = age\n", " self.hour_per_week = hour_per_week\n", " class provider:\n", " def __init__(self,cable_company,dish_company):\n", " self.cable_company = cable_company\n", " self.dish_company = dish_company\n", "def DataEnter(ptr):\n", " is_yes = raw_input(\"Are you using cable at home? (Yes or No): \")\n", " if is_yes == 'Y' or is_yes == 'y':\n", " ptr.provider.cable_company = raw_input(\"Enter the cable company name: \")\n", " ptr.c_d_p = 'c'\n", " else:\n", " is_yes = raw_input(\"Are you using a satellite dish? (Yes or No): \")\n", " if is_yes == 'Y' or is_yes == 'y':\n", " ptr.provider.dish_company = raw_input(\"Enter the satellite dish company name: \")\n", " ptr.c_d_p = 'd'\n", " else:\n", " ptr.c_d_p = 'p'\n", " ptr.name = raw_input(\"Please enter your name: \")\n", " ptr.age = int(raw_input(\"Your age : \"))\n", " ptr.hour_per_week = int(raw_input(\"How many hours you spend on watching TV per week: \"))\n", "def DataDisplay(ptr):\n", " print \"\\nHere\u2019s what you\u2019ve entered:\\n\"\n", " print \"Name: \",ptr.name,\"\\n\"\n", " print \"Age: \",ptr.age,\"\\n\"\n", " print \"Hour per week: \",ptr.hour_per_week,\"\\n\"\n", " if ptr.c_d_p == 'c':\n", " print \"Your cable company is: \",ptr.provider.cable_company,\"\\n\"\n", " elif ptr.c_d_p == 'd':\n", " print \"Your satellite dish company is: \",ptr.provider.dish_company,\"\\n\"\n", " else:\n", " print \"You don\u2019t have cable or a satellite dish.\\n\"\n", " print \"\\nThanks and Bye!\\n\"\n", "if __name__ == '__main__':\n", " tv = survey(\"\",\"\",\"\",\"\")\n", " DataEnter(tv)\n", " DataDisplay(tv)" ], "language": "python", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "Are you using cable at home? (Yes or No): N\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "Are you using a satellite dish? (Yes or No): Y\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "Enter the satellite dish company name: ABCD Company\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "Please enter your name: Tony Zhang\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "Your age : 30\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "How many hours you spend on watching TV per week: 8\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ " \n", "Here\u2019s what you\u2019ve entered:\n", "\n", "Name: Tony Zhang \n", "\n", "Age: 30 \n", "\n", "Hour per week: 8 \n", "\n", "Your satellite dish company is: ABCD Company \n", "\n", "\n", "Thanks and Bye!\n", "\n" ] } ], "prompt_number": 2 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 20.6, Page No 348" ] }, { "cell_type": "code", "collapsed": false, "input": [ "class bit_field:\n", " def __init__(self,cable,dish):\n", " self.cable = cable\n", " self.dish = dish\n", " cable = 1\n", " dish = 1\n", "class survey:\n", " def __init__(self,name,age,hour_per_week):\n", " self.name = name\n", " self.age = age\n", " self.hour_per_week = hour_per_week\n", " c_d = bit_field(\"\",\"\")\n", " class provider:\n", " def __init__(self,cable_company,dish_company):\n", " self.cable_company = cable_company\n", " self.dish_company = dish_company\n", "def DataEnter(ptr):\n", " is_yes = raw_input(\"Are you using cable at home? (Yes or No): \")\n", " if is_yes == 'Y' or is_yes == 'y':\n", " ptr.provider.cable_company = raw_input(\"Enter the cable company name: \")\n", " ptr.c_d.cable = 1\n", " ptr.c_d.dish = 0\n", " else:\n", " is_yes = raw_input(\"Are you using a satellite dish? (Yes or No): \")\n", " if is_yes == 'Y' or is_yes == 'y':\n", " ptr.provider.dish_company = raw_input(\"Enter the satellite dish company name: \")\n", " ptr.c_d.cable = 0\n", " ptr.c_d.dish = 1\n", " else:\n", " ptr.c_d.cable = 0\n", " ptr.c_d.dish = 0\n", " ptr.name = raw_input(\"Please enter your name: \")\n", " ptr.age = int(raw_input(\"Your age : \"))\n", " ptr.hour_per_week = int(raw_input(\"How many hours you spend on watching TV per week: \"))\n", "def DataDisplay(ptr):\n", " print \"\\nHere\u2019s what you\u2019ve entered:\\n\"\n", " print \"Name: \",ptr.name,\"\\n\"\n", " print \"Age: \",ptr.age,\"\\n\"\n", " print \"Hour per week: \",ptr.hour_per_week,\"\\n\"\n", " if ptr.c_d.cable and not ptr.c_d.dish:\n", " print \"Your cable company is: \",ptr.provider.cable_company,\"\\n\"\n", " elif not ptr.c_d.cable and ptr.c_d.dish:\n", " print \"Your satellite dish company is: \",ptr.provider.dish_company,\"\\n\"\n", " else:\n", " print \"You don\u2019t have cable or a satellite dish.\\n\"\n", " print \"\\nThanks and Bye!\\n\"\n", "if __name__ == '__main__':\n", " tv = survey(\"\",\"\",\"\")\n", " DataEnter(tv)\n", " DataDisplay(tv)" ], "language": "python", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "Are you using cable at home? (Yes or No): N\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "Are you using a satellite dish? (Yes or No): Y\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "Enter the satellite dish company name: ABCD Company\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "Please enter your name: Tony Zhang\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "Your age : 30\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "How many hours you spend on watching TV per week: 8\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Here\u2019s what you\u2019ve entered:\n", "\n", "Name: Tony Zhang \n", "\n", "Age: 30 \n", "\n", "Hour per week: 8 \n", "\n", "Your satellite dish company is: ABCD Company \n", "\n", "\n", "Thanks and Bye!\n", "\n" ] } ], "prompt_number": 6 } ], "metadata": {} } ] }