X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=Untitled0.ipynb;h=ff4a58e25083aa571f94a98ac85eceb7d2302206;hb=HEAD;hp=cb95e56865c58d3d4e9b29e01b1060b73d9700ec;hpb=69cf6597f6472916c248a5b1e0bcc0cf5a67ec68;p=cas-master-teacher-training.git diff --git a/Untitled0.ipynb b/Untitled0.ipynb index cb95e56..ff4a58e 100644 --- a/Untitled0.ipynb +++ b/Untitled0.ipynb @@ -1,83 +1,13 @@ { "metadata": { "name": "", - "signature": "sha256:78e6a962b2bb32da5900535436f656d194701924a6f32591d57f2b5973eb315c" + "signature": "sha256:796179cdb4347de4d86a7db09f3e024ef710983a025f30cfe2a424e9a755bc6b" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import string\n", - "string.ascii_lowercase" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 1, - "text": [ - "'abcdefghijklmnopqrstuvwxyz'" - ] - } - ], - "prompt_number": 1 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "string.ascii_lowercase[:-2]" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 9, - "text": [ - "'abcdefghijklmnopqrstuvwx'" - ] - } - ], - "prompt_number": 9 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "for i in range(10):\n", - " print(i, string.ascii_lowercase[i+2].upper())" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "0 C\n", - "1 D\n", - "2 E\n", - "3 F\n", - "4 G\n", - "5 H\n", - "6 I\n", - "7 J\n", - "8 K\n", - "9 L\n" - ] - } - ], - "prompt_number": 14 - }, { "cell_type": "code", "collapsed": false, @@ -102,40 +32,6 @@ ], "prompt_number": 1 }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "members = ['Freddie', 'Brian', 'Roger', 'John']\n", - "members = ['Paul'] + members" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 20 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "members[99]" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "ename": "IndexError", - "evalue": "list index out of range", - "output_type": "pyerr", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mIndexError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mmembers\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m99\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[1;31mIndexError\u001b[0m: list index out of range" - ] - } - ], - "prompt_number": 22 - }, { "cell_type": "code", "collapsed": false, @@ -148,13 +44,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 3, + "prompt_number": 2, "text": [ "['Brian']" ] } ], - "prompt_number": 3 + "prompt_number": 2 }, { "cell_type": "code", @@ -170,13 +66,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 8, + "prompt_number": 3, "text": [ "True" ] } ], - "prompt_number": 8 + "prompt_number": 3 }, { "cell_type": "code", @@ -191,13 +87,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 6, + "prompt_number": 4, "text": [ "True" ] } ], - "prompt_number": 6 + "prompt_number": 4 }, { "cell_type": "code", @@ -211,13 +107,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 9, + "prompt_number": 5, "text": [ - "True" + "False" ] } ], - "prompt_number": 9 + "prompt_number": 5 }, { "cell_type": "code", @@ -234,36 +130,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 18, + "prompt_number": 6, "text": [ "[(3, 4, 5), (5, 12, 13), (6, 8, 10), (8, 15, 17), (9, 12, 15), (12, 16, 20)]" ] } ], - "prompt_number": 18 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "l2 = []\n", - "for i in (2,4,8,22):\n", - " l2 += [i]\n", - "l2" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 25, - "text": [ - "[2, 4, 8, 22]" - ] - } - ], - "prompt_number": 25 + "prompt_number": 6 }, { "cell_type": "code", @@ -294,17 +167,14 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 26 + "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ - "gt= {}\n", - "for x in range(COLUMNS):\n", - " for y in range(ROWS):\n", - " gt[(x,y)] = grid_nums[x + y * COLUMNS]\n", - "gt" + "grid_nums = [int(n) for n in GRID_STRING.split()]\n", + "grid_nums" ], "language": "python", "metadata": {}, @@ -312,1496 +182,418 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 41, + "prompt_number": 8, "text": [ - "{(7, 3): 42,\n", - " (6, 9): 76,\n", - " (17, 11): 29,\n", - " (19, 19): 48,\n", - " (16, 6): 18,\n", - " (7, 12): 7,\n", - " (19, 4): 80,\n", - " (18, 4): 13,\n", - " (18, 19): 67,\n", - " (8, 5): 44,\n", - " (10, 8): 78,\n", - " (9, 0): 75,\n", - " (11, 5): 53,\n", - " (10, 7): 94,\n", - " (14, 18): 81,\n", - " (12, 6): 59,\n", - " (10, 18): 49,\n", - " (0, 17): 20,\n", - " (15, 11): 24,\n", - " (14, 1): 69,\n", - " (13, 7): 8,\n", - " (12, 17): 82,\n", - " (0, 4): 22,\n", - " (15, 4): 28,\n", - " (1, 1): 49,\n", - " (4, 10): 22,\n", - " (3, 2): 73,\n", - " (2, 6): 81,\n", - " (5, 11): 35,\n", - " (4, 5): 99,\n", - " (6, 0): 0,\n", - " (4, 16): 38,\n", - " (7, 5): 2,\n", - " (19, 13): 40,\n", - " (7, 0): 40,\n", - " (16, 19): 89,\n", - " (17, 7): 49,\n", - " (18, 10): 56,\n", - " (17, 18): 57,\n", - " (16, 8): 34,\n", - " (8, 12): 5,\n", - " (9, 9): 45,\n", - " (10, 14): 57,\n", - " (8, 18): 74,\n", - " (11, 15): 67,\n", - " (9, 19): 92,\n", - " (15, 16): 32,\n", - " (14, 8): 14,\n", - " (13, 0): 78,\n", - " (12, 8): 96,\n", - " (11, 16): 18,\n", - " (15, 13): 77,\n", - " (13, 13): 52,\n", - " (2, 18): 35,\n", - " (0, 14): 4,\n", - " (3, 11): 42,\n", - " (2, 1): 99,\n", - " (1, 15): 36,\n", - " (4, 12): 35,\n", - " (2, 12): 0,\n", - " (5, 1): 81,\n", - " (3, 17): 41,\n", - " (16, 7): 66,\n", - " (6, 14): 99,\n", - " (19, 18): 54,\n", - " (17, 6): 38,\n", - " (7, 15): 72,\n", - " (19, 7): 21,\n", - " (18, 5): 12,\n", - " (7, 1): 57,\n", - " (18, 16): 76,\n", - " (8, 6): 26,\n", - " (10, 9): 35,\n", - " (9, 7): 63,\n", - " (11, 4): 54,\n", - " (10, 4): 36,\n", - " (14, 19): 52,\n", - " (12, 7): 63,\n", - " (11, 9): 14,\n", - " (10, 19): 33,\n", - " (0, 18): 20,\n", - " (15, 10): 14,\n", - " (14, 6): 70,\n", - " (13, 6): 54,\n", - " (12, 18): 48,\n", - " (1, 19): 70,\n", - " (0, 5): 24,\n", - " (15, 7): 91,\n", - " (13, 19): 43,\n", - " (1, 0): 2,\n", - " (0, 8): 24,\n", - " (4, 11): 96,\n", - " (3, 5): 60,\n", - " (2, 7): 20,\n", - " (5, 10): 75,\n", - " (4, 6): 64,\n", - " (6, 1): 18,\n", - " (5, 7): 62,\n", - " (4, 17): 72,\n", - " (16, 1): 4,\n", - " (19, 12): 58,\n", - " (17, 12): 54,\n", - " (7, 17): 88,\n", - " (19, 1): 0,\n", - " (18, 11): 85,\n", - " (7, 6): 10,\n", - " (8, 13): 28,\n", - " (9, 8): 17,\n", - " (8, 0): 0,\n", - " (10, 15): 33,\n", - " (8, 19): 16,\n", - " (11, 14): 32,\n", - " (9, 18): 31,\n", - " (15, 19): 1,\n", - " (14, 9): 33,\n", - " (12, 9): 0,\n", - " (11, 19): 48,\n", - " (15, 12): 58,\n", - " (13, 12): 60,\n", - " (2, 19): 54,\n", - " (0, 15): 88,\n", - " (3, 10): 28,\n", - " (1, 14): 52,\n", - " (4, 13): 5,\n", - " (2, 13): 81,\n", - " (5, 0): 15,\n", - " (3, 16): 73,\n", - " (6, 15): 20,\n", - " (16, 9): 34,\n", - " (16, 10): 9,\n", - " (7, 14): 16,\n", - " (6, 18): 90,\n", - " (19, 6): 70,\n", - " (18, 2): 36,\n", - " (17, 10): 53,\n", - " (18, 17): 36,\n", - " (16, 2): 49,\n", - " (8, 7): 95,\n", - " (9, 6): 38,\n", - " (11, 7): 39,\n", - " (10, 5): 33,\n", - " (14, 16): 29,\n", - " (12, 0): 7,\n", - " (11, 8): 78,\n", - " (10, 16): 72,\n", - " (0, 19): 1,\n", - " (14, 7): 40,\n", - " (13, 5): 36,\n", - " (12, 19): 61,\n", - " (1, 18): 73,\n", - " (0, 6): 32,\n", - " (15, 6): 66,\n", - " (13, 18): 86,\n", - " (1, 7): 26,\n", - " (0, 9): 21,\n", - " (3, 4): 71,\n", - " (2, 4): 16,\n", - " (5, 9): 0,\n", - " (4, 7): 2,\n", - " (6, 6): 67,\n", - " (5, 6): 23,\n", - " (4, 18): 78,\n", - " (7, 7): 20,\n", - " (5, 19): 51,\n", - " (19, 15): 69,\n", - " (17, 3): 2,\n", - " (7, 16): 11,\n", - " (19, 0): 8,\n", - " (18, 8): 63,\n", - " (17, 16): 62,\n", - " (7, 4): 89,\n", - " (9, 15): 46,\n", - " (8, 1): 60,\n", - " (10, 12): 44,\n", - " (11, 1): 40,\n", - " (9, 17): 62,\n", - " (15, 18): 16,\n", - " (14, 14): 26,\n", - " (12, 10): 4,\n", - " (11, 18): 71,\n", - " (15, 15): 32,\n", - " (13, 11): 17,\n", - " (2, 16): 16,\n", - " (0, 0): 8,\n", - " (8, 14): 7,\n", - " (1, 13): 80,\n", - " (4, 14): 97,\n", - " (2, 10): 53,\n", - " (5, 15): 62,\n", - " (3, 19): 71,\n", - " (6, 12): 89,\n", - " (17, 4): 33,\n", - " (16, 12): 51,\n", - " (6, 19): 54,\n", - " (19, 9): 95,\n", - " (18, 3): 36,\n", - " (17, 9): 31,\n", - " (18, 14): 98,\n", - " (17, 17): 4,\n", - " (16, 0): 50,\n", - " (16, 15): 63,\n", - " (9, 5): 75,\n", - " (11, 6): 67,\n", - " (10, 2): 40,\n", - " (14, 17): 59,\n", - " (12, 1): 98,\n", - " (11, 11): 24,\n", - " (10, 17): 99,\n", - " (14, 4): 40,\n", - " (13, 4): 40,\n", - " (12, 12): 44,\n", - " (1, 17): 69,\n", - " (0, 7): 67,\n", - " (15, 1): 48,\n", - " (13, 17): 67,\n", - " (1, 6): 98,\n", - " (0, 10): 78,\n", - " (17, 13): 89,\n", - " (3, 7): 68,\n", - " (2, 5): 32,\n", - " (1, 11): 39,\n", - " (5, 8): 73,\n", - " (4, 0): 38,\n", - " (6, 7): 12,\n", - " (5, 5): 3,\n", - " (4, 19): 83,\n", - " (16, 3): 37,\n", - " (6, 10): 31,\n", - " (5, 18): 31,\n", - " (19, 14): 66,\n", - " (17, 2): 13,\n", - " (7, 19): 69,\n", - " (19, 3): 91,\n", - " (18, 9): 33,\n", - " (8, 15): 3,\n", - " (9, 14): 97,\n", - " (8, 2): 93,\n", - " (10, 13): 92,\n", - " (9, 3): 24,\n", - " (11, 0): 5,\n", - " (9, 16): 94,\n", - " (14, 15): 12,\n", - " (12, 11): 0,\n", - " (15, 14): 79,\n", - " (14, 2): 30,\n", - " (13, 10): 62,\n", - " (2, 17): 36,\n", - " (0, 1): 49,\n", - " (3, 12): 48,\n", - " (1, 12): 56,\n", - " (4, 15): 57,\n", - " (3, 1): 40,\n", - " (2, 11): 5,\n", - " (5, 14): 35,\n", - " (3, 18): 29,\n", - " (6, 13): 47,\n", - " (7, 8): 26,\n", - " (6, 16): 39,\n", - " (19, 8): 72,\n", - " (18, 0): 91,\n", - " (17, 8): 89,\n", - " (16, 16): 40,\n", - " (18, 15): 53,\n", - " (8, 9): 20,\n", - " (9, 4): 92,\n", - " (7, 11): 47,\n", - " (10, 3): 68,\n", - " (12, 2): 53,\n", - " (11, 10): 80,\n", - " (14, 5): 84,\n", - " (13, 3): 32,\n", - " (12, 13): 86,\n", - " (1, 16): 42,\n", - " (3, 13): 68,\n", - " (15, 0): 12,\n", - " (13, 16): 46,\n", - " (1, 5): 47,\n", - " (0, 11): 16,\n", - " (3, 6): 28,\n", - " (2, 2): 31,\n", - " (1, 10): 17,\n", - " (4, 1): 17,\n", - " (6, 4): 63,\n", - " (5, 4): 67,\n", - " (16, 4): 66,\n", - " (6, 11): 31,\n", - " (5, 17): 30,\n", - " (19, 17): 16,\n", - " (17, 1): 56,\n", - " (7, 18): 1,\n", - " (19, 2): 65,\n", - " (18, 6): 64,\n", - " (9, 13): 73,\n", - " (8, 3): 69,\n", - " (10, 10): 3,\n", - " (9, 2): 71,\n", - " (16, 13): 4,\n", - " (11, 3): 56,\n", - " (14, 12): 21,\n", - " (12, 4): 22,\n", - " (15, 9): 97,\n", - " (14, 3): 56,\n", - " (13, 9): 61,\n", - " (0, 2): 81,\n", - " (3, 15): 87,\n", - " (1, 3): 70,\n", - " (4, 8): 66,\n", - " (3, 0): 97,\n", - " (2, 8): 58,\n", - " (5, 13): 94,\n", - " (6, 2): 14,\n", - " (16, 14): 33,\n", - " (6, 17): 23,\n", - " (19, 11): 57,\n", - " (18, 1): 62,\n", - " (17, 15): 93,\n", - " (16, 17): 74,\n", - " (18, 12): 17,\n", - " (8, 10): 15,\n", - " (9, 11): 58,\n", - " (10, 0): 4,\n", - " (8, 16): 24,\n", - " (12, 3): 1,\n", - " (11, 13): 13,\n", - " (14, 10): 16,\n", - " (13, 2): 88,\n", - " (12, 14): 16,\n", - " (15, 3): 71,\n", - " (13, 15): 55,\n", - " (1, 4): 31,\n", - " (0, 12): 86,\n", - " (3, 9): 9,\n", - " (2, 3): 95,\n", - " (1, 9): 36,\n", - " (4, 2): 55,\n", - " (2, 14): 8,\n", - " (6, 5): 45,\n", - " (5, 3): 60,\n", - " (16, 5): 35,\n", - " (6, 8): 99,\n", - " (5, 16): 25,\n", - " (19, 16): 36,\n", - " (17, 0): 77,\n", - " (7, 13): 69,\n", - " (19, 5): 50,\n", - " (18, 7): 94,\n", - " (7, 9): 44,\n", - " (18, 18): 5,\n", - " (9, 12): 44,\n", - " (8, 4): 41,\n", - " (10, 11): 88,\n", - " (9, 1): 87,\n", - " (17, 5): 17,\n", - " (11, 2): 67,\n", - " (10, 6): 40,\n", - " (16, 11): 36,\n", - " (14, 13): 17,\n", - " (12, 5): 78,\n", - " (0, 16): 4,\n", - " (15, 8): 88,\n", - " (14, 0): 52,\n", - " (13, 8): 83,\n", - " (12, 16): 8,\n", - " (0, 3): 52,\n", - " (15, 5): 20,\n", - " (3, 14): 83,\n", - " (1, 2): 49,\n", - " (4, 9): 75,\n", - " (3, 3): 23,\n", - " (2, 9): 23,\n", - " (5, 12): 71,\n", - " (4, 4): 51,\n", - " (6, 3): 11,\n", - " (8, 8): 97,\n", - " (7, 2): 29,\n", - " (7, 10): 67,\n", - " (19, 10): 92,\n", - " (17, 14): 27,\n", - " (16, 18): 23,\n", - " (18, 13): 55,\n", - " (17, 19): 19,\n", - " (8, 11): 55,\n", - " (9, 10): 94,\n", - " (10, 1): 17,\n", - " (8, 17): 34,\n", - " (11, 12): 37,\n", - " (15, 17): 85,\n", - " (14, 11): 54,\n", - " (13, 1): 43,\n", - " (12, 15): 46,\n", - " (11, 17): 69,\n", - " (15, 2): 3,\n", - " (13, 14): 26,\n", - " (0, 13): 19,\n", - " (3, 8): 5,\n", - " (2, 0): 22,\n", - " (1, 8): 55,\n", - " (4, 3): 4,\n", - " (2, 15): 68,\n", - " (5, 2): 79}" - ] - } - ], - "prompt_number": 41 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "gt_again = {(x,y): grid_nums[x + y * COLUMNS] \n", - " for x in range(ROWS) \n", - " for y in range(COLUMNS)}\n", - "gt_again[(3,2)]" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 43, - "text": [ - "73" - ] - } - ], - "prompt_number": 43 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "grid_nums = [int(n) for n in GRID_STRING.split()]\n", - "grid_nums" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 28, - "text": [ - "[8,\n", - " 2,\n", - " 22,\n", - " 97,\n", - " 38,\n", - " 15,\n", - " 0,\n", - " 40,\n", - " 0,\n", - " 75,\n", - " 4,\n", - " 5,\n", - " 7,\n", - " 78,\n", - " 52,\n", - " 12,\n", - " 50,\n", - " 77,\n", - " 91,\n", - " 8,\n", - " 49,\n", - " 49,\n", - " 99,\n", - " 40,\n", - " 17,\n", - " 81,\n", - " 18,\n", - " 57,\n", - " 60,\n", - " 87,\n", - " 17,\n", - " 40,\n", - " 98,\n", - " 43,\n", - " 69,\n", - " 48,\n", - " 4,\n", - " 56,\n", - " 62,\n", - " 0,\n", - " 81,\n", - " 49,\n", - " 31,\n", - " 73,\n", - " 55,\n", - " 79,\n", - " 14,\n", - " 29,\n", - " 93,\n", - " 71,\n", - " 40,\n", - " 67,\n", - " 53,\n", - " 88,\n", - " 30,\n", - " 3,\n", - " 49,\n", - " 13,\n", - " 36,\n", - " 65,\n", - " 52,\n", - " 70,\n", - " 95,\n", - " 23,\n", - " 4,\n", - " 60,\n", - " 11,\n", - " 42,\n", - " 69,\n", - " 24,\n", - " 68,\n", - " 56,\n", - " 1,\n", - " 32,\n", - " 56,\n", - " 71,\n", - " 37,\n", - " 2,\n", - " 36,\n", - " 91,\n", - " 22,\n", - " 31,\n", - " 16,\n", - " 71,\n", - " 51,\n", - " 67,\n", - " 63,\n", - " 89,\n", - " 41,\n", - " 92,\n", - " 36,\n", - " 54,\n", - " 22,\n", - " 40,\n", - " 40,\n", - " 28,\n", - " 66,\n", - " 33,\n", - " 13,\n", - " 80,\n", - " 24,\n", - " 47,\n", - " 32,\n", - " 60,\n", - " 99,\n", - " 3,\n", - " 45,\n", - " 2,\n", - " 44,\n", - " 75,\n", - " 33,\n", - " 53,\n", - " 78,\n", - " 36,\n", - " 84,\n", - " 20,\n", - " 35,\n", - " 17,\n", - " 12,\n", - " 50,\n", - " 32,\n", - " 98,\n", - " 81,\n", - " 28,\n", - " 64,\n", - " 23,\n", - " 67,\n", - " 10,\n", - " 26,\n", - " 38,\n", - " 40,\n", - " 67,\n", - " 59,\n", - " 54,\n", - " 70,\n", - " 66,\n", - " 18,\n", - " 38,\n", - " 64,\n", - " 70,\n", - " 67,\n", - " 26,\n", - " 20,\n", - " 68,\n", - " 2,\n", - " 62,\n", - " 12,\n", - " 20,\n", - " 95,\n", - " 63,\n", - " 94,\n", - " 39,\n", - " 63,\n", - " 8,\n", - " 40,\n", - " 91,\n", - " 66,\n", - " 49,\n", - " 94,\n", - " 21,\n", - " 24,\n", - " 55,\n", - " 58,\n", - " 5,\n", - " 66,\n", - " 73,\n", - " 99,\n", - " 26,\n", - " 97,\n", - " 17,\n", - " 78,\n", - " 78,\n", - " 96,\n", - " 83,\n", - " 14,\n", - " 88,\n", - " 34,\n", - " 89,\n", - " 63,\n", - " 72,\n", - " 21,\n", - " 36,\n", - " 23,\n", - " 9,\n", - " 75,\n", - " 0,\n", - " 76,\n", - " 44,\n", - " 20,\n", - " 45,\n", - " 35,\n", - " 14,\n", - " 0,\n", - " 61,\n", - " 33,\n", - " 97,\n", - " 34,\n", - " 31,\n", - " 33,\n", - " 95,\n", - " 78,\n", - " 17,\n", - " 53,\n", - " 28,\n", - " 22,\n", - " 75,\n", - " 31,\n", - " 67,\n", - " 15,\n", - " 94,\n", - " 3,\n", - " 80,\n", - " 4,\n", - " 62,\n", - " 16,\n", - " 14,\n", - " 9,\n", - " 53,\n", - " 56,\n", - " 92,\n", - " 16,\n", - " 39,\n", - " 5,\n", - " 42,\n", - " 96,\n", - " 35,\n", - " 31,\n", - " 47,\n", - " 55,\n", - " 58,\n", - " 88,\n", - " 24,\n", - " 0,\n", - " 17,\n", - " 54,\n", - " 24,\n", - " 36,\n", - " 29,\n", - " 85,\n", - " 57,\n", - " 86,\n", - " 56,\n", - " 0,\n", - " 48,\n", - " 35,\n", - " 71,\n", - " 89,\n", - " 7,\n", - " 5,\n", - " 44,\n", - " 44,\n", - " 37,\n", - " 44,\n", - " 60,\n", - " 21,\n", - " 58,\n", - " 51,\n", - " 54,\n", - " 17,\n", - " 58,\n", - " 19,\n", - " 80,\n", - " 81,\n", - " 68,\n", - " 5,\n", - " 94,\n", - " 47,\n", - " 69,\n", - " 28,\n", - " 73,\n", - " 92,\n", - " 13,\n", - " 86,\n", - " 52,\n", - " 17,\n", - " 77,\n", - " 4,\n", - " 89,\n", - " 55,\n", - " 40,\n", - " 4,\n", - " 52,\n", - " 8,\n", - " 83,\n", - " 97,\n", - " 35,\n", - " 99,\n", - " 16,\n", - " 7,\n", - " 97,\n", - " 57,\n", - " 32,\n", - " 16,\n", - " 26,\n", - " 26,\n", - " 79,\n", - " 33,\n", - " 27,\n", - " 98,\n", - " 66,\n", - " 88,\n", - " 36,\n", - " 68,\n", - " 87,\n", - " 57,\n", - " 62,\n", - " 20,\n", - " 72,\n", - " 3,\n", - " 46,\n", - " 33,\n", - " 67,\n", - " 46,\n", - " 55,\n", - " 12,\n", - " 32,\n", - " 63,\n", - " 93,\n", - " 53,\n", - " 69,\n", - " 4,\n", - " 42,\n", - " 16,\n", - " 73,\n", - " 38,\n", - " 25,\n", - " 39,\n", - " 11,\n", - " 24,\n", - " 94,\n", - " 72,\n", - " 18,\n", - " 8,\n", - " 46,\n", - " 29,\n", - " 32,\n", - " 40,\n", - " 62,\n", - " 76,\n", - " 36,\n", - " 20,\n", - " 69,\n", - " 36,\n", - " 41,\n", - " 72,\n", - " 30,\n", - " 23,\n", - " 88,\n", - " 34,\n", - " 62,\n", - " 99,\n", - " 69,\n", - " 82,\n", - " 67,\n", - " 59,\n", - " 85,\n", - " 74,\n", - " 4,\n", - " 36,\n", - " 16,\n", - " 20,\n", - " 73,\n", - " 35,\n", - " 29,\n", - " 78,\n", - " 31,\n", - " 90,\n", - " 1,\n", - " 74,\n", - " 31,\n", - " 49,\n", - " 71,\n", - " 48,\n", - " 86,\n", - " 81,\n", - " 16,\n", - " 23,\n", - " 57,\n", - " 5,\n", - " 54,\n", - " 1,\n", - " 70,\n", - " 54,\n", - " 71,\n", - " 83,\n", - " 51,\n", - " 54,\n", - " 69,\n", - " 16,\n", - " 92,\n", - " 33,\n", - " 48,\n", - " 61,\n", - " 43,\n", - " 52,\n", - " 1,\n", - " 89,\n", - " 19,\n", - " 67,\n", - " 48]" - ] - } - ], - "prompt_number": 28 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "g1[2][4]" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 32, - "text": [ - "55" - ] - } - ], - "prompt_number": 32 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "g1 = []\n", - "for rowstart in range(0, ROWS * COLUMNS, COLUMNS):\n", - " g1.append(grid_nums[rowstart:rowstart+COLUMNS])\n", - "g1" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 29, - "text": [ - "[[8, 2, 22, 97, 38, 15, 0, 40, 0, 75, 4, 5, 7, 78, 52, 12, 50, 77, 91, 8],\n", - " [49,\n", - " 49,\n", - " 99,\n", - " 40,\n", - " 17,\n", - " 81,\n", - " 18,\n", - " 57,\n", - " 60,\n", - " 87,\n", - " 17,\n", - " 40,\n", - " 98,\n", - " 43,\n", - " 69,\n", - " 48,\n", - " 4,\n", - " 56,\n", - " 62,\n", - " 0],\n", - " [81,\n", - " 49,\n", - " 31,\n", - " 73,\n", - " 55,\n", - " 79,\n", - " 14,\n", - " 29,\n", - " 93,\n", - " 71,\n", - " 40,\n", - " 67,\n", - " 53,\n", - " 88,\n", - " 30,\n", - " 3,\n", - " 49,\n", - " 13,\n", - " 36,\n", - " 65],\n", - " [52, 70, 95, 23, 4, 60, 11, 42, 69, 24, 68, 56, 1, 32, 56, 71, 37, 2, 36, 91],\n", - " [22,\n", - " 31,\n", - " 16,\n", - " 71,\n", - " 51,\n", - " 67,\n", - " 63,\n", - " 89,\n", - " 41,\n", - " 92,\n", - " 36,\n", - " 54,\n", - " 22,\n", - " 40,\n", - " 40,\n", - " 28,\n", - " 66,\n", - " 33,\n", - " 13,\n", - " 80],\n", - " [24,\n", - " 47,\n", - " 32,\n", - " 60,\n", - " 99,\n", - " 3,\n", - " 45,\n", - " 2,\n", - " 44,\n", - " 75,\n", - " 33,\n", - " 53,\n", - " 78,\n", - " 36,\n", - " 84,\n", - " 20,\n", - " 35,\n", - " 17,\n", - " 12,\n", - " 50],\n", - " [32,\n", - " 98,\n", - " 81,\n", - " 28,\n", - " 64,\n", - " 23,\n", - " 67,\n", - " 10,\n", - " 26,\n", - " 38,\n", - " 40,\n", - " 67,\n", - " 59,\n", - " 54,\n", - " 70,\n", - " 66,\n", - " 18,\n", - " 38,\n", - " 64,\n", - " 70],\n", - " [67,\n", - " 26,\n", - " 20,\n", - " 68,\n", - " 2,\n", - " 62,\n", - " 12,\n", - " 20,\n", - " 95,\n", - " 63,\n", - " 94,\n", - " 39,\n", - " 63,\n", - " 8,\n", - " 40,\n", - " 91,\n", - " 66,\n", - " 49,\n", - " 94,\n", - " 21],\n", - " [24,\n", - " 55,\n", - " 58,\n", - " 5,\n", - " 66,\n", - " 73,\n", - " 99,\n", - " 26,\n", - " 97,\n", - " 17,\n", - " 78,\n", - " 78,\n", - " 96,\n", - " 83,\n", - " 14,\n", - " 88,\n", - " 34,\n", - " 89,\n", - " 63,\n", - " 72],\n", - " [21, 36, 23, 9, 75, 0, 76, 44, 20, 45, 35, 14, 0, 61, 33, 97, 34, 31, 33, 95],\n", - " [78, 17, 53, 28, 22, 75, 31, 67, 15, 94, 3, 80, 4, 62, 16, 14, 9, 53, 56, 92],\n", - " [16,\n", - " 39,\n", - " 5,\n", - " 42,\n", - " 96,\n", - " 35,\n", - " 31,\n", - " 47,\n", - " 55,\n", - " 58,\n", - " 88,\n", - " 24,\n", - " 0,\n", - " 17,\n", - " 54,\n", - " 24,\n", - " 36,\n", - " 29,\n", - " 85,\n", - " 57],\n", - " [86, 56, 0, 48, 35, 71, 89, 7, 5, 44, 44, 37, 44, 60, 21, 58, 51, 54, 17, 58],\n", - " [19,\n", - " 80,\n", - " 81,\n", - " 68,\n", - " 5,\n", - " 94,\n", - " 47,\n", - " 69,\n", - " 28,\n", - " 73,\n", - " 92,\n", - " 13,\n", - " 86,\n", - " 52,\n", - " 17,\n", - " 77,\n", - " 4,\n", - " 89,\n", - " 55,\n", - " 40],\n", - " [4, 52, 8, 83, 97, 35, 99, 16, 7, 97, 57, 32, 16, 26, 26, 79, 33, 27, 98, 66],\n", - " [88,\n", - " 36,\n", - " 68,\n", - " 87,\n", - " 57,\n", - " 62,\n", - " 20,\n", - " 72,\n", - " 3,\n", - " 46,\n", - " 33,\n", - " 67,\n", - " 46,\n", - " 55,\n", - " 12,\n", - " 32,\n", - " 63,\n", - " 93,\n", - " 53,\n", - " 69],\n", - " [4,\n", - " 42,\n", - " 16,\n", - " 73,\n", - " 38,\n", - " 25,\n", - " 39,\n", - " 11,\n", - " 24,\n", - " 94,\n", - " 72,\n", - " 18,\n", - " 8,\n", - " 46,\n", - " 29,\n", - " 32,\n", - " 40,\n", - " 62,\n", - " 76,\n", - " 36],\n", - " [20,\n", - " 69,\n", - " 36,\n", - " 41,\n", - " 72,\n", - " 30,\n", - " 23,\n", - " 88,\n", - " 34,\n", - " 62,\n", - " 99,\n", - " 69,\n", - " 82,\n", - " 67,\n", - " 59,\n", - " 85,\n", - " 74,\n", - " 4,\n", - " 36,\n", - " 16],\n", - " [20,\n", - " 73,\n", - " 35,\n", - " 29,\n", - " 78,\n", - " 31,\n", - " 90,\n", - " 1,\n", - " 74,\n", - " 31,\n", - " 49,\n", - " 71,\n", - " 48,\n", - " 86,\n", - " 81,\n", - " 16,\n", - " 23,\n", - " 57,\n", - " 5,\n", - " 54],\n", - " [1,\n", - " 70,\n", - " 54,\n", - " 71,\n", - " 83,\n", - " 51,\n", - " 54,\n", - " 69,\n", - " 16,\n", - " 92,\n", - " 33,\n", - " 48,\n", - " 61,\n", - " 43,\n", - " 52,\n", - " 1,\n", - " 89,\n", - " 19,\n", - " 67,\n", - " 48]]" - ] - } - ], - "prompt_number": 29 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "g3 = [grid_nums[rowstart:rowstart+COLUMNS] \n", - " for rowstart in range(0, ROWS * COLUMNS, COLUMNS)]\n", - "g3" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 45, - "text": [ - "[[8, 2, 22, 97, 38, 15, 0, 40, 0, 75, 4, 5, 7, 78, 52, 12, 50, 77, 91, 8],\n", - " [49,\n", - " 49,\n", - " 99,\n", - " 40,\n", - " 17,\n", - " 81,\n", - " 18,\n", - " 57,\n", - " 60,\n", - " 87,\n", - " 17,\n", - " 40,\n", - " 98,\n", - " 43,\n", - " 69,\n", - " 48,\n", - " 4,\n", - " 56,\n", - " 62,\n", - " 0],\n", - " [81,\n", - " 49,\n", - " 31,\n", - " 73,\n", - " 55,\n", - " 79,\n", - " 14,\n", - " 29,\n", - " 93,\n", - " 71,\n", - " 40,\n", - " 67,\n", - " 53,\n", - " 88,\n", - " 30,\n", - " 3,\n", - " 49,\n", - " 13,\n", - " 36,\n", - " 65],\n", - " [52, 70, 95, 23, 4, 60, 11, 42, 69, 24, 68, 56, 1, 32, 56, 71, 37, 2, 36, 91],\n", - " [22,\n", - " 31,\n", - " 16,\n", - " 71,\n", - " 51,\n", - " 67,\n", - " 63,\n", - " 89,\n", - " 41,\n", - " 92,\n", - " 36,\n", - " 54,\n", - " 22,\n", - " 40,\n", - " 40,\n", - " 28,\n", - " 66,\n", - " 33,\n", - " 13,\n", - " 80],\n", - " [24,\n", - " 47,\n", - " 32,\n", - " 60,\n", - " 99,\n", - " 3,\n", - " 45,\n", - " 2,\n", - " 44,\n", - " 75,\n", - " 33,\n", - " 53,\n", - " 78,\n", - " 36,\n", - " 84,\n", - " 20,\n", - " 35,\n", - " 17,\n", - " 12,\n", - " 50],\n", - " [32,\n", - " 98,\n", - " 81,\n", - " 28,\n", - " 64,\n", - " 23,\n", - " 67,\n", - " 10,\n", - " 26,\n", - " 38,\n", - " 40,\n", - " 67,\n", - " 59,\n", - " 54,\n", - " 70,\n", - " 66,\n", - " 18,\n", - " 38,\n", - " 64,\n", - " 70],\n", - " [67,\n", - " 26,\n", - " 20,\n", - " 68,\n", - " 2,\n", - " 62,\n", - " 12,\n", - " 20,\n", - " 95,\n", - " 63,\n", - " 94,\n", - " 39,\n", - " 63,\n", - " 8,\n", - " 40,\n", - " 91,\n", - " 66,\n", - " 49,\n", - " 94,\n", - " 21],\n", - " [24,\n", - " 55,\n", - " 58,\n", - " 5,\n", - " 66,\n", - " 73,\n", - " 99,\n", - " 26,\n", - " 97,\n", - " 17,\n", - " 78,\n", - " 78,\n", - " 96,\n", - " 83,\n", - " 14,\n", - " 88,\n", - " 34,\n", - " 89,\n", - " 63,\n", - " 72],\n", - " [21, 36, 23, 9, 75, 0, 76, 44, 20, 45, 35, 14, 0, 61, 33, 97, 34, 31, 33, 95],\n", - " [78, 17, 53, 28, 22, 75, 31, 67, 15, 94, 3, 80, 4, 62, 16, 14, 9, 53, 56, 92],\n", - " [16,\n", - " 39,\n", - " 5,\n", - " 42,\n", - " 96,\n", - " 35,\n", - " 31,\n", - " 47,\n", - " 55,\n", - " 58,\n", - " 88,\n", - " 24,\n", - " 0,\n", - " 17,\n", - " 54,\n", - " 24,\n", - " 36,\n", - " 29,\n", - " 85,\n", - " 57],\n", - " [86, 56, 0, 48, 35, 71, 89, 7, 5, 44, 44, 37, 44, 60, 21, 58, 51, 54, 17, 58],\n", - " [19,\n", - " 80,\n", - " 81,\n", - " 68,\n", - " 5,\n", - " 94,\n", - " 47,\n", - " 69,\n", - " 28,\n", - " 73,\n", - " 92,\n", - " 13,\n", - " 86,\n", - " 52,\n", - " 17,\n", - " 77,\n", - " 4,\n", - " 89,\n", - " 55,\n", - " 40],\n", - " [4, 52, 8, 83, 97, 35, 99, 16, 7, 97, 57, 32, 16, 26, 26, 79, 33, 27, 98, 66],\n", - " [88,\n", - " 36,\n", - " 68,\n", - " 87,\n", - " 57,\n", - " 62,\n", - " 20,\n", - " 72,\n", - " 3,\n", - " 46,\n", - " 33,\n", - " 67,\n", - " 46,\n", - " 55,\n", - " 12,\n", - " 32,\n", - " 63,\n", - " 93,\n", - " 53,\n", - " 69],\n", - " [4,\n", - " 42,\n", - " 16,\n", - " 73,\n", - " 38,\n", - " 25,\n", - " 39,\n", - " 11,\n", - " 24,\n", - " 94,\n", - " 72,\n", - " 18,\n", - " 8,\n", - " 46,\n", - " 29,\n", - " 32,\n", - " 40,\n", - " 62,\n", - " 76,\n", - " 36],\n", - " [20,\n", - " 69,\n", - " 36,\n", - " 41,\n", - " 72,\n", - " 30,\n", - " 23,\n", - " 88,\n", - " 34,\n", - " 62,\n", - " 99,\n", - " 69,\n", - " 82,\n", - " 67,\n", - " 59,\n", - " 85,\n", - " 74,\n", - " 4,\n", - " 36,\n", - " 16],\n", - " [20,\n", - " 73,\n", - " 35,\n", - " 29,\n", - " 78,\n", - " 31,\n", - " 90,\n", - " 1,\n", - " 74,\n", - " 31,\n", - " 49,\n", - " 71,\n", - " 48,\n", - " 86,\n", - " 81,\n", - " 16,\n", - " 23,\n", - " 57,\n", - " 5,\n", - " 54],\n", - " [1,\n", - " 70,\n", - " 54,\n", - " 71,\n", - " 83,\n", - " 51,\n", - " 54,\n", - " 69,\n", - " 16,\n", - " 92,\n", - " 33,\n", - " 48,\n", - " 61,\n", - " 43,\n", - " 52,\n", - " 1,\n", - " 89,\n", - " 19,\n", - " 67,\n", - " 48]]" + "[8,\n", + " 2,\n", + " 22,\n", + " 97,\n", + " 38,\n", + " 15,\n", + " 0,\n", + " 40,\n", + " 0,\n", + " 75,\n", + " 4,\n", + " 5,\n", + " 7,\n", + " 78,\n", + " 52,\n", + " 12,\n", + " 50,\n", + " 77,\n", + " 91,\n", + " 8,\n", + " 49,\n", + " 49,\n", + " 99,\n", + " 40,\n", + " 17,\n", + " 81,\n", + " 18,\n", + " 57,\n", + " 60,\n", + " 87,\n", + " 17,\n", + " 40,\n", + " 98,\n", + " 43,\n", + " 69,\n", + " 48,\n", + " 4,\n", + " 56,\n", + " 62,\n", + " 0,\n", + " 81,\n", + " 49,\n", + " 31,\n", + " 73,\n", + " 55,\n", + " 79,\n", + " 14,\n", + " 29,\n", + " 93,\n", + " 71,\n", + " 40,\n", + " 67,\n", + " 53,\n", + " 88,\n", + " 30,\n", + " 3,\n", + " 49,\n", + " 13,\n", + " 36,\n", + " 65,\n", + " 52,\n", + " 70,\n", + " 95,\n", + " 23,\n", + " 4,\n", + " 60,\n", + " 11,\n", + " 42,\n", + " 69,\n", + " 24,\n", + " 68,\n", + " 56,\n", + " 1,\n", + " 32,\n", + " 56,\n", + " 71,\n", + " 37,\n", + " 2,\n", + " 36,\n", + " 91,\n", + " 22,\n", + " 31,\n", + " 16,\n", + " 71,\n", + " 51,\n", + " 67,\n", + " 63,\n", + " 89,\n", + " 41,\n", + " 92,\n", + " 36,\n", + " 54,\n", + " 22,\n", + " 40,\n", + " 40,\n", + " 28,\n", + " 66,\n", + " 33,\n", + " 13,\n", + " 80,\n", + " 24,\n", + " 47,\n", + " 32,\n", + " 60,\n", + " 99,\n", + " 3,\n", + " 45,\n", + " 2,\n", + " 44,\n", + " 75,\n", + " 33,\n", + " 53,\n", + " 78,\n", + " 36,\n", + " 84,\n", + " 20,\n", + " 35,\n", + " 17,\n", + " 12,\n", + " 50,\n", + " 32,\n", + " 98,\n", + " 81,\n", + " 28,\n", + " 64,\n", + " 23,\n", + " 67,\n", + " 10,\n", + " 26,\n", + " 38,\n", + " 40,\n", + " 67,\n", + " 59,\n", + " 54,\n", + " 70,\n", + " 66,\n", + " 18,\n", + " 38,\n", + " 64,\n", + " 70,\n", + " 67,\n", + " 26,\n", + " 20,\n", + " 68,\n", + " 2,\n", + " 62,\n", + " 12,\n", + " 20,\n", + " 95,\n", + " 63,\n", + " 94,\n", + " 39,\n", + " 63,\n", + " 8,\n", + " 40,\n", + " 91,\n", + " 66,\n", + " 49,\n", + " 94,\n", + " 21,\n", + " 24,\n", + " 55,\n", + " 58,\n", + " 5,\n", + " 66,\n", + " 73,\n", + " 99,\n", + " 26,\n", + " 97,\n", + " 17,\n", + " 78,\n", + " 78,\n", + " 96,\n", + " 83,\n", + " 14,\n", + " 88,\n", + " 34,\n", + " 89,\n", + " 63,\n", + " 72,\n", + " 21,\n", + " 36,\n", + " 23,\n", + " 9,\n", + " 75,\n", + " 0,\n", + " 76,\n", + " 44,\n", + " 20,\n", + " 45,\n", + " 35,\n", + " 14,\n", + " 0,\n", + " 61,\n", + " 33,\n", + " 97,\n", + " 34,\n", + " 31,\n", + " 33,\n", + " 95,\n", + " 78,\n", + " 17,\n", + " 53,\n", + " 28,\n", + " 22,\n", + " 75,\n", + " 31,\n", + " 67,\n", + " 15,\n", + " 94,\n", + " 3,\n", + " 80,\n", + " 4,\n", + " 62,\n", + " 16,\n", + " 14,\n", + " 9,\n", + " 53,\n", + " 56,\n", + " 92,\n", + " 16,\n", + " 39,\n", + " 5,\n", + " 42,\n", + " 96,\n", + " 35,\n", + " 31,\n", + " 47,\n", + " 55,\n", + " 58,\n", + " 88,\n", + " 24,\n", + " 0,\n", + " 17,\n", + " 54,\n", + " 24,\n", + " 36,\n", + " 29,\n", + " 85,\n", + " 57,\n", + " 86,\n", + " 56,\n", + " 0,\n", + " 48,\n", + " 35,\n", + " 71,\n", + " 89,\n", + " 7,\n", + " 5,\n", + " 44,\n", + " 44,\n", + " 37,\n", + " 44,\n", + " 60,\n", + " 21,\n", + " 58,\n", + " 51,\n", + " 54,\n", + " 17,\n", + " 58,\n", + " 19,\n", + " 80,\n", + " 81,\n", + " 68,\n", + " 5,\n", + " 94,\n", + " 47,\n", + " 69,\n", + " 28,\n", + " 73,\n", + " 92,\n", + " 13,\n", + " 86,\n", + " 52,\n", + " 17,\n", + " 77,\n", + " 4,\n", + " 89,\n", + " 55,\n", + " 40,\n", + " 4,\n", + " 52,\n", + " 8,\n", + " 83,\n", + " 97,\n", + " 35,\n", + " 99,\n", + " 16,\n", + " 7,\n", + " 97,\n", + " 57,\n", + " 32,\n", + " 16,\n", + " 26,\n", + " 26,\n", + " 79,\n", + " 33,\n", + " 27,\n", + " 98,\n", + " 66,\n", + " 88,\n", + " 36,\n", + " 68,\n", + " 87,\n", + " 57,\n", + " 62,\n", + " 20,\n", + " 72,\n", + " 3,\n", + " 46,\n", + " 33,\n", + " 67,\n", + " 46,\n", + " 55,\n", + " 12,\n", + " 32,\n", + " 63,\n", + " 93,\n", + " 53,\n", + " 69,\n", + " 4,\n", + " 42,\n", + " 16,\n", + " 73,\n", + " 38,\n", + " 25,\n", + " 39,\n", + " 11,\n", + " 24,\n", + " 94,\n", + " 72,\n", + " 18,\n", + " 8,\n", + " 46,\n", + " 29,\n", + " 32,\n", + " 40,\n", + " 62,\n", + " 76,\n", + " 36,\n", + " 20,\n", + " 69,\n", + " 36,\n", + " 41,\n", + " 72,\n", + " 30,\n", + " 23,\n", + " 88,\n", + " 34,\n", + " 62,\n", + " 99,\n", + " 69,\n", + " 82,\n", + " 67,\n", + " 59,\n", + " 85,\n", + " 74,\n", + " 4,\n", + " 36,\n", + " 16,\n", + " 20,\n", + " 73,\n", + " 35,\n", + " 29,\n", + " 78,\n", + " 31,\n", + " 90,\n", + " 1,\n", + " 74,\n", + " 31,\n", + " 49,\n", + " 71,\n", + " 48,\n", + " 86,\n", + " 81,\n", + " 16,\n", + " 23,\n", + " 57,\n", + " 5,\n", + " 54,\n", + " 1,\n", + " 70,\n", + " 54,\n", + " 71,\n", + " 83,\n", + " 51,\n", + " 54,\n", + " 69,\n", + " 16,\n", + " 92,\n", + " 33,\n", + " 48,\n", + " 61,\n", + " 43,\n", + " 52,\n", + " 1,\n", + " 89,\n", + " 19,\n", + " 67,\n", + " 48]" ] } ], - "prompt_number": 45 + "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [ - "g1=[]\n", + "g1 = []\n", "for rowstart in range(0, ROWS * COLUMNS, COLUMNS):\n", " g1.append(grid_nums[rowstart:rowstart+COLUMNS])\n", "g1" @@ -1809,36 +601,10 @@ "language": "python", "metadata": {}, "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[8, 2, 22, 97, 38, 15, 0, 40, 0, 75, 4, 5, 7, 78, 52, 12, 50, 77, 91, 8]\n", - "[49, 49, 99, 40, 17, 81, 18, 57, 60, 87, 17, 40, 98, 43, 69, 48, 4, 56, 62, 0]\n", - "[81, 49, 31, 73, 55, 79, 14, 29, 93, 71, 40, 67, 53, 88, 30, 3, 49, 13, 36, 65]\n", - "[52, 70, 95, 23, 4, 60, 11, 42, 69, 24, 68, 56, 1, 32, 56, 71, 37, 2, 36, 91]\n", - "[22, 31, 16, 71, 51, 67, 63, 89, 41, 92, 36, 54, 22, 40, 40, 28, 66, 33, 13, 80]\n", - "[24, 47, 32, 60, 99, 3, 45, 2, 44, 75, 33, 53, 78, 36, 84, 20, 35, 17, 12, 50]\n", - "[32, 98, 81, 28, 64, 23, 67, 10, 26, 38, 40, 67, 59, 54, 70, 66, 18, 38, 64, 70]\n", - "[67, 26, 20, 68, 2, 62, 12, 20, 95, 63, 94, 39, 63, 8, 40, 91, 66, 49, 94, 21]\n", - "[24, 55, 58, 5, 66, 73, 99, 26, 97, 17, 78, 78, 96, 83, 14, 88, 34, 89, 63, 72]\n", - "[21, 36, 23, 9, 75, 0, 76, 44, 20, 45, 35, 14, 0, 61, 33, 97, 34, 31, 33, 95]\n", - "[78, 17, 53, 28, 22, 75, 31, 67, 15, 94, 3, 80, 4, 62, 16, 14, 9, 53, 56, 92]\n", - "[16, 39, 5, 42, 96, 35, 31, 47, 55, 58, 88, 24, 0, 17, 54, 24, 36, 29, 85, 57]\n", - "[86, 56, 0, 48, 35, 71, 89, 7, 5, 44, 44, 37, 44, 60, 21, 58, 51, 54, 17, 58]\n", - "[19, 80, 81, 68, 5, 94, 47, 69, 28, 73, 92, 13, 86, 52, 17, 77, 4, 89, 55, 40]\n", - "[4, 52, 8, 83, 97, 35, 99, 16, 7, 97, 57, 32, 16, 26, 26, 79, 33, 27, 98, 66]\n", - "[88, 36, 68, 87, 57, 62, 20, 72, 3, 46, 33, 67, 46, 55, 12, 32, 63, 93, 53, 69]\n", - "[4, 42, 16, 73, 38, 25, 39, 11, 24, 94, 72, 18, 8, 46, 29, 32, 40, 62, 76, 36]\n", - "[20, 69, 36, 41, 72, 30, 23, 88, 34, 62, 99, 69, 82, 67, 59, 85, 74, 4, 36, 16]\n", - "[20, 73, 35, 29, 78, 31, 90, 1, 74, 31, 49, 71, 48, 86, 81, 16, 23, 57, 5, 54]\n", - "[1, 70, 54, 71, 83, 51, 54, 69, 16, 92, 33, 48, 61, 43, 52, 1, 89, 19, 67, 48]\n" - ] - }, { "metadata": {}, "output_type": "pyout", - "prompt_number": 39, + "prompt_number": 9, "text": [ "[[8, 2, 22, 97, 38, 15, 0, 40, 0, 75, 4, 5, 7, 78, 52, 12, 50, 77, 91, 8],\n", " [49,\n", @@ -2129,7 +895,7 @@ ] } ], - "prompt_number": 39 + "prompt_number": 9 }, { "cell_type": "code", @@ -2147,7 +913,7 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 30, + "prompt_number": 10, "text": [ "{(7, 3): 42,\n", " (6, 9): 76,\n", @@ -2552,7 +1318,7 @@ ] } ], - "prompt_number": 30 + "prompt_number": 10 }, { "cell_type": "code", @@ -2566,13 +1332,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 35, + "prompt_number": 11, "text": [ "31" ] } ], - "prompt_number": 35 + "prompt_number": 11 }, { "cell_type": "code", @@ -2587,7 +1353,7 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 27, + "prompt_number": 12, "text": [ "[[8, 2, 22, 97, 38, 15, 0, 40, 0, 75, 4, 5, 7, 78, 52, 12, 50, 77, 91, 8],\n", " [49,\n", @@ -2878,7 +1644,7 @@ ] } ], - "prompt_number": 27 + "prompt_number": 12 }, { "cell_type": "code", @@ -2895,7 +1661,7 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 63, + "prompt_number": 13, "text": [ "{(7, 3): 42,\n", " (6, 9): 76,\n", @@ -3300,7 +2066,7 @@ ] } ], - "prompt_number": 63 + "prompt_number": 13 }, { "cell_type": "code", @@ -3317,7 +2083,7 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 65, + "prompt_number": 14, "text": [ "{(7, 3): 42,\n", " (6, 9): 76,\n", @@ -3722,7 +2488,7 @@ ] } ], - "prompt_number": 65 + "prompt_number": 14 }, { "cell_type": "code", @@ -3736,13 +2502,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 66, + "prompt_number": 15, "text": [ "True" ] } ], - "prompt_number": 66 + "prompt_number": 15 }, { "cell_type": "code", @@ -3760,12 +2526,12 @@ "output_type": "pyerr", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[0md\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m{\u001b[0m\u001b[1;33m}\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0md\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m99\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[0md\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m{\u001b[0m\u001b[1;33m}\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0md\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m99\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;31mKeyError\u001b[0m: 99" ] } ], - "prompt_number": 67 + "prompt_number": 16 }, { "cell_type": "code", @@ -3781,13 +2547,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 69, + "prompt_number": 17, "text": [ "0" ] } ], - "prompt_number": 69 + "prompt_number": 17 }, { "cell_type": "code", @@ -3803,13 +2569,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 71, + "prompt_number": 18, "text": [ "Counter({'e': 52876, 't': 37842, 'a': 34376, 'o': 33200, 'n': 28378, 'h': 27803, 's': 26432, 'i': 26366, 'r': 24304, 'd': 18349, 'l': 16854, 'u': 13070, 'm': 11055, 'w': 10508, 'c': 10172, 'y': 8976, 'f': 8785, 'g': 7733, 'p': 6652, 'b': 5883, 'v': 4367, 'I': 3774, 'k': 3465, 'H': 1244, 'T': 1139, 'S': 762, 'A': 761, 'W': 758, 'M': 732, 'x': 541, 'B': 479, 'Y': 455, 'q': 406, 'j': 338, 'C': 327, 'O': 312, 'N': 304, 'L': 291, 'E': 235, 'D': 214, 'R': 204, 'F': 190, 'P': 183, 'G': 154, 'z': 147, 'J': 114, 'V': 85, 'K': 78, 'U': 46, 'Q': 20, 'X': 8, 'Z': 2})" ] } ], - "prompt_number": 71 + "prompt_number": 18 }, { "cell_type": "code", @@ -3827,13 +2593,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 74, + "prompt_number": 19, "text": [ "[(3, 4, 5), (5, 12, 13), (6, 8, 10), (8, 15, 17), (9, 12, 15), (12, 16, 20)]" ] } ], - "prompt_number": 74 + "prompt_number": 19 }, { "cell_type": "code", @@ -3847,7 +2613,7 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 75, + "prompt_number": 20, "text": [ "[[8, 2, 22, 97, 38, 15, 0, 40, 0, 75, 4, 5, 7, 78, 52, 12, 50, 77, 91, 8],\n", " [49,\n", @@ -4138,7 +2904,7 @@ ] } ], - "prompt_number": 75 + "prompt_number": 20 }, { "cell_type": "code", @@ -4152,7 +2918,7 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 76, + "prompt_number": 21, "text": [ "[8,\n", " 2,\n", @@ -4557,192 +3323,25 @@ ] } ], - "prompt_number": 76 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import collections\n", - "import string\n", - "collections.Counter(l for l in open('sherlock-holmes.txt').read()\n", - " if l in string.ascii_letters)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 51, - "text": [ - "Counter({'e': 52876, 't': 37842, 'a': 34376, 'o': 33200, 'n': 28378, 'h': 27803, 's': 26432, 'i': 26366, 'r': 24304, 'd': 18349, 'l': 16854, 'u': 13070, 'm': 11055, 'w': 10508, 'c': 10172, 'y': 8976, 'f': 8785, 'g': 7733, 'p': 6652, 'b': 5883, 'v': 4367, 'I': 3774, 'k': 3465, 'H': 1244, 'T': 1139, 'S': 762, 'A': 761, 'W': 758, 'M': 732, 'x': 541, 'B': 479, 'Y': 455, 'q': 406, 'j': 338, 'C': 327, 'O': 312, 'N': 304, 'L': 291, 'E': 235, 'D': 214, 'R': 204, 'F': 190, 'P': 183, 'G': 154, 'z': 147, 'J': 114, 'V': 85, 'K': 78, 'U': 46, 'Q': 20, 'X': 8, 'Z': 2})" - ] - } - ], - "prompt_number": 51 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import collections\n", - "import string\n", - "c = collections.Counter(l.lower() for l in open('sherlock-holmes.txt').read()\n", - " if l in string.ascii_letters)\n", - "[(l, c[l]) for l in sorted(c)]" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 50, - "text": [ - "[('a', 35137),\n", - " ('b', 6362),\n", - " ('c', 10499),\n", - " ('d', 18563),\n", - " ('e', 53111),\n", - " ('f', 8975),\n", - " ('g', 7887),\n", - " ('h', 29047),\n", - " ('i', 30140),\n", - " ('j', 452),\n", - " ('k', 3543),\n", - " ('l', 17145),\n", - " ('m', 11787),\n", - " ('n', 28682),\n", - " ('o', 33512),\n", - " ('p', 6835),\n", - " ('q', 426),\n", - " ('r', 24508),\n", - " ('s', 27194),\n", - " ('t', 38981),\n", - " ('u', 13116),\n", - " ('v', 4452),\n", - " ('w', 11266),\n", - " ('x', 549),\n", - " ('y', 9431),\n", - " ('z', 149)]" - ] - } - ], - "prompt_number": 50 + "prompt_number": 21 }, { "cell_type": "code", "collapsed": false, "input": [ - "import random\n", - "import collections\n", - "import string" + "s1 = 'hello'\n", + "s2 = '__lk_'" ], "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 52 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "def only_lower_case(str):\n", - " ???\n", - " return ???" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "words = [line.strip() \n", - " for line in open('/usr/share/dict/british-english').readlines()\n", - " if only_lower_case(line)]\n", - "words[:20]" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 57, - "text": [ - "['A',\n", - " \"A's\",\n", - " \"AA's\",\n", - " \"AB's\",\n", - " \"ABM's\",\n", - " \"AC's\",\n", - " \"ACTH's\",\n", - " \"AI's\",\n", - " \"AIDS's\",\n", - " \"AM's\",\n", - " 'AOL',\n", - " \"AOL's\",\n", - " \"ASCII's\",\n", - " \"ASL's\",\n", - " \"ATM's\",\n", - " \"ATP's\",\n", - " \"AWOL's\",\n", - " \"AZ's\",\n", - " \"AZT's\",\n", - " 'Aachen']" - ] - } - ], - "prompt_number": 57 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "string.ascii_letters" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 58, - "text": [ - "'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'" - ] - } - ], - "prompt_number": 58 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "string.ascii_lowercase" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 60, - "text": [ - "'abcdefghijklmnopqrstuvwxyz'" - ] - } - ], - "prompt_number": 60 + "prompt_number": 27 }, { "cell_type": "code", "collapsed": false, "input": [ - "string.ascii_uppercase" + "list(zip(s1, s2))" ], "language": "python", "metadata": {}, @@ -4750,39 +3349,36 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 61, + "prompt_number": 23, "text": [ - "'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" + "[('h', '_'), ('e', '_'), ('l', 'l'), ('l', 'l'), ('o', '_')]" ] } ], - "prompt_number": 61 + "prompt_number": 23 }, { "cell_type": "code", "collapsed": false, "input": [ - "string.punctuation" + "def match_positive(pattern, target):\n", + " if len(pattern) != len(target):\n", + " return False\n", + " for m, c in zip(pattern, target):\n", + " if m != '_' and m != c:\n", + " return False\n", + " return True" ], "language": "python", "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 62, - "text": [ - "'!\"#$%&\\'()*+,-./:;<=>?@[\\\\]^_`{|}~'" - ] - } - ], - "prompt_number": 62 + "outputs": [], + "prompt_number": 31 }, { "cell_type": "code", "collapsed": false, "input": [ - "'b' in string.ascii_lowercase" + "match_positive('he__o', 'hello')" ], "language": "python", "metadata": {}, @@ -4790,83 +3386,44 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 63, + "prompt_number": 38, "text": [ "True" ] } ], - "prompt_number": 63 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "'B' in string.ascii_lowercase" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 64, - "text": [ - "False" - ] - } - ], - "prompt_number": 64 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "[l for l in 'hello']" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 65, - "text": [ - "['h', 'e', 'l', 'l', 'o']" - ] - } - ], - "prompt_number": 65 + "prompt_number": 38 }, { "cell_type": "code", "collapsed": false, "input": [ - "for l in 'hello':\n", - " print(l)" + "def match(pattern, target, excluded=None):\n", + " if not excluded:\n", + " excluded = ''\n", + " if len(pattern) != len(target):\n", + " return False\n", + " for m, c in zip(pattern, target):\n", + " if m == '_' and c not in excluded:\n", + " # true\n", + " pass\n", + " elif m != '_' and m == c:\n", + " # true\n", + " pass\n", + " else:\n", + " return False\n", + " return True" ], "language": "python", "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "h\n", - "e\n", - "l\n", - "l\n", - "o\n" - ] - } - ], - "prompt_number": 66 + "outputs": [], + "prompt_number": 56 }, { "cell_type": "code", "collapsed": false, "input": [ - "'b' not in string.ascii_lowercase" + "match('__l_o', 'hello', 'def')" ], "language": "python", "metadata": {}, @@ -4874,19 +3431,19 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 67, + "prompt_number": 60, "text": [ "False" ] } ], - "prompt_number": 67 + "prompt_number": 60 }, { "cell_type": "code", "collapsed": false, "input": [ - "'B' not in string.ascii_lowercase" + "'_' == '_' and 'l' not in 'xyz'" ], "language": "python", "metadata": {}, @@ -4894,13 +3451,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 68, + "prompt_number": 48, "text": [ "True" ] } ], - "prompt_number": 68 + "prompt_number": 48 }, { "cell_type": "code",