{ "cells": [ { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "These are some experiments for refactoring [kraftur](https://github.com/kraftur)'s\n", "[math-game](https://github.com/kraftur/math-game)." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "text/plain": [ "[('11 + 11', '22'), ('11 + 2', '13'), ('11 + 3', '14')]" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "addition_problems_and_answers = [\n", " ('11 + 11', '22'),\n", " ('11 + 2', '13'),\n", " ('11 + 3', '14'),\n", "]\n", "good = addition_problems_and_answers\n", "good" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "text/plain": [ "[('11 + 11', '22'), ('11 + 2', '13'), ('11 + 3', '14')]" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "addition_problems_and_answers = '''\n", " 11 + 11, 22\n", " 11 + 2, 13\n", " 11 + 3, 14\n", " '''\n", "a = addition_problems_and_answers\n", "b = [\n", " tuple(term.strip() for term in line.split(','))\n", " for line in a.split('\\n')\n", " if line.strip()\n", "]\n", "b" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ "from random import choice, choices" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "('11 + 11', '22')\n", "('11 + 2', '13')\n", "('11 + 11', '22')\n", "('11 + 2', '13')\n", "('11 + 11', '22')\n", "('11 + 2', '13')\n", "('11 + 2', '13')\n", "('11 + 3', '14')\n", "('11 + 3', '14')\n", "('11 + 2', '13')\n" ] } ], "source": [ "for _ in range(10):\n", " print(choice(b))" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "text/plain": [ "[('11 + 2', '13'),\n", " ('11 + 2', '13'),\n", " ('11 + 11', '22'),\n", " ('11 + 3', '14'),\n", " ('11 + 2', '13'),\n", " ('11 + 11', '22'),\n", " ('11 + 11', '22'),\n", " ('11 + 2', '13'),\n", " ('11 + 2', '13'),\n", " ('11 + 2', '13')]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "choices(b, k=10)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "hello world\n" ] } ], "source": [ "print('hello', 'world')" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "text/plain": [ "[('11', '11'), ('11', '2'), ('11', '3')]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "addition_problems_text = '''\n", " 11 11\n", " 11 2\n", " 11 3\n", "'''\n", "a = addition_problems_text\n", "b = [\n", " tuple(operand.strip() for operand in line.split())\n", " for line in a.split('\\n')\n", " if line.strip()\n", "]\n", "b" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "text/plain": [ "['', ' 11 11', ' 11 2', ' 11 3', '']" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.split('\\n')" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "text/plain": [ "['11 11', ' 11 2', ' 11 3']" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.strip().split('\\n')" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "text/plain": [ "[(11, 11), (11, 2), (11, 3)]" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "addition_problems_text = '''\n", " 11 11\n", " 11 2\n", " 11 3\n", "'''\n", "a = addition_problems_text\n", "b = [\n", " tuple(int(operand.strip()) for operand in line.split())\n", " for line in a.split('\\n')\n", " if line.strip()\n", "]\n", "b" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ "actions = {\n", " 'add': 1,\n", " 'subtract': 'hello',\n", " 'stats': int,\n", " 'quit': 1j,\n", "}" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Please type \"add\" or \"subtract\" or \"stats\" or \"quit\". \n" ] } ], "source": [ "choices = ' or '.join(f'\"{action}\"' for action in actions)\n", "print(f'Please type {choices}. ')" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Please type \"add\" or \"subtract\" or \"stats\" or \"quit\". \n" ] } ], "source": [ "choices = ' or '.join(map(lambda action: f'\"{action}\"', actions))\n", "print(f'Please type {choices}. ')" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.0" } }, "nbformat": 4, "nbformat_minor": 2 }