{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Aside" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Formula for the area of a polygon whose vertices are listed in counter-clockwise direction $(x_0, y_0), (x_1, y_1), \\dotsc, (x_n, y_n)$ is\n", "\n", "\\begin{equation}\n", "\\frac{1}{2} (\\det\\begin{pmatrix}x_0 & x_1 \\\\ y_0 & y_1\\end{pmatrix} + \\dotsb + \\det\\begin{pmatrix}x_{n-1} & x_n \\\\ y_{n-1} & y_n\\end{pmatrix} + \\det \\begin{pmatrix}x_n & x_0 \\\\y_n & y_0\\end{pmatrix})\n", "\\end{equation}" ] }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Class heierachy" ] }, { "cell_type": "code", "collapsed": false, "input": [ "class NameScore :\n", " \"\"\"Stores names and scores\n", " Attributes : \n", " l : list of names and scores\n", " Methods :\n", " add(name, score)\n", " find_score(name)\n", " \"\"\"\n", " \n", " def __init__(self) :\n", " self.l = []\n", " \n", " def add(self, name, score) :\n", " self.l.append((name, score))\n", " \n", " def find_score(self, name) :\n", " lst = []\n", " for (n, s) in self.l :\n", " if n == name :\n", " lst.append(s)\n", " return lst\n", " \n", " def __str__(self) :\n", " return str(self.l)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "if __name__ == '__main__' :\n", " print \"Testing NameScore\"\n", " ns = NameScore()\n", " ns.add(\"Jack\", 10)\n", " ns.add(\"Jill\", 7)\n", " print ns\n", " print ns.find_score(\"Jack\")\n", " print ns.find_score(\"Ellie\")" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Testing NameScore\n", "[('Jack', 10), ('Jill', 7)]\n", "[10]\n", "[]\n" ] } ], "prompt_number": 2 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Class inheritence" ] }, { "cell_type": "code", "collapsed": false, "input": [ "class Exam(NameScore) :\n", " def average(self) :\n", " no_of_students = len(self.l)\n", " total = 0.0\n", " for nspair in self.l :\n", " total += nspair[1]\n", " return total / no_of_students" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "e = Exam()\n", "print e\n", "e.add(\"Moo\", 45)\n", "e.add(\"Blah\", 20)\n", "print e\n", "print e.average()\n", "print e.find_score('Moo')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[]\n", "[('Moo', 45), ('Blah', 20)]\n", "32.5\n", "[45]\n" ] } ], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "class Games(NameScore) :\n", " def maxscore(self) :\n", " m = 0\n", " for ns in self.l :\n", " m = max(m, ns[1])\n", " return m\n", " \n", " def lst_of_winners(self) :\n", " m = self.maxscore()\n", " lstw = []\n", " for ns in self.l :\n", " if ns[1] == m :\n", " lstw.append(ns[0])\n", " return lstw" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "g = Games()\n", "g.add(\"Alpha\", 50)\n", "g.add(\"Beta\", 60)\n", "g.add(\"Gamma\", 0)\n", "g.add(\"Delta\", 60)\n", "print g\n", "print g.lst_of_winners()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[('Alpha', 50), ('Beta', 60), ('Gamma', 0), ('Delta', 60)]\n", "['Beta', 'Delta']\n" ] } ], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "class TotalScore(Games) :\n", " def __call__(self) :\n", " total = 0.0\n", " for ns in self.l :\n", " total += ns[1]\n", " return total" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "t = TotalScore()\n", "t.add(\"a\", 2)\n", "t.add(\"b\", 4)\n", "print t()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "6.0\n" ] } ], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [ "class Test :\n", " \n", " def __init__(self) :\n", " self.t = TotalScore()\n", " \n", " def add(self, name, score) :\n", " self.t.add(name, score)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ "test = Test()\n", "test.add('a', 23)\n", "test.add('b', 43)\n", "print test.t\n", "print test.t.l" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[('a', 23), ('b', 43)]\n", "[('a', 23), ('b', 43)]\n" ] } ], "prompt_number": 11 } ], "metadata": {} } ] }