{ "cells": [ { "cell_type": "markdown", "metadata": { "deletable": false, "editable": false, "nbgrader": { "cell_type": "markdown", "checksum": "931008c90a6d73bd6743697dc1533e95", "grade": false,...

1 answer below »
Please use Jupyter Notebooks. Please do all of the assignments to include creating a scrabbe.py file per the instructions. Here is the one that you did before but you forgot to do the scrabble.py. PLEASE CREATE THE SCRABBLE.PY file along this time. Thanks!


{ "cells": [ { "cell_type": "markdown", "metadata": { "deletable": false, "editable": false, "nbgrader": { "cell_type": "markdown", "checksum": "931008c90a6d73bd6743697dc1533e95", "grade": false, "grade_id": "cell-6d8cdb4d261f4009", "locked": true, "schema_version": 3, "solution": false } }, "source": [ "## Week 6 Assignment - W200 Introduction to Data Science Programming, UC Berkeley MIDS\n", "\n", "Write code in this Jupyter Notebook to solve each of the following problems. Each problem should have its solution in a separate cell. Please upload this **notebook**, your **scrabble.py** file, the **sowpods.txt** file, and your **score_word** module to your GitHub repository in your SUBMISSIONS/week_06 folder by 11:59PM PST the night before class." ] }, { "cell_type": "markdown", "metadata": { "deletable": false, "editable": false, "nbgrader": { "cell_type": "markdown", "checksum": "264b353c2fc9950602495e0bea1f3a2d", "grade": false, "grade_id": "cell-1ce5f6472d951780", "locked": true, "schema_version": 3, "solution": false } }, "source": [ "## Objectives:\n", "\n", "- Read and understand PEP 8 standards\n", "- Use all of your previously gained knowledge together on a single program\n", "- Demonstrate how to import a user made module and function into python from another .py file\n", "- Demonstrate how to input command line arguments into a .py file" ] }, { "cell_type": "markdown", "metadata": { "deletable": false, "editable": false, "nbgrader": { "cell_type": "markdown", "checksum": "b35efbb1abb71594c805886b92f4a0b2", "grade": false, "grade_id": "cell-00008b61981ee041", "locked": true, "schema_version": 3, "solution": false } }, "source": [ "## 6-1. PEP 8 Style Guide (reading and response) (10 points)\n", "\n", "Your first task for this week is to write a **250 word reading response** to the article referenced below. In addition, please list **3 questions** that you have from the article (the questions do not count towards the 250 word requirement). Please write your response in the markdown cell below.\n", "\n", "The writing response is a free response, so you may write about your reactions, such as an interesting thing that you saw in the article, something that really stuck out to you, etc.\n", "\n", "**Article**: [The PEP 8 Style Guide](https://www.python.org/dev/peps/pep-0008). This document is really important for Python coders because it describes best practices and customs.\n" ] }, { "cell_type": "markdown", "metadata": { "deletable": false, "nbgrader": { "cell_type": "markdown", "checksum": "8cf1e0fcb247eddcaad7b239e9152c6d", "grade": true, "grade_id": "cell-eaae902b022d20da", "locked": false, "points": 10, "schema_version": 3, "solution": true } }, "source": [ "YOUR ANSWER HERE" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true, "deletable": false, "editable": false, "nbgrader": { "cell_type": "markdown", "checksum": "18851fd7f85bb32743556a5b5a005291", "grade": false, "grade_id": "cell-b8aa7fa341f74332", "locked": true, "schema_version": 3, "solution": false } }, "source": [ "## 6-2. Cheating at Scrabble (90 points + 10 Extra Credit Points)\n", "\n", "Write a Python program that takes a Scrabble rack as a command-line argument and prints all \"valid Scrabble English\" words that can be constructed from that rack, along with their Scrabble scores, sorted by score. \"valid Scrabble English\" words are provided in the data source below. A Scrabble rack is made up of 2 to 7 characters.\n", "\n", "Below are the requirements for the program:\n", "- This needs to be able to be run as a command line tool as shown below (not an input statement!)\n", "- Name the python file: `scrabble.py`\n", "- Make a separate module named `wordscore` which contains at a minimum a function called `score_word`. This `score_word` function will take each word and return the score (scoring dictionary is described below). Import this function into your main `scrabble.py` program. \n", "- Allow anywhere from 2-7 character tiles (letters A-Z) to be inputted. \n", "- Do not restrict the number of same tiles (e.g., a user is allowed to input ZZZZZQQ).\n", "- Output the **total** list of valid Scrabble words that can be constructed from the rack as (score, word) tuples, sorted by the score and then by the word alphabetically as shown in the first example below.\n", "- Then output 'Total number of words:' and the total number.\n", "- You need to handle input errors from the user and suggest what that error might be caused by and how to fix it (i.e., a helpful error message)\n", "- Implement wildcards as either `*` or `?`. There can be a total of **only** two wild cards in any user input (that is, one of each character: one `*` and one `?`). Only use the `*` and `?` as wildcard characters. A wildcard character can take any value A-Z. Replace the wildcard symbol with the letter in your answer (see the second example below). \n", "- Wildcard characters are scored as 0 points, just like in the real Scrabble game. A two wildcard word can be made, should be outputted and scored as 0 points. \n", " - In a wildcard case where the same word can be made with or without the wildcard, display the highest score. For example: given the input 'I?F', the word 'if' can be made with the wildcard '?F' as well as the letters 'IF'. Since using the letters 'IF' scores higher, display that score.\n", "- For partial credit, your program should take less than one minute to run with 2 wildcards in the input. For full credit, the program needs to run with 2 wildcards in less than 30 seconds.\n", "- Write docstrings for the functions and puts comments in your code.\n", "- You may only use the Python standard library in this assignment. However, any function in the standard library is allowed.\n", "\n", "An example invocation and output:\n", "```\n", "$ python scrabble.py \"ZAEFIEE\"\n", "(17, feaze)\n", "(17, feeze)\n", "(16, faze)\n", "(15, fez)\n", "(15, fiz)\n", "(12, zea)\n", "(12, zee)\n", "(11, za)\n", "(6, fae)\n", "(6, fee)\n", "(6, fie)\n", "(5, ef)\n", "(5, fa)\n", "(5, fe)\n", "(5, if)\n", "(2, ae)\n", "(2, ai)\n", "(2, ea)\n", "(2, ee)\n", "Total number of words: 19\n", "```\n", "\n", "An example wildcard invocation and output:\n", "```\n", "$ python scrabble.py \"?F\"\n", "(4, ef)\n", "(4, fa)\n", "(4, fe)\n", "(4, fy)\n", "(4, if)\n", "(4, of)\n", "Total number of words: 6\n", "```\n", "\n", "#### Extra Credit (+10 points):\n", "Requirements:\n", "- Allow a user to specify that a certain letter has to be at a certain location. For the extra credit, locations of certain letters must be specified at the command line, and may not be some sort of user prompt. How you do this is up to you!\n", "- This needs to be included and called from your regular scrabble.py file and work with the base requirements above. That is, your program must work with or without the extra credit portion and the extra credit cannot be in a different .py file. \n", "- Please put comments, any assumptions you made, and a sample of how to run your extra credit in the extra credit cell of this notebook below - it is the last cell. If
Answered 1 days AfterNov 09, 2021

Answer To: { "cells": [ { "cell_type": "markdown", "metadata": { "deletable": false, "editable": false,...

Darshan answered on Nov 10 2021
124 Votes
hwunit06-lucas-vszq2dtn.ipynb
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "931008c90a6d73bd6743697dc1533e95",
"grade": false,
"grade_id": "cell-6d8cdb4d261f4009",
"locked": true,
"schema_version": 3,
"solution": false
}
},
"source": [
"## Week 6 Assignment - W200 Introduction to Data Science Programming, UC Berkeley MIDS\n",
"\n",
"Write code in this Jupyter Notebook to solve each of the following problems. Each problem should have its solution in a separate cell. Please upload this **notebook**, your **scrabble.py** file, the **sowpods.txt** file, and your **score_word** module to your GitHub repository in your SUBMISSIONS/week_06 folder by 11:59PM PST the night before class."
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "264b353c2fc9950602495e0bea1f3a2d",
"grade": false,
"grade_id": "cell-1ce5f6472d951780",
"locked": true,
"schema_version": 3,
"solution": false
}
},
"source": [
"## Objectives:\n",
"\n",
"- Read and understand PEP 8 standards\n",
"- Use all of your previously gained knowledge together on a single program\n",
"- Demonstrate how to import a user made module and function into python from another .py file\n",
"- Demonstrate how to input command line arguments into a .py file"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "b35efbb1abb71594c805886b92f4a0b2",
"grade": false,
"grade_id": "cell-00008b61981ee041",
"locked": true,
"schema_version": 3,
"solution": false
}
},
"source": [
"## 6-1. PEP 8 Style Guide (reading and response) (10 points)\n",
"\n",
"Your first task for this week is to write a **250 word reading response** to the article referenced below. In addition, please list **3 questions** that you have from the article (the questions do not count towards the 250 word requirement). Please write your response in the markdown cell below.\n",
"\n",
"The writing response is a free response, so you may write about your reactions, such as an interesting thing that you saw in the article, something that really stuck out to you, etc.\n",
"\n",
"**Article**: [The PEP 8 Style Guide](https://www.python.org/dev/peps/pep-0008). This document is really important for Python coders because it describes best practices and customs.\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "8cf1e0fcb247eddcaad7b239e9152c6d",
"grade": true,
"grade_id": "cell-eaae902b022d20da",
"locked": false,
"points": 10,
"schema_version": 3,
"solution": true
}
},
"source": [
"What is the best code standard style for python?\n",
"How it is help to coder to code python effectively?\n",
"What things you have to understand from PEP 8 Style Guide?\n",
"\n",
"This document gives coding conventions for the Python code comprising the standard library in the main Python distribution.\n",
"1. Use 4-space indentation and no tabs. \n",
"2. Use docstrings. \n",
"3. Wrap strains so they don’t exceed seventy nine characters.Maximum Length of line is 79.\n",
"4. Use of normal and up to date remarks are treasured to each the coders and users. \n",
"5. Use of trailing commas. \n",
"6. Use Python’s default UTF-eight or ASCII encodings and now no longer any fancy encodings, if it is supposed for worldwide environment. \n",
"7. Use areas round operators and after commas, however now no longer at once inner bracketing constructs: \n",
"8. Naming Conventions stated below: \n",
"\tb (unmarried lowercase letter) \n",
"\tB (unmarried top case letter) \n",
"\tlowercase \n",
"\tlower_case_with_underscores \n",
"\tUPPERCASE \n",
"\tUPPER_CASE_WITH_UNDERSCORES \n",
"\tCapitalizedWords (or CamelCase). This is likewise from time to time called StudlyCaps.Note: While the use of abbreviations in CapWords, capitalize all of the letters of the abbreviation. Thus HTTPServerError is higher than HttpServerError. \n",
"\tmixedCase (differs from CapitalizedWords via way of means of preliminary lowercase character!) \n",
"\tCapitalized_Words_With_Underscores eight. Characters that ought to now no longer be used for identifiers \n",
"9. Don’t use non-ASCII characters in identifiers.\n",
"10. Name your training and capabilities consistently.\n",
"11. Imports should usually be on separate lines.\n",
"12. Whitespace in Expressions and Statements.\n",
"13. String Quotes.In Python, single-quoted strings and double-quoted strings are the same.\n",
"14. When to Use Trailing Commas.Trailing commas are usually optional, except they are mandatory when making a tuple of one element. \n",
"15. Paragraphs inside a block comment are separated by a line containing a single #.It supports inline Comments which use inline comments sparingly.\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "3491807f5936ee993d0a6f7ea761e2fe",
"grade": false,
"grade_id": "cell-d5a08eb52a6c9895",
"locked": true,
"schema_version": 3,
"solution": false
}
},
"source": [
"### The code below will test your command line implementation of the scrabble.py code. We've made some of these tests available for you to try!"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true,
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "18851fd7f85bb32743556a5b5a005291",
"grade": false,
"grade_id": "cell-b8aa7fa341f74332",
"locked": true,
"schema_version": 3,
"solution": false
}
},
"source": [
"## 6-2. Cheating at Scrabble (90 points + 10 Extra Credit Points)\n",
"\n",
"Write a Python program that takes a Scrabble rack as a command-line argument and prints all \"valid Scrabble English\" words that can be constructed from that rack, along with their Scrabble scores, sorted by score. \"valid Scrabble English\" words are provided in the data source below. A Scrabble rack is made up of 2 to 7 characters.\n",
"\n",
"Below are the requirements for the program:\n",
"- This needs to be able to be run as a command line tool as shown below (not an input statement!)\n",
"- Name the python file: `scrabble.py`\n",
"- Make a separate module named `wordscore` which contains at a minimum a function called `score_word`. This `score_word` function will take each word and return the score (scoring dictionary is described below). Import this function into your main `scrabble.py` program. \n",
"- Allow anywhere from 2-7 character tiles (letters A-Z) to be inputted. \n",
"- Do not restrict the number of same tiles (e.g., a user is allowed to input ZZZZZQQ).\n",
"- Output the **total** list of valid Scrabble words that can be constructed from the rack as (score, word) tuples, sorted by the score and then by the word alphabetically as shown in the first example below.\n",
"- Then output 'Total number of words:' and the total number.\n",
"- You need to handle input errors from the user and suggest what that error might be caused by and how to fix it (i.e., a helpful error message)\n",
"- Implement wildcards as either `*` or `?`. There can be a total of **only** two wild cards in any user input (that is, one of each character: one `*` and one `?`). Only use the `*` and `?` as wildcard characters. A wildcard character can take any value A-Z. Replace the wildcard symbol with the letter in your answer (see the second example below). \n",
"- Wildcard characters are scored as 0 points, just like in the real Scrabble game. A two wildcard word can be made, should be outputted and scored as 0 points. \n",
" - In a wildcard case where the same word can be made with or without the wildcard, display the highest score. For example: given the input 'I?F', the word 'if' can be made with the wildcard '?F' as well as the letters 'IF'. Since using the letters 'IF' scores higher, display that score.\n",
"- For partial credit, your program should take less than one minute to run with 2 wildcards in the input. For full credit, the program needs to run with 2 wildcards in less than 30 seconds.\n",
"- Write docstrings for the functions and puts comments in your code.\n",
"- You may only use the Python standard library in this assignment. However, any function in the standard library is allowed.\n",
"\n",
"An example invocation and output:\n",
"```\n",
"$ python scrabble.py \"ZAEFIEE\"\n",
"(17, feaze)\n",
"(17, feeze)\n",
"(16, faze)\n",
"(15, fez)\n",
"(15, fiz)\n",
"(12, zea
)\n",
"(12, zee)\n",
"(11, za)\n",
"(6, fae)\n",
"(6, fee)\n",
"(6, fie)\n",
"(5, ef)\n",
"(5, fa)\n",
"(5, fe)\n",
"(5, if)\n",
"(2, ae)\n",
"(2, ai)\n",
"(2, ea)\n",
"(2, ee)\n",
"Total number of words: 19\n",
"```\n",
"\n",
"An example wildcard invocation and output:\n",
"```\n",
"$ python scrabble.py \"?F\"\n",
"(4, ef)\n",
"(4, fa)\n",
"(4, fe)\n",
"(4, fy)\n",
"(4, if)\n",
"(4, of)\n",
"Total number of words: 6\n",
"```\n",
"\n",
"#### Extra Credit (+10 points):\n",
"Requirements:\n",
"- Allow a user to specify that a certain letter has to be at a certain location. For the extra credit, locations of certain letters must be specified at the command line, and may not be some sort of user prompt. How you do this is up to you!\n",
"- This needs to be included and called from your regular scrabble.py file and work with the base requirements above. That is, your program must work with or without the extra credit portion and the extra credit cannot be in a different .py file. \n",
"- Please put comments, any assumptions you made, and a sample of how to run your extra credit in the extra credit cell of this notebook below - it is the last cell. If there is not an example of how to run the extra credit in this cell we will assume that you did not do the extra credit part!\n",
"\n",
"#### The Data\n",
"The file: http://courses.cms.caltech.edu/cs11/material/advjava/lab1/sowpods.zip or https://drive.google.com/file/d/1ewUiZL_4HanCDsaYB5pcKEgqjMFVgGnh/view?usp=sharing contains all \"valid Scrabble English\" words in the official words list, one word per line. You should download the word file and keep it in your repository so that the program is standalone (instead of accessing it over the web from Python).\n",
"\n",
"You can read data from a text file with the following code:\n",
"```\n",
"with open(\"sowpods.txt\",\"r\") as infile:\n",
" raw_input = infile.readlines()\n",
" data = [datum.strip('\\n') for datum in raw_input]\n",
"```\n",
"\n",
"This will show the first 6 words:\n",
"```\n",
"print(data[0:6])\n",
"```\n",
"Please use the dictionary below containing the letters and their Scrabble values:\n",
"```\n",
"scores = {\"a\": 1, \"c\": 3, \"b\": 3, \"e\": 1, \"d\": 2, \"g\": 2,\n",
" \"f\": 4, \"i\": 1, \"h\": 4, \"k\": 5, \"j\": 8, \"m\": 3,\n",
" \"l\": 1, \"o\": 1, \"n\": 1, \"q\": 10, \"p\": 3, \"s\": 1,\n",
" \"r\": 1, \"u\": 1, \"t\": 1, \"w\": 4, \"v\": 4, \"y\": 4,\n",
" \"x\": 8, \"z\": 10}\n",
"```\n",
"\n",
"#### Tips:\n",
"- If you don't know what \"scrabble\" is or the basic background of the game please look it up online!\n",
"- We recommend that you try to break down the problem into steps on your own before writing any code. Once you've scoped generally what you want to do, then start writing some code. If you get stuck, go back to thinking about the problem rather than trying to fix lots of errors at the code level.\n",
"- If you have questions on getting arguments from the command line, please review async video 6.17 and Drill 6.18.\n",
"- If you keep getting stuck, then check out: https://wiki.openhatch.org/wiki/Scrabble_challenge or https://drive.google.com/file/d/1g3yz5ljkzaAeQ-AgQR1Hofy8ZJ0jo25x/view?usp=sharing. This is where we got the idea for this assignment and it provides some helpful tips for guiding you along the way. However, we would recommend that you try to implement this first before looking at the hints on the website.\n",
"\n",
"Good luck!"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "5bc2edfe9c69d0d266287d7754a5d763",
"grade": false,
"grade_id": "cell-f28d35b358dd64d9",
"locked": true,
"schema_version": 3,
"solution": false
}
},
"outputs": [
{
"ename": "ModuleNotFoundError",
"evalue": "No module named 'nose'",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32mC:\\Users\\DARSHA~1\\AppData\\Local\\Temp/ipykernel_4788/2303222999.py\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0msubprocess\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 4\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[0mnose\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtools\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0massert_equal\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 5\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mnose\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtools\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0massert_true\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 6\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mnose\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtools\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0massert_greater\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;31mModuleNotFoundError\u001b[0m: No module named 'nose'"
]
}
],
"source": [
"# Code for the testing\n",
"\n",
"import subprocess\n",
"from nose.tools import assert_equal \n",
"from nose.tools import assert_true\n",
"from nose.tools import assert_greater\n",
"from nose.tools import assert_less"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "aeb5b5c9be0b7da46cc28b2e9cf40188",
"grade": true,
"grade_id": "cell-afe085b138053602",
"locked": true,
"points": 3,
"schema_version": 3,
"solution": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Please provide scrabble input: python scrabble.py XXXXX\n"
]
}
],
"source": [
"\"\"\" Code runs and can produce at least one error message \"\"\"\n",
"# Autograde cell - do not erase/delete\n",
"\n",
"# no rack error\n",
"!python scrabble.py "
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "d8a0b5ba3bae4fda30e7106e5e533714",
"grade": true,
"grade_id": "cell-75530651c7f494f0",
"locked": true,
"points": 3,
"schema_version": 3,
"solution": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['AA', 'AAH', 'AAHED', 'AAHING', 'AAHS', 'AAL']\n",
"(10,penguin)\n",
"(9,pening)\n",
"(8,genip)\n",
"(8,unpeg)\n",
"(7,ingenu)\n",
"(7,penni)\n",
"(7,ping)\n",
"(7,pung)\n",
"(7,unpen)\n",
"(7,unpin)\n",
"(6,gip)\n",
"(6,gup)\n",
"(6,peg)\n",
"(6,pein)\n",
"(6,peni)\n",
"(6,pig)\n",
"(6,pine)\n",
"(6,pug)\n",
"(5,ennui)\n",
"(5,genu)\n",
"(5,gien)\n",
"(5,ginn)\n",
"(5,nep)\n",
"(5,nip)\n",
"(5,pen)\n",
"(5,pie)\n",
"(5,pin)\n",
"(5,piu)\n",
"(5,pun)\n",
"(4,eng)\n",
"(4,gen)\n",
"(4,gie)\n",
"(4,gin)\n",
"(4,gnu)\n",
"(4,gue)\n",
"(4,gun)\n",
"(4,neg)\n",
"(4,nine)\n",
"(4,pe)\n",
"(4,pi)\n",
"(4,up)\n",
"(3,gi)\n",
"(3,gu)\n",
"(3,inn)\n",
"(3,nie)\n",
"(3,nun)\n",
"(3,ug)\n",
"(3,uni)\n",
"(2,en)\n",
"(2,in)\n",
"(2,ne)\n",
"(2,nu)\n",
"(2,un)\n",
"Total number of words: 53\n"
]
}
],
"source": [
"\"\"\" Does not fail due to trivial mistakes and takes correct wildcard characters \"\"\"\n",
"# Autograde cell - do not erase/delete\n",
"\n",
"# does not fail due to case\n",
"!python scrabble.py \"PENguin\""
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "11e7c05d7003e6c6cb92accb4b2aaff8",
"grade": true,
"grade_id": "cell-70e47257819da62a",
"locked": true,
"points": 0,
"schema_version": 3,
"solution": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['AA', 'AAH', 'AAHED', 'AAHING', 'AAHS', 'AAL']\n",
"(21,ziz)\n",
"(19,jiz)\n",
"(19,zex)\n",
"(18,jinx)\n",
"(18,phenix)\n",
"(18,phiz)\n",
"(18,zinke)\n",
"(17,benzin)\n",
"(17,hizen)\n",
"(17,pized)\n",
"(17,pyxie)\n",
"(17,winze)\n",
"(17,wizen)\n",
"(16,equip)\n",
"(16,mizen)\n",
"(16,peize)\n",
"(16,piezo)\n",
"(16,pique)\n",
"(16,pixy)\n",
"(16,pizes)\n",
"(16,prize)\n",
"(16,unzip)\n",
"(16,zek)\n",
"(16,zineb)\n",
"(15,bize)\n",
"(15,dizen)\n",
"(15,enfix)\n",
"(15,enzian)\n",
"(15,fez)\n",
"(15,fiz)\n",
"(15,jenny)\n",
"(15,jimp)\n",
"(15,jink)\n",
"(15,meninx)\n",
"(15,pinkey)\n",
"(15,pize)\n",
"(15,prez)\n",
"(15,pyx)\n",
"(15,quep)\n",
"(15,quip)\n",
"(15,vixen)\n",
"(15,wiz)\n",
"(15,zeps)\n",
"(15,zinc)\n",
"(15,zips)\n",
"(14,azine)\n",
"(14,bez)\n",
"(14,biz)\n",
"(14,jive)\n",
"(14,kex)\n",
"(14,kippen)\n",
"(14,mixen)\n",
"(14,miz)\n",
"(14,nixy)\n",
"(14,pikey)\n",
"(14,pinky)\n",
"(14,pixel)\n",
"(14,pixes)\n",
"(14,pixie)\n",
"(14,poz)\n",
"(14,punji)\n",
"(14,quine)\n",
"(14,xenic)\n",
"(14,zap)\n",
"(14,zeins)\n",
"(14,zep)\n",
"(14,zines)\n",
"(14,zing)\n",
"(14,zip)\n",
"(13,apex)\n",
"(13,benj)\n",
"(13,djinn)\n",
"(13,enjoin)\n",
"(13,exing)\n",
"(13,expo)\n",
"(13,fix)\n",
"(13,hex)\n",
"(13,hippen)\n",
"(13,ibex)\n",
"(13,index)\n",
"(13,jape)\n",
"(13,jeep)\n",
"(13,jew)\n",
"(13,jibe)\n",
"(13,jinnee)\n",
"(13,jupe)\n",
"(13,kype)\n",
"(13,minx)\n",
"(13,naze)\n",
"(13,nazi)\n",
"(13,nixed)\n",
"(13,pfennig)\n",
"(13,phenic)\n",
"(13,pinked)\n",
"(13,pinkens)\n",
"(13,plex)\n",
"(13,prex)\n",
"(13,quin)\n",
"(13,size)\n",
"(13,vex)\n",
"(13,wex)\n",
"(13,wippen)\n",
"(13,yex)\n",
"(13,zed)\n",
"(13,zein)\n",
"(13,zig)\n",
"(13,zine)\n",
"(13,zins)\n",
"(13,zite)\n",
"(13,zone)\n",
"(12,annex)\n",
"(12,djin)\n",
"(12,exine)\n",
"(12,hype)\n",
"(12,jap)\n",
"(12,jedi)\n",
"(12,jib)\n",
"(12,jinne)\n",
"(12,jinni)\n",
"(12,jinns)\n",
"(12,kemp)\n",
"(12,kike)\n",
"(12,kink)\n",
"(12,kipp)\n",
"(12,knife)\n",
"(12,knive)\n",
"(12,lez)\n",
"(12,mix)\n",
"(12,napkin)\n",
"(12,ninja)\n",
"(12,nippy)\n",
"(12,nixer)\n",
"(12,nixes)\n",
"(12,nixie)\n",
"(12,pax)\n",
"(12,peck)\n",
"(12,pekins)\n",
"(12,perkin)\n",
"(12,phew)\n",
"(12,pick)\n",
"(12,piked)\n",
"(12,pinch)\n",
"(12,pinken)\n",
"(12,pinker)\n",
"(12,pinkie)\n",
"(12,pix)\n",
"(12,pox)\n",
"(12,punkie)\n",
"(12,punkin)\n",
"(12,pyeing)\n",
"(12,pyning)\n",
"(12,qis)\n",
"(12,rez)\n",
"(12,riz)\n",
"(12,sez)\n",
"(12,spinney)\n",
"(12,whip)\n",
"(12,xenia)\n",
"(12,xenon)\n",
"(12,zea)\n",
"(12,zee)\n",
"(12,zel)\n",
"(12,zin)\n",
"(12,zit)\n",
"(11,bicep)\n",
"(11,chip)\n",
"(11,dex)\n",
"(11,exit)\n",
"(11,exon)\n",
"(11,fenny)\n",
"(11,fike)\n",
"(11,fink)\n",
"(11,finny)\n",
"(11,hemp)\n",
"(11,henny)\n",
"(11,hike)\n",
"(11,hinny)\n",
"(11,hyp)\n",
"(11,ilex)\n",
"(11,impend)\n",
"(11,inky)\n",
"(11,jane)\n",
"(11,jann)\n",
"(11,jean)\n",
"(11,jeon)\n",
"(11,jig)\n",
"(11,jinn)\n",
"(11,jins)\n",
"(11,join)\n",
"(11,kepis)\n",
"(11,kief)\n",
"(11,kipes)\n",
"(11,knew)\n",
"(11,kyne)\n",
"(11,minke)\n",
"(11,next)\n",
"(11,nipped)\n",
"(11,nixe)\n",
"(11,oxen)\n",
"(11,pech)\n",
"(11,pekan)\n",
"(11,pekin)\n",
"(11,pending)\n",
"(11,penks)\n",
"(11,perfin)\n",
"(11,pigpen)\n",
"(11,piker)\n",
"(11,pikes)\n",
"(11,pinbone)\n",
"(11,pinery)\n",
"(11,pinko)\n",
"(11,pinks)\n",
"(11,pinnace)\n",
"(11,pinyin)\n",
"(11,pinyon)\n",
"(11,pioney)\n",
"(11,pipy)\n",
"(11,plink)\n",
"(11,pokie)\n",
"(11,pownie)\n",
"(11,prink)\n",
"(11,pyic)\n",
"(11,pyned)\n",
"(11,qi)\n",
"(11,spike)\n",
"(11,spink)\n",
"(11,spinny)\n",
"(11,veiny)\n",
"(11,vinew)\n",
"(11,wenny)\n",
"(11,whine)\n",
"(11,wimp)\n",
"(11,winey)\n",
"(11,wink)\n",
"(11,wiped)\n",
"(11,yike)\n",
"(11,ympe)\n",
"(11,za)\n",
"(11,zo)\n",
"(10,apneic)\n",
"(10,axe)\n",
"(10,benny)\n",
"(10,bike)\n",
"(10,bink)\n",
"(10,binmen)\n",
"(10,biped)\n",
"(10,chine)\n",
"(10,dynein)\n",
"(10,eking)\n",
"(10,enlink)\n",
"(10,envy)\n",
"(10,enwind)\n",
"(10,ewk)\n",
"(10,exo)\n",
"(10,fief)\n",
"(10,fife)\n",
"(10,finned)\n",
"(10,five)\n",
"(10,hemin)\n",
"(10,hewn)\n",
"(10,hive)\n",
"(10,hyen)\n",
"(10,imped)\n",
"(10,impone)\n",
"(10,inbye)\n",
"(10,incept)\n",
"(10,inked)\n",
"(10,jai)\n",
"(10,jee)\n",
"(10,jet)\n",
"(10,jeu)\n",
"(10,jin)\n",
"(10,joe)\n",
"(10,jun)\n",
"(10,keep)\n",
"(10,kef)\n",
"(10,kelp)\n",
"(10,kepi)\n",
"(10,keps)\n",
"(10,kept)\n",
"(10,key)\n",
"(10,khi)\n",
"(10,kibe)\n",
"(10,kif)\n",
"(10,kilp)\n",
"(10,kinone)\n",
"(10,kipe)\n",
"(10,kips)\n",
"(10,knap)\n",
"(10,knop)\n",
"(10,kye)\n",
"(10,lex)\n",
"(10,lippen)\n",
"(10,meiny)\n",
"(10,mike)\n",
"(10,mink)\n",
"(10,minny)\n",
"(10,mispen)\n",
"(10,nappie)\n",
"(10,neaping)\n",
"(10,neck)\n",
"(10,newing)\n",
"(10,niche)\n",
"(10,nick)\n",
"(10,niff)\n",
"(10,nipper)\n",
"(10,nipple)\n",
"(10,nix)\n",
"(10,nox)\n",
"(10,opening)\n",
"(10,paik)\n",
"(10,paven)\n",
"(10,pavin)\n",
"(10,peak)\n",
"(10,peaning)\n",
"(10,pectin)\n",
"(10,peek)\n",
"(10,peening)\n",
"(10,pegh)\n",
"(10,peinct)\n",
"(10,peining)\n",
"(10,peke)\n",
"(10,pencil)\n",
"(10,penguin)\n",
"(10,penk)\n",
"(10,penman)\n",
"(10,penmen)\n",
"(10,pennied)\n",
"(10,penning)\n",
"(10,penny)\n",
"(10,peony)\n",
"(10,pepino)\n",
"(10,pepsin)\n",
"(10,perk)\n",
"(10,pewit)\n",
"(10,phene)\n",
"(10,pheon)\n",
"(10,phone)\n",
"(10,picene)\n",
"(10,picine)\n",
"(10,piecen)\n",
"(10,pieman)\n",
"(10,piemen)\n",
"(10,piety)\n",
"(10,pika)\n",
"(10,pike)\n",
"(10,piki)\n",
"(10,piment)\n",
"(10,pimp)\n",
"(10,pincer)\n",
"(10,piney)\n",
"(10,pinged)\n",
"(10,pink)\n",
"(10,pinnoed)\n",
"(10,pinny)\n",
"(10,piony)\n",
"(10,pioye)\n",
"(10,piped)\n",
"(10,pitmen)\n",
"(10,poke)\n",
"(10,poney)\n",
"(10,ponk)\n",
"(10,powin)\n",
"(10,preif)\n",
"(10,prief)\n",
"(10,prince)\n",
"(10,puke)\n",
"(10,punk)\n",
"(10,punny)\n",
"(10,pyins)\n",
"(10,pynes)\n",
"(10,rex)\n",
"(10,sex)\n",
"(10,six)\n",
"(10,skep)\n",
"(10,skip)\n",
"(10,snipy)\n",
"(10,spek)\n",
"(10,spik)\n",
"(10,spiny)\n",
"(10,swipe)\n",
"(10,tex)\n",
"(10,tix)\n",
"(10,unhip)\n",
"(10,view)\n",
"(10,vimen)\n",
"(10,viny)\n",
"(10,viper)\n",
"(10,vive)\n",
"(10,when)\n",
"(10,whin)\n",
"(10,wife)\n",
"(10,wince)\n",
"(10,winned)\n",
"(10,winy)\n",
"(10,wiper)\n",
"(10,wipes)\n",
"(10,wive)\n",
"(10,wynn)\n",
"(10,xis)\n",
"(10,yince)\n",
"(10,yipes)\n",
"(9,ax)\n",
"(9,benign)\n",
"(9,binned)\n",
"(9,chin)\n",
"(9,cive)\n",
"(9,clipe)\n",
"(9,copen)\n",
"(9,cripe)\n",
"(9,dike)\n",
"(9,dimp)\n",
"(9,dink)\n",
"(9,dipnet)\n",
"(9,dwine)\n",
"(9,eff)\n",
"(9,ehing)\n",
"(9,eikon)\n",
"(9,enoki)\n",
"(9,enprint)\n",
"(9,epha)\n",
"(9,epics)\n",
"(9,epigon)\n",
"(9,espy)\n",
"(9,ex)\n",
"(9,eying)\n",
"(9,fainne)\n",
"(9,feh)\n",
"(9,feign)\n",
"(9,few)\n",
"(9,fey)\n",
"(9,fice)\n",
"(9,fiend)\n",
"(9,fined)\n",
"(9,finner)\n",
"(9,flip)\n",
"(9,genips)\n",
"(9,genny)\n",
"(9,gimp)\n",
"(9,gink)\n",
"(9,ginny)\n",
"(9,gipsen)\n",
"(9,given)\n",
"(9,gwine)\n",
"(9,gynie)\n",
"(9,gyp)\n",
"(9,heap)\n",
"(9,heh)\n",
"(9,help)\n",
"(9,hennin)\n",
"(9,heps)\n",
"(9,hept)\n",
"(9,hesp)\n",
"(9,hew)\n",
"(9,hey)\n",
"(9,hinge)\n",
"(9,hips)\n",
"(9,hipt)\n",
"(9,hope)\n",
"(9,hye)\n",
"(9,ick)\n",
"(9,iff)\n",
"(9,impel)\n",
"(9,inby)\n",
"(9,inch)\n",
"(9,indew)\n",
"(9,inker)\n",
"(9,inkle)\n",
"(9,invent)\n",
"(9,ippon)\n",
"(9,ivy)\n",
"(9,ja)\n",
"(9,jo)\n",
"(9,keb)\n",
"(9,kep)\n",
"(9,kind)\n",
"(9,kines)\n",
"(9,king)\n",
"(9,kinin)\n",
"(9,kip)\n",
"(9,koine)\n",
"(9,kop)\n",
"(9,ky)\n",
"(9,liken)\n",
"(9,lineny)\n",
"(9,linney)\n",
"(9,mening)\n",
"(9,mince)\n",
"(9,miny)\n",
"(9,naping)\n",
"(9,nappe)\n",
"(9,neigh)\n",
"(9,nempt)\n",
"(9,nimps)\n",
"(9,ninepin)\n",
"(9,ninety)\n",
"(9,nying)\n",
"(9,opined)\n",
"(9,ox)\n",
"(9,pained)\n",
"(9,pance)\n",
"(9,pangen)\n",
"(9,panic)\n",
"(9,panim)\n",
"(9,paning)\n",
"(9,panned)\n",
"(9,pannier)\n",
"(9,pantine)\n",
"(9,pave)\n",
"(9,pawn)\n",
"(9,pecan)\n",
"(9,peeing)\n",
"(9,pehs)\n",
"(9,peined)\n",
"(9,pelf)\n",
"(9,penang)\n",
"(9,pence)\n",
"(9,pening)\n",
"(9,penned)\n",
"(9,pennies)\n",
"(9,pennill)\n",
"(9,pennine)\n",
"(9,pension)\n",
"(9,perv)\n",
"(9,pews)\n",
"(9,pfui)\n",
"(9,phis)\n",
"(9,phon)\n",
"(9,piece)\n",
"(9,pieing)\n",
"(9,piends)\n",
"(9,pigeon)\n",
"(9,pily)\n",
"(9,pinang)\n",
"(9,pindan)\n",
"(9,pinder)\n",
"(9,pinenes)\n",
"(9,pinger)\n",
"(9,pingle)\n",
"(9,pining)\n",
"(9,pinnate)\n",
"(9,pinned)\n",
"(9,pinners)\n",
"(9,pinnets)\n",
"(9,pinnies)\n",
"(9,pinnule)\n",
"(9,pinones)\n",
"(9,pinup)\n",
"(9,piny)\n",
"(9,pioned)\n",
"(9,pioy)\n",
"(9,piper)\n",
"(9,pipes)\n",
"(9,pipet)\n",
"(9,pish)\n",
"(9,pith)\n",
"(9,pity)\n",
"(9,plew)\n",
"(9,ponce)\n",
"(9,ponied)\n",
"(9,pontine)\n",
"(9,pony)\n",
"(9,pown)\n",
"(9,prey)\n",
"(9,price)\n",
"(9,prime)\n",
"(9,pumie)\n",
"(9,punce)\n",
"(9,punned)\n",
"(9,punnier)\n",
"(9,puny)\n",
"(9,pyes)\n",
"(9,pyet)\n",
"(9,pyin)\n",
"(9,pyne)\n",
"(9,pyre)\n",
"(9,reink)\n",
"(9,rype)\n",
"(9,sepic)\n",
"(9,shinne)\n",
"(9,ship)\n",
"(9,skein)\n",
"(9,sniped)\n",
"(9,spew)\n",
"(9,spice)\n",
"(9,spif)\n",
"(9,spined)\n",
"(9,spinner)\n",
"(9,spinnet)\n",
"(9,spinone)\n",
"(9,spiv)\n",
"(9,sype)\n",
"(9,tempi)\n",
"(9,tenpins)\n",
"(9,type)\n",
"(9,umpie)\n",
"(9,unfine)\n",
"(9,uniped)\n",
"(9,veep)\n",
"(9,venine)\n",
"(9,venins)\n",
"(9,vibe)\n",
"(9,vice)\n",
"(9,vined)\n",
"(9,weep)\n",
"(9,wept)\n",
"(9,wey)\n",
"(9,wice)\n",
"(9,widen)\n",
"(9,wined)\n",
"(9,winge)\n",
"(9,winner)\n",
"(9,winnle)\n",
"(9,wipe)\n",
"(9,wisp)\n",
"(9,wye)\n",
"(9,wyn)\n",
"(9,xi)\n",
"(9,xu)\n",
"(9,yeh)\n",
"(9,yelp)\n",
"(9,yeps)\n",
"(9,yew)\n",
"(9,yipe)\n",
"(9,yips)\n",
"(9,yonnie)\n",
"(8,akin)\n",
"(8,alpine)\n",
"(8,aping)\n",
"(8,aspine)\n",
"(8,avine)\n",
"(8,beep)\n",
"(8,begin)\n",
"(8,being)\n",
"(8,bennis)\n",
"(8,bey)\n",
"(8,bice)\n",
"(8,binge)\n",
"(8,blip)\n",
"(8,boep)\n",
"(8,bonnie)\n",
"(8,bye)\n",
"(8,canine)\n",
"(8,cannie)\n",
"(8,cape)\n",
"(8,capi)\n",
"(8,cepe)\n",
"(8,ceps)\n",
"(8,che)\n",
"(8,chi)\n",
"(8,clip)\n",
"(8,conine)\n",
"(8,cope)\n",
"(8,defi)\n",
"(8,deif)\n",
"(8,denim)\n",
"(8,deny)\n",
"(8,dinned)\n",
"(8,dive)\n",
"(8,dyne)\n",
"(8,ech)\n",
"(8,eiks)\n",
"(8,elfin)\n",
"(8,emic)\n",
"(8,empt)\n",
"(8,encina)\n",
"(8,ending)\n",
"(8,envoi)\n",
"(8,epic)\n",
"(8,faine)\n",
"(8,fap)\n",
"(8,feint)\n",
"(8,fem)\n",
"(8,fend)\n",
"(8,fenis)\n",
"(8,fib)\n",
"(8,fient)\n",
"(8,find)\n",
"(8,finer)\n",
"(8,fines)\n",
"(8,fop)\n",
"(8,fy)\n",
"(8,genic)\n",
"(8,genip)\n",
"(8,ginned)\n",
"(8,gipon)\n",
"(8,give)\n",
"(8,gripe)\n",
"(8,hap)\n",
"(8,heid)\n",
"(8,hem)\n",
"(8,hend)\n",
"(8,henna)\n",
"(8,hep)\n",
"(8,hic)\n",
"(8,hide)\n",
"(8,hied)\n",
"(8,him)\n",
"(8,hind)\n",
"(8,hing)\n",
"(8,hip)\n",
"(8,hop)\n",
"(8,hup)\n",
"(8,ich)\n",
"(8,icy)\n",
"(8,ikan)\n",
"(8,ikon)\n",
"(8,impi)\n",
"(8,imps)\n",
"(8,inbent)\n",
"(8,incent)\n",
"(8,infer)\n",
"(8,inks)\n",
"(8,inspan)\n",
"(8,instep)\n",
"(8,kaie)\n",
"(8,kain)\n",
"(8,kane)\n",
"(8,ked)\n",
"(8,keen)\n",
"(8,keg)\n",
"(8,keir)\n",
"(8,keno)\n",
"(8,kens)\n",
"(8,kent)\n",
"(8,kern)\n",
"(8,kid)\n",
"(8,kier)\n",
"(8,kiln)\n",
"(8,kina)\n",
"(8,kine)\n",
"(8,kino)\n",
"(8,kins)\n",
"(8,kirn)\n",
"(8,kite)\n",
"(8,knee)\n",
"(8,knit)\n",
"(8,kune)\n",
"(8,lepid)\n",
"(8,leptin)\n",
"(8,levin)\n",
"(8,like)\n",
"(8,limp)\n",
"(8,lineup)\n",
"(8,liney)\n",
"(8,link)\n",
"(8,linny)\n",
"(8,liven)\n",
"(8,loipen)\n",
"(8,lupine)\n",
"(8,mew)\n",
"(8,mice)\n",
"(8,mime)\n",
"(8,mined)\n",
"(8,minge)\n",
"(8,minnie)\n",
"(8,mips)\n",
"(8,mope)\n",
"(8,naevi)\n",
"(8,naik)\n",
"(8,naive)\n",
"(8,naped)\n",
"(8,neanic)\n",
"(8,neifs)\n",
"(8,neive)\n",
"(8,neks)\n",
"(8,nepits)\n",
"(8,nerk)\n",
"(8,neuk)\n",
"(8,newie)\n",
"(8,niefs)\n",
"(8,nieve)\n",
"(8,nifes)\n",
"(8,nigh)\n",
"(8,nimb)\n",
"(8,ninny)\n",
"(8,ninth)\n",
"(8,nipter)\n",
"(8,nuke)\n",
"(8,nyed)\n",
"(8,oink)\n",
"(8,opines)\n",
"(8,oping)\n",
"(8,orpine)\n",
"(8,ovine)\n",
"(8,pace)\n",
"(8,pah)\n",
"(8,paned)\n",
"(8,panier)\n",
"(8,panini)\n",
"(8,panino)\n",
"(8,panner)\n",
"(8,pannes)\n",
"(8,pantie)\n",
"(8,pape)\n",
"(8,patine)\n",
"(8,pav)\n",
"(8,paw)\n",
"(8,pay)\n",
"(8,peba)\n",
"(8,pecs)\n",
"(8,peep)\n",
"(8,peh)\n",
"(8,pends)\n",
"(8,pendu)\n",
"(8,pened)\n",
"(8,pengo)\n",
"(8,penial)\n",
"(8,penies)\n",
"(8,penile)\n",
"(8,penill)\n",
"(8,pennae)\n",
"(8,pennal)\n",
"(8,penner)\n",
"(8,pennes)\n",
"(8,pennia)\n",
"(8,pennis)\n",
"(8,pennon)\n",
"(8,pensil)\n",
"(8,pepo)\n",
"(8,peps)\n",
"(8,perm)\n",
"(8,pernio)\n",
"(8,perp)\n",
"(8,pew)\n",
"(8,phi)\n",
"(8,pho)\n",
"(8,pht)\n",
"(8,pica)\n",
"(8,pice)\n",
"(8,pics)\n",
"(8,piend)\n",
"(8,piing)\n",
"(8,piled)\n",
"(8,pima)\n",
"(8,pineal)\n",
"(8,pined)\n",
"(8,pinene)\n",
"(8,pineta)\n",
"(8,pingo)\n",
"(8,pings)\n",
"(8,pinier)\n",
"(8,pinies)\n",
"(8,pinion)\n",
"(8,pinite)\n",
"(8,pinnae)\n",
"(8,pinnal)\n",
"(8,pinnas)\n",
"(8,pinner)\n",
"(8,pinnet)\n",
"(8,pinnie)\n",
"(8,pinole)\n",
"(8,pinons)\n",
"(8,pintle)\n",
"(8,pioner)\n",
"(8,pipa)\n",
"(8,pipe)\n",
"(8,pipi)\n",
"(8,pips)\n",
"(8,pirnie)\n",
"(8,pitten)\n",
"(8,pium)\n",
"(8,pleb)\n",
"(8,plied)\n",
"(8,plim)\n",
"(8,pling)\n",
"(8,ply)\n",
"(8,poem)\n",
"(8,poep)\n",
"(8,poh)\n",
"(8,poind)\n",
"(8,pointe)\n",
"(8,pome)\n",
"(8,ponent)\n",
"(8,ponies)\n",
"(8,pontie)\n",
"(8,pope)\n",
"(8,pow)\n",
"(8,prem)\n",
"(8,prep)\n",
"(8,pride)\n",
"(8,pried)\n",
"(8,prim)\n",
"(8,proine)\n",
"(8,pruine)\n",
"(8,pry)\n",
"(8,pterin)\n",
"(8,pube)\n",
"(8,puce)\n",
"(8,puh)\n",
"(8,puisne)\n",
"(8,punier)\n",
"(8,punner)\n",
"(8,punnet)\n",
"(8,purine)\n",
"(8,puy)\n",
"(8,pya)\n",
"(8,pye)\n",
"(8,rapine)\n",
"(8,redip)\n",
"(8,reik)\n",
"(8,renk)\n",
"(8,repine)\n",
"(8,repins)\n",
"(8,repp)\n",
"(8,rewin)\n",
"(8,rhine)\n",
"(8,rink)\n",
"(8,riped)\n",
"(8,ripens)\n",
"(8,ripp)\n",
"(8,riven)\n",
"(8,seik)\n",
"(8,sewin)\n",
"(8,shine)\n",
"(8,sike)\n",
"(8,simp)\n",
"(8,sinew)\n",
"(8,sink)\n",
"(8,siped)\n",
"(8,sken)\n",
"(8,skin)\n",
"(8,sniper)\n",
"(8,snipes)\n",
"(8,spec)\n",
"(8,spend)\n",
"(8,spic)\n",
"(8,spide)\n",
"(8,spied)\n",
"(8,spim)\n",
"(8,spinae)\n",
"(8,spinel)\n",
"(8,spines)\n",
"(8,spinet)\n",
"(8,spline)\n",
"(8,spy)\n",
"(8,supine)\n",
"(8,swine)\n",
"(8,temp)\n",
"(8,tenny)\n",
"(8,tenpin)\n",
"(8,tepid)\n",
"(8,thein)\n",
"(8,thine)\n",
"(8,tiepin)\n",
"(8,tike)\n",
"(8,tink)\n",
"(8,tinmen)\n",
"(8,tinny)\n",
"(8,twine)\n",
"(8,twp)\n",
"(8,unopen)\n",
"(8,unpeg)\n",
"(8,unpens)\n",
"(8,unpent)\n",
"(8,unpile)\n",
"(8,unpins)\n",
"(8,unripe)\n",
"(8,upend)\n",
"(8,veins)\n",
"(8,vend)\n",
"(8,venin)\n",
"(8,vide)\n",
"(8,vied)\n",
"(8,vim)\n",
"(8,viner)\n",
"(8,vines)\n",
"(8,visne)\n",
"(8,wap)\n",
"(8,web)\n",
"(8,weid)\n",
"(8,wem)\n",
"(8,wend)\n",
"(8,wide)\n",
"(8,wind)\n",
"(8,wines)\n",
"(8,wing)\n",
"(8,winna)\n",
"(8,winns)\n",
"(8,wop)\n",
"(8,yap)\n",
"(8,yep)\n",
"(8,yip)\n",
"(8,yup)\n",
"(7,ake)\n",
"(7,amine)\n",
"(7,amp)\n",
"(7,anew)\n",
"(7,anime)\n",
"(7,aped)\n",
"(7,apian)\n",
"(7,apnea)\n",
"(7,app)\n",
"(7,arpen)\n",
"(7,aspen)\n",
"(7,ayin)\n",
"(7,bap)\n",
"(7,bend)\n",
"(7,benis)\n",
"(7,benne)\n",
"(7,benni)\n",
"(7,bib)\n",
"(7,bide)\n",
"(7,bind)\n",
"(7,biner)\n",
"(7,bines)\n",
"(7,bing)\n",
"(7,bonie)\n",
"(7,bonne)\n",
"(7,bop)\n",
"(7,brine)\n",
"(7,by)\n",
"(7,cap)\n",
"(7,cedi)\n",
"(7,cep)\n",
"(7,ch)\n",
"(7,cide)\n",
"(7,cines)\n",
"(7,cline)\n",
"(7,conin)\n",
"(7,conne)\n",
"(7,cop)\n",
"(7,crine)\n",
"(7,cunei)\n",
"(7,cup)\n",
"(7,deep)\n",
"(7,def)\n",
"(7,deign)\n",
"(7,dentin)\n",
"(7,dev)\n",
"(7,dew)\n",
"(7,dey)\n",
"(7,dice)\n",
"(7,dieb)\n",
"(7,dif)\n",
"(7,dime)\n",
"(7,dined)\n",
"(7,dinge)\n",
"(7,dinner)\n",
"(7,dinnle)\n",
"(7,dips)\n",
"(7,dipt)\n",
"(7,div)\n",
"(7,dope)\n",
"(7,drip)\n",
"(7,dupe)\n",
"(7,dye)\n",
"(7,eaning)\n",
"(7,ebb)\n",
"(7,edh)\n",
"(7,eek)\n",
"(7,eevn)\n",
"(7,eik)\n",
"(7,eish)\n",
"(7,eke)\n",
"(7,elhi)\n",
"(7,elk)\n",
"(7,endrin)\n",
"(7,enew)\n",
"(7,engine)\n",
"(7,eniac)\n",
"(7,enow)\n",
"(7,enring)\n",
"(7,ensign)\n",
"(7,enuf)\n",
"(7,epris)\n",
"(7,erk)\n",
"(7,erning)\n",
"(7,euk)\n",
"(7,even)\n",
"(7,evil)\n",
"(7,eyen)\n",
"(7,eyne)\n",
"(7,fain)\n",
"(7,fane)\n",
"(7,fed)\n",
"(7,feen)\n",
"(7,feg)\n",
"(7,feis)\n",
"(7,feni)\n",
"(7,fens)\n",
"(7,fent)\n",
"(7,fern)\n",
"(7,fid)\n",
"(7,fier)\n",
"(7,fig)\n",
"(7,file)\n",
"(7,fine)\n",
"(7,fini)\n",
"(7,fino)\n",
"(7,fins)\n",
"(7,fire)\n",
"(7,firn)\n",
"(7,foen)\n",
"(7,foin)\n",
"(7,fone)\n",
"(7,gape)\n",
"(7,geep)\n",
"(7,gey)\n",
"(7,ghi)\n",
"(7,gibe)\n",
"(7,gif)\n",
"(7,ginge)\n",
"(7,ginnel)\n",
"(7,ginner)\n",
"(7,gips)\n",
"(7,grip)\n",
"(7,haen)\n",
"(7,hain)\n",
"(7,heil)\n",
"(7,heir)\n",
"(7,hens)\n",
"(7,hent)\n",
"(7,hern)\n",
"(7,hid)\n",
"(7,hies)\n",
"(7,hins)\n",
"(7,hint)\n",
"(7,hire)\n",
"(7,hisn)\n",
"(7,hm)\n",
"(7,hone)\n",
"(7,iced)\n",
"(7,idem)\n",
"(7,ilk)\n",
"(7,imine)\n",
"(7,imp)\n",
"(7,inapt)\n",
"(7,incle)\n",
"(7,indene)\n",
"(7,indent)\n",
"(7,inept)\n",
"(7,inerm)\n",
"(7,info)\n",
"(7,ingenu)\n",
"(7,ingine)\n",
"(7,ink)\n",
"(7,inly)\n",
"(7,innage)\n",
"(7,input)\n",
"(7,intend)\n",
"(7,irk)\n",
"(7,kae)\n",
"(7,kai)\n",
"(7,kea)\n",
"(7,ken)\n",
"(7,ket)\n",
"(7,kin)\n",
"(7,kir)\n",
"(7,kis)\n",
"(7,kit)\n",
"(7,koi)\n",
"(7,kon)\n",
"(7,kue)\n",
"(7,lapin)\n",
"(7,lek)\n",
"(7,lief)\n",
"(7,life)\n",
"(7,limen)\n",
"(7,linden)\n",
"(7,linned)\n",
"(7,liny)\n",
"(7,lipin)\n",
"(7,live)\n",
"(7,loipe)\n",
"(7,lupin)\n",
"(7,lwei)\n",
"(7,lyne)\n",
"(7,map)\n",
"(7,meins)\n",
"(7,meint)\n",
"(7,mem)\n",
"(7,mend)\n",
"(7,meng)\n",
"(7,mib)\n",
"(7,mic)\n",
"(7,miens)\n",
"(7,mim)\n",
"(7,minae)\n",
"(7,mind)\n",
"(7,miner)\n",
"(7,mines)\n",
"(7,ming)\n",
"(7,monie)\n",
"(7,mop)\n",
"(7,my)\n",
"(7,naif)\n",
"(7,nance)\n",
"(7,napes)\n",
"(7,nave)\n",
"(7,neaps)\n",
"(7,neeps)\n",
"(7,nefs)\n",
"(7,neif)\n",
"(7,nek)\n",
"(7,nemns)\n",
"(7,neper)\n",
"(7,nepit)\n",
"(7,nesh)\n",
"(7,netop)\n",
"(7,neve)\n",
"(7,nevi)\n",
"(7,news)\n",
"(7,newt)\n",
"(7,nicer)\n",
"(7,nided)\n",
"(7,niece)\n",
"(7,nief)\n",
"(7,nife)\n",
"(7,nipas)\n",
"(7,nish)\n",
"(7,nomen)\n",
"(7,nonce)\n",
"(7,nown)\n",
"(7,numen)\n",
"(7,nyes)\n",
"(7,oik)\n",
"(7,oke)\n",
"(7,ondine)\n",
"(7,oped)\n",
"(7,opens)\n",
"(7,opine)\n",
"(7,opsin)\n",
"(7,orpin)\n",
"(7,oven)\n",
"(7,pac)\n",
"(7,padi)\n",
"(7,paean)\n",
"(7,paeon)\n",
"(7,page)\n",
"(7,paid)\n",
"(7,pains)\n",
"(7,paint)\n",
"(7,paire)\n",
"(7,paise)\n",
"(7,pam)\n",
"(7,pand)\n",
"(7,panel)\n",
"(7,panes)\n",
"(7,pang)\n",
"(7,panne)\n",
"(7,pap)\n",
"(7,paten)\n",
"(7,patin)\n",
"(7,peag)\n",
"(7,peans)\n",
"(7,pec)\n",
"(7,peds)\n",
"(7,peed)\n",
"(7,peens)\n",
"(7,pegs)\n",
"(7,peins)\n",
"(7,peise)\n",
"(7,pelon)\n",
"(7,penal)\n",
"(7,pend)\n",
"(7,penes)\n",
"(7,penie)\n",
"(7,penis)\n",
"(7,penna)\n",
"(7,penne)\n",
"(7,penni)\n",
"(7,pents)\n",
"(7,peons)\n",
"(7,pep)\n",
"(7,perai)\n",
"(7,peril)\n",
"(7,peris)\n",
"(7,perns)\n",
"(7,petit)\n",
"(7,petti)\n",
"(7,piano)\n",
"(7,pians)\n",
"(7,pic)\n",
"(7,pied)\n",
"(7,piers)\n",
"(7,piert)\n",
"(7,pieta)\n",
"(7,piets)\n",
"(7,pigs)\n",
"(7,pilea)\n",
"(7,pilei)\n",
"(7,piler)\n",
"(7,piles)\n",
"(7,pinas)\n",
"(7,pines)\n",
"(7,ping)\n",
"(7,pinna)\n",
"(7,pinon)\n",
"(7,pinot)\n",
"(7,pinta)\n",
"(7,pinto)\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"(7,pints)\n",
"(7,pions)\n",
"(7,pip)\n",
"(7,pirns)\n",
"(7,pises)\n",
"(7,piste)\n",
"(7,piton)\n",
"(7,plain)\n",
"(7,plane)\n",
"(7,pled)\n",
"(7,plena)\n",
"(7,pleon)\n",
"(7,plier)\n",
"(7,plies)\n",
"(7,point)\n",
"(7,poise)\n",
"(7,pom)\n",
"(7,pond)\n",
"(7,pones)\n",
"(7,pong)\n",
"(7,pop)\n",
"(7,potin)\n",
"(7,preen)\n",
"(7,prent)\n",
"(7,prier)\n",
"(7,pries)\n",
"(7,prig)\n",
"(7,print)\n",
"(7,prion)\n",
"(7,prise)\n",
"(7,proin)\n",
"(7,prone)\n",
"(7,prune)\n",
"(7,psion)\n",
"(7,pub)\n",
"(7,pung)\n",
"(7,pup)\n",
"(7,purin)\n",
"(7,reif)\n",
"(7,reny)\n",
"(7,repin)\n",
"(7,rife)\n",
"(7,ripen)\n",
"(7,riper)\n",
"(7,ripes)\n",
"(7,rive)\n",
"(7,seif)\n",
"(7,sepia)\n",
"(7,sewn)\n",
"(7,shin)\n",
"(7,sik)\n",
"(7,since)\n",
"(7,sinh)\n",
"(7,sinned)\n",
"(7,sipes)\n",
"(7,ski)\n",
"(7,slipe)\n",
"(7,sneap)\n",
"(7,snipe)\n",
"(7,snips)\n",
"(7,snoep)\n",
"(7,snye)\n",
"(7,spain)\n",
"(7,spane)\n",
"(7,spean)\n",
"(7,sped)\n",
"(7,speil)\n",
"(7,speir)\n",
"(7,spent)\n",
"(7,spiel)\n",
"(7,spier)\n",
"(7,spies)\n",
"(7,spile)\n",
"(7,spina)\n",
"(7,spine)\n",
"(7,spins)\n",
"(7,spire)\n",
"(7,spite)\n",
"(7,stipe)\n",
"(7,syen)\n",
"(7,syne)\n",
"(7,tapen)\n",
"(7,then)\n",
"(7,thin)\n",
"(7,tinned)\n",
"(7,tiny)\n",
"(7,tripe)\n",
"(7,twin)\n",
"(7,tyin)\n",
"(7,tyne)\n",
"(7,uke)\n",
"(7,ump)\n",
"(7,undine)\n",
"(7,unpen)\n",
"(7,unpin)\n",
"(7,unrip)\n",
"(7,uptie)\n",
"(7,vain)\n",
"(7,vane)\n",
"(7,veg)\n",
"(7,veil)\n",
"(7,vein)\n",
"(7,vena)\n",
"(7,vent)\n",
"(7,viae)\n",
"(7,vid)\n",
"(7,vier)\n",
"(7,vies)\n",
"(7,vig)\n",
"(7,vile)\n",
"(7,vina)\n",
"(7,vine)\n",
"(7,vino)\n",
"(7,vins)\n",
"(7,vint)\n",
"(7,vire)\n",
"(7,vise)\n",
"(7,vite)\n",
"(7,vlei)\n",
"(7,wain)\n",
"(7,wane)\n",
"(7,wean)\n",
"(7,wed)\n",
"(7,ween)\n",
"(7,weil)\n",
"(7,weir)\n",
"(7,wena)\n",
"(7,wens)\n",
"(7,went)\n",
"(7,wiel)\n",
"(7,wig)\n",
"(7,wile)\n",
"(7,wine)\n",
"(7,winn)\n",
"(7,wino)\n",
"(7,wins)\n",
"(7,wire)\n",
"(7,wise)\n",
"(7,wite)\n",
"(7,wren)\n",
"(7,yean)\n",
"(7,yens)\n",
"(7,yeti)\n",
"(7,yid)\n",
"(7,yins)\n",
"(7,yite)\n",
"(7,yoni)\n",
"(6,acne)\n",
"(6,ahi)\n",
"(6,amen)\n",
"(6,amie)\n",
"(6,amin)\n",
"(6,ance)\n",
"(6,any)\n",
"(6,aper)\n",
"(6,apes)\n",
"(6,apse)\n",
"(6,ave)\n",
"(6,awe)\n",
"(6,awn)\n",
"(6,aye)\n",
"(6,bane)\n",
"(6,bani)\n",
"(6,bean)\n",
"(6,bed)\n",
"(6,been)\n",
"(6,beg)\n",
"(6,bein)\n",
"(6,bene)\n",
"(6,beni)\n",
"(6,bens)\n",
"(6,bent)\n",
"(6,bid)\n",
"(6,bien)\n",
"(6,bier)\n",
"(6,big)\n",
"(6,bile)\n",
"(6,bine)\n",
"(6,bins)\n",
"(6,bint)\n",
"(6,bise)\n",
"(6,bite)\n",
"(6,blin)\n",
"(6,bone)\n",
"(6,brei)\n",
"(6,bren)\n",
"(6,brie)\n",
"(6,brin)\n",
"(6,bunn)\n",
"(6,cain)\n",
"(6,cane)\n",
"(6,cann)\n",
"(6,ceil)\n",
"(6,cens)\n",
"(6,cent)\n",
"(6,cid)\n",
"(6,ciel)\n",
"(6,cig)\n",
"(6,cine)\n",
"(6,cion)\n",
"(6,cire)\n",
"(6,cite)\n",
"(6,coin)\n",
"(6,cone)\n",
"(6,coni)\n",
"(6,conn)\n",
"(6,daine)\n",
"(6,dap)\n",
"(6,deb)\n",
"(6,deid)\n",
"(6,denis)\n",
"(6,dib)\n",
"(6,died)\n",
"(6,diene)\n",
"(6,dim)\n",
"(6,diner)\n",
"(6,dines)\n",
"(6,ding)\n",
"(6,dinna)\n",
"(6,dip)\n",
"(6,donne)\n",
"(6,dop)\n",
"(6,dup)\n",
"(6,ebon)\n",
"(6,efs)\n",
"(6,eft)\n",
"(6,ehs)\n",
"(6,eigne)\n",
"(6,eldin)\n",
"(6,elf)\n",
"(6,emir)\n",
"(6,emit)\n",
"(6,ennog)\n",
"(6,ennuis)\n",
"(6,eonian)\n",
"(6,epee)\n",
"(6,epos)\n",
"(6,erf)\n",
"(6,eric)\n",
"(6,ering)\n",
"(6,eth)\n",
"(6,etic)\n",
"(6,eve)\n",
"(6,evo)\n",
"(6,ewe)\n",
"(6,ewt)\n",
"(6,eye)\n",
"(6,fae)\n",
"(6,fan)\n",
"(6,fee)\n",
"(6,fen)\n",
"(6,fer)\n",
"(6,fes)\n",
"(6,fet)\n",
"(6,feu)\n",
"(6,fie)\n",
"(6,fil)\n",
"(6,fin)\n",
"(6,fir)\n",
"(6,fit)\n",
"(6,foe)\n",
"(6,fon)\n",
"(6,fun)\n",
"(6,gap)\n",
"(6,gem)\n",
"(6,genie)\n",
"(6,genii)\n",
"(6,gib)\n",
"(6,gied)\n",
"(6,ging)\n",
"(6,gip)\n",
"(6,grein)\n",
"(6,gup)\n",
"(6,hae)\n",
"(6,han)\n",
"(6,hen)\n",
"(6,her)\n",
"(6,hes)\n",
"(6,het)\n",
"(6,hie)\n",
"(6,hin)\n",
"(6,his)\n",
"(6,hit)\n",
"(6,hoe)\n",
"(6,hoi)\n",
"(6,hon)\n",
"(6,hue)\n",
"(6,hui)\n",
"(6,hun)\n",
"(6,icer)\n",
"(6,ices)\n",
"(6,icon)\n",
"(6,ident)\n",
"(6,ifs)\n",
"(6,inaner)\n",
"(6,inanes)\n",
"(6,indie)\n",
"(6,indue)\n",
"(6,ingan)\n",
"(6,ingle)\n",
"(6,innate)\n",
"(6,inned)\n",
"(6,inners)\n",
"(6,insane)\n",
"(6,intent)\n",
"(6,intern)\n",
"(6,intine)\n",
"(6,intone)\n",
"(6,ionone)\n",
"(6,ish)\n",
"(6,item)\n",
"(6,iwi)\n",
"(6,ka)\n",
"(6,ki)\n",
"(6,ko)\n",
"(6,leap)\n",
"(6,leep)\n",
"(6,leps)\n",
"(6,lept)\n",
"(6,lerp)\n",
"(6,lev)\n",
"(6,lew)\n",
"(6,ley)\n",
"(6,lice)\n",
"(6,ligne)\n",
"(6,lime)\n",
"(6,limn)\n",
"(6,lined)\n",
"(6,linens)\n",
"(6,linnet)\n",
"(6,lipa)\n",
"(6,lipe)\n",
"(6,lipo)\n",
"(6,lips)\n",
"(6,lisp)\n",
"(6,lope)\n",
"(6,lye)\n",
"(6,main)\n",
"(6,mane)\n",
"(6,mani)\n",
"(6,mean)\n",
"(6,med)\n",
"(6,meg)\n",
"(6,mein)\n",
"(6,mene)\n",
"(6,meno)\n",
"(6,ment)\n",
"(6,menu)\n",
"(6,meri)\n",
"(6,mid)\n",
"(6,mien)\n",
"(6,mig)\n",
"(6,mile)\n",
"(6,mina)\n",
"(6,mine)\n",
"(6,mini)\n",
"(6,mino)\n",
"(6,mint)\n",
"(6,mire)\n",
"(6,mise)\n",
"(6,mite)\n",
"(6,mm)\n",
"(6,muni)\n",
"(6,nabe)\n",
"(6,nah)\n",
"(6,name)\n",
"(6,nannie)\n",
"(6,napa)\n",
"(6,nape)\n",
"(6,naps)\n",
"(6,narine)\n",
"(6,naw)\n",
"(6,nay)\n",
"(6,neap)\n",
"(6,nebs)\n",
"(6,neem)\n",
"(6,neep)\n",
"(6,nef)\n",
"(6,neinei)\n",
"(6,nema)\n",
"(6,nemn)\n",
"(6,neps)\n",
"(6,nerine)\n",
"(6,neum)\n",
"(6,new)\n",
"(6,nibs)\n",
"(6,nice)\n",
"(6,nides)\n",
"(6,niger)\n",
"(6,nims)\n",
"(6,nipa)\n",
"(6,nips)\n",
"(6,noh)\n",
"(6,nome)\n",
"(6,noop)\n",
"(6,nope)\n",
"(6,noup)\n",
"(6,now)\n",
"(6,noy)\n",
"(6,nth)\n",
"(6,nudie)\n",
"(6,nye)\n",
"(6,nys)\n",
"(6,olpe)\n",
"(6,omen)\n",
"(6,once)\n",
"(6,online)\n",
"(6,onned)\n",
"(6,ony)\n",
"(6,open)\n",
"(6,opes)\n",
"(6,owe)\n",
"(6,own)\n",
"(6,oye)\n",
"(6,pad)\n",
"(6,pail)\n",
"(6,pain)\n",
"(6,pair)\n",
"(6,pais)\n",
"(6,pale)\n",
"(6,pane)\n",
"(6,pans)\n",
"(6,pant)\n",
"(6,pare)\n",
"(6,pase)\n",
"(6,pate)\n",
"(6,peal)\n",
"(6,pean)\n",
"(6,pear)\n",
"(6,peas)\n",
"(6,peat)\n",
"(6,ped)\n",
"(6,peel)\n",
"(6,peen)\n",
"(6,peer)\n",
"(6,pees)\n",
"(6,peg)\n",
"(6,pein)\n",
"(6,pela)\n",
"(6,pele)\n",
"(6,pell)\n",
"(6,pelt)\n",
"(6,pene)\n",
"(6,peni)\n",
"(6,pens)\n",
"(6,pent)\n",
"(6,peon)\n",
"(6,pere)\n",
"(6,peri)\n",
"(6,pern)\n",
"(6,pert)\n",
"(6,peso)\n",
"(6,pest)\n",
"(6,pets)\n",
"(6,pial)\n",
"(6,pian)\n",
"(6,pias)\n",
"(6,pier)\n",
"(6,pies)\n",
"(6,piet)\n",
"(6,pig)\n",
"(6,pila)\n",
"(6,pile)\n",
"(6,pili)\n",
"(6,pill)\n",
"(6,pina)\n",
"(6,pine)\n",
"(6,pins)\n",
"(6,pint)\n",
"(6,pion)\n",
"(6,pirl)\n",
"(6,pirn)\n",
"(6,pirs)\n",
"(6,pise)\n",
"(6,piso)\n",
"(6,piss)\n",
"(6,pita)\n",
"(6,pits)\n",
"(6,plan)\n",
"(6,plea)\n",
"(6,plie)\n",
"(6,plue)\n",
"(6,pod)\n",
"(6,poet)\n",
"(6,pois)\n",
"(6,pole)\n",
"(6,pone)\n",
"(6,pons)\n",
"(6,pont)\n",
"(6,poon)\n",
"(6,pore)\n",
"(6,porn)\n",
"(6,pose)\n",
"(6,pote)\n",
"(6,pree)\n",
"(6,psis)\n",
"(6,ptui)\n",
"(6,pud)\n",
"(6,puer)\n",
"(6,pug)\n",
"(6,puir)\n",
"(6,pule)\n",
"(6,puli)\n",
"(6,puna)\n",
"(6,puns)\n",
"(6,punt)\n",
"(6,pure)\n",
"(6,puri)\n",
"(6,ranine)\n",
"(6,rape)\n",
"(6,reap)\n",
"(6,ref)\n",
"(6,reh)\n",
"(6,reign)\n",
"(6,renig)\n",
"(6,renins)\n",
"(6,rennin)\n",
"(6,repo)\n",
"(6,reps)\n",
"(6,rev)\n",
"(6,rew)\n",
"(6,rice)\n",
"(6,riem)\n",
"(6,rif)\n",
"(6,rime)\n",
"(6,ripe)\n",
"(6,rips)\n",
"(6,ript)\n",
"(6,risp)\n",
"(6,ronnie)\n",
"(6,rope)\n",
"(6,rye)\n",
"(6,sannie)\n",
"(6,sdein)\n",
"(6,seep)\n",
"(6,segni)\n",
"(6,semi)\n",
"(6,sengi)\n",
"(6,sennit)\n",
"(6,seps)\n",
"(6,sept)\n",
"(6,sew)\n",
"(6,sey)\n",
"(6,she)\n",
"(6,sice)\n",
"(6,sienna)\n",
"(6,sif)\n",
"(6,sined)\n",
"(6,singe)\n",
"(6,sinner)\n",
"(6,sinnet)\n",
"(6,sipe)\n",
"(6,sips)\n",
"(6,slip)\n",
"(6,snap)\n",
"(6,sneb)\n",
"(6,snib)\n",
"(6,snide)\n",
"(6,snip)\n",
"(6,sny)\n",
"(6,spae)\n",
"(6,span)\n",
"(6,spet)\n",
"(6,spie)\n",
"(6,spin)\n",
"(6,spit)\n",
"(6,spue)\n",
"(6,spun)\n",
"(6,step)\n",
"(6,supe)\n",
"(6,sye)\n",
"(6,syn)\n",
"(6,tannie)\n",
"(6,tape)\n",
"(6,tef)\n",
"(6,teind)\n",
"(6,tennis)\n",
"(6,tepa)\n",
"(6,tew)\n",
"(6,the)\n",
"(6,tice)\n",
"(6,time)\n",
"(6,tined)\n",
"(6,tinge)\n",
"(6,tinner)\n",
"(6,tinnie)\n",
"(6,tipi)\n",
"(6,tips)\n",
"(6,tipt)\n",
"(6,tope)\n",
"(6,topi)\n",
"(6,trip)\n",
"(6,tye)\n",
"(6,uey)\n",
"(6,unbe)\n",
"(6,unce)\n",
"(6,unci)\n",
"(6,unline)\n",
"(6,unrein)\n",
"(6,upon)\n",
"(6,vae)\n",
"(6,van)\n",
"(6,vee)\n",
"(6,vet)\n",
"(6,via)\n",
"(6,vie)\n",
"(6,vin)\n",
"(6,vis)\n",
"(6,voe)\n",
"(6,wae)\n",
"(6,wai)\n",
"(6,wan)\n",
"(6,wee)\n",
"(6,wen)\n",
"(6,wet)\n",
"(6,win)\n",
"(6,wis)\n",
"(6,wit)\n",
"(6,woe)\n",
"(6,won)\n",
"(6,yae)\n",
"(6,yea)\n",
"(6,yen)\n",
"(6,yes)\n",
"(6,yet)\n",
"(6,yin)\n",
"(6,yon)\n",
"(5,ace)\n",
"(5,agen)\n",
"(5,agin)\n",
"(5,ah)\n",
"(5,aide)\n",
"(5,aim)\n",
"(5,ainee)\n",
"(5,alien)\n",
"(5,aline)\n",
"(5,alp)\n",
"(5,ami)\n",
"(5,anent)\n",
"(5,anile)\n",
"(5,anion)\n",
"(5,anise)\n",
"(5,ape)\n",
"(5,apo)\n",
"(5,apt)\n",
"(5,asp)\n",
"(5,aw)\n",
"(5,ay)\n",
"(5,ban)\n",
"(5,bee)\n",
"(5,bel)\n",
"(5,ben)\n",
"(5,bes)\n",
"(5,bet)\n",
"(5,bin)\n",
"(5,bio)\n",
"(5,bis)\n",
"(5,bit)\n",
"(5,boi)\n",
"(5,bon)\n",
"(5,bun)\n",
"(5,can)\n",
"(5,cee)\n",
"(5,cel)\n",
"(5,cis)\n",
"(5,cit)\n",
"(5,con)\n",
"(5,cue)\n",
"(5,dean)\n",
"(5,deen)\n",
"(5,deg)\n",
"(5,deil)\n",
"(5,deli)\n",
"(5,dene)\n",
"(5,deni)\n",
"(5,dens)\n",
"(5,dent)\n",
"(5,dern)\n",
"(5,desi)\n",
"(5,did)\n",
"(5,diel)\n",
"(5,dies)\n",
"(5,diet)\n",
"(5,dig)\n",
"(5,dine)\n",
"(5,dino)\n",
"(5,dins)\n",
"(5,dint)\n",
"(5,dire)\n",
"(5,dite)\n",
"(5,doen)\n",
"(5,done)\n",
"(5,dune)\n",
"(5,eco)\n",
"(5,ecu)\n",
"(5,edit)\n",
"(5,ef)\n",
"(5,egg)\n",
"(5,egis)\n",
"(5,eh)\n",
"(5,eide)\n",
"(5,eild)\n",
"(5,elain)\n",
"(5,elint)\n",
"(5,elm)\n",
"(5,eloin)\n",
"(5,elsin)\n",
"(5,eme)\n",
"(5,emo)\n",
"(5,ems)\n",
"(5,emu)\n",
"(5,ends)\n",
"(5,engs)\n",
"(5,enlit)\n",
"(5,ennui)\n",
"(5,entia)\n",
"(5,eosin)\n",
"(5,ettin)\n",
"(5,fa)\n",
"(5,fe)\n",
"(5,gaen)\n",
"(5,gain)\n",
"(5,gane)\n",
"(5,gean)\n",
"(5,ged)\n",
"(5,geit)\n",
"(5,gena)\n",
"(5,gene)\n",
"(5,gens)\n",
"(5,gent)\n",
"(5,genu)\n",
"(5,gid)\n",
"(5,gien)\n",
"(5,gies)\n",
"(5,gig)\n",
"(5,ginn)\n",
"(5,gins)\n",
"(5,girn)\n",
"(5,gite)\n",
"(5,glei)\n",
"(5,glen)\n",
"(5,gone)\n",
"(5,gren)\n",
"(5,grin)\n",
"(5,ha)\n",
"(5,he)\n",
"(5,hi)\n",
"(5,ho)\n",
"(5,ice)\n",
"(5,idea)\n",
"(5,idee)\n",
"(5,ides)\n",
"(5,idle)\n",
"(5,if)\n",
"(5,igg)\n",
"(5,inane)\n",
"(5,inert)\n",
"(5,ingo)\n",
"(5,inion)\n",
"(5,inlet)\n",
"(5,inner)\n",
"(5,inrun)\n",
"(5,inset)\n",
"(5,intel)\n",
"(5,inter)\n",
"(5,inure)\n",
"(5,inurn)\n",
"(5,ired)\n",
"(5,irone)\n",
"(5,ism)\n",
"(5,isnae)\n",
"(5,lap)\n",
"(5,lend)\n",
"(5,leng)\n",
"(5,lenis)\n",
"(5,lenti)\n",
"(5,lep)\n",
"(5,liane)\n",
"(5,lib)\n",
"(5,lied)\n",
"(5,liens)\n",
"(5,lind)\n",
"(5,linen)\n",
"(5,liner)\n",
"(5,lines)\n",
"(5,ling)\n",
"(5,linin)\n",
"(5,linns)\n",
"(5,lip)\n",
"(5,lop)\n",
"(5,mae)\n",
"(5,man)\n",
"(5,mee)\n",
"(5,mel)\n",
"(5,men)\n",
"(5,mes)\n",
"(5,met)\n",
"(5,meu)\n",
"(5,mil)\n",
"(5,mir)\n",
"(5,mis)\n",
"(5,mna)\n",
"(5,moe)\n",
"(5,moi)\n",
"(5,mon)\n",
"(5,mun)\n",
"(5,nab)\n",
"(5,nam)\n",
"(5,nap)\n",
"(5,neb)\n",
"(5,neds)\n",
"(5,need)\n",
"(5,negs)\n",
"(5,neist)\n",
"(5,nelis)\n",
"(5,nenes)\n",
"(5,neons)\n",
"(5,nep)\n",
"(5,nerd)\n",
"(5,nib)\n",
"(5,nide)\n",
"(5,nidi)\n",
"(5,nids)\n",
"(5,nied)\n",
"(5,nim)\n",
"(5,nines)\n",
"(5,ninon)\n",
"(5,nip)\n",
"(5,nisei)\n",
"(5,nisse)\n",
"(5,niter)\n",
"(5,nites)\n",
"(5,niton)\n",
"(5,nitre)\n",
"(5,nob)\n",
"(5,node)\n",
"(5,nodi)\n",
"(5,noint)\n",
"(5,noise)\n",
"(5,nom)\n",
"(5,nones)\n",
"(5,nonet)\n",
"(5,nong)\n",
"(5,nonis)\n",
"(5,nub)\n",
"(5,nude)\n",
"(5,ny)\n",
"(5,obe)\n",
"(5,obi)\n",
"(5,of)\n",
"(5,oh)\n",
"(5,olein)\n",
"(5,onion)\n",
"(5,oop)\n",
"(5,ope)\n",
"(5,ops)\n",
"(5,opt)\n",
"(5,oup)\n",
"(5,ow)\n",
"(5,oy)\n",
"(5,pal)\n",
"(5,pan)\n",
"(5,par)\n",
"(5,pas)\n",
"(5,pat)\n",
"(5,pea)\n",
"(5,pee)\n",
"(5,pen)\n",
"(5,per)\n",
"(5,pes)\n",
"(5,pet)\n",
"(5,pia)\n",
"(5,pie)\n",
"(5,pin)\n",
"(5,pir)\n",
"(5,pis)\n",
"(5,pit)\n",
"(5,piu)\n",
"(5,plu)\n",
"(5,poa)\n",
"(5,poi)\n",
"(5,pol)\n",
"(5,poo)\n",
"(5,pos)\n",
"(5,pot)\n",
"(5,pre)\n",
"(5,pro)\n",
"(5,psi)\n",
"(5,pst)\n",
"(5,pul)\n",
"(5,pun)\n",
"(5,pur)\n",
"(5,pus)\n",
"(5,put)\n",
"(5,raine)\n",
"(5,rap)\n",
"(5,reb)\n",
"(5,rec)\n",
"(5,reins)\n",
"(5,rem)\n",
"(5,rend)\n",
"(5,renin)\n",
"(5,renne)\n",
"(5,rep)\n",
"(5,resin)\n",
"(5,rib)\n",
"(5,ride)\n",
"(5,rim)\n",
"(5,rind)\n",
"(5,rines)\n",
"(5,ring)\n",
"(5,rinse)\n",
"(5,rip)\n",
"(5,risen)\n",
"(5,ronin)\n",
"(5,ronne)\n",
"(5,saine)\n",
"(5,sap)\n",
"(5,sec)\n",
"(5,seine)\n",
"(5,send)\n",
"(5,senna)\n",
"(5,sensi)\n",
"(5,senti)\n",
"(5,serin)\n",
"(5,sh)\n",
"(5,sib)\n",
"(5,sic)\n",
"(5,side)\n",
"(5,siens)\n",
"(5,sient)\n",
"(5,sign)\n",
"(5,silen)\n",
"(5,sim)\n",
"(5,sind)\n",
"(5,sines)\n",
"(5,sing)\n",
"(5,sip)\n",
"(5,siren)\n",
"(5,sned)\n",
"(5,snies)\n",
"(5,snig)\n",
"(5,sonne)\n",
"(5,sop)\n",
"(5,spa)\n",
"(5,stein)\n",
"(5,sup)\n",
"(5,tap)\n",
"(5,tec)\n",
"(5,tend)\n",
"(5,tenia)\n",
"(5,tenne)\n",
"(5,tenno)\n",
"(5,tenon)\n",
"(5,tic)\n",
"(5,tide)\n",
"(5,tied)\n",
"(5,tige)\n",
"(5,tind)\n",
"(5,tinea)\n",
"(5,tines)\n",
"(5,ting)\n",
"(5,tip)\n",
"(5,tonne)\n",
"(5,top)\n",
"(5,trine)\n",
"(5,tup)\n",
"(5,uh)\n",
"(5,unde)\n",
"(5,union)\n",
"(5,unite)\n",
"(5,untie)\n",
"(5,untin)\n",
"(5,upo)\n",
"(5,ups)\n",
"(5,urine)\n",
"(5,urp)\n",
"(5,we)\n",
"(5,wo)\n",
"(5,ya)\n",
"(5,ye)\n",
"(5,yo)\n",
"(5,yu)\n",
"(4,ab)\n",
"(4,aeon)\n",
"(4,age)\n",
"(4,aid)\n",
"(4,aine)\n",
"(4,ains)\n",
"(4,airn)\n",
"(4,am)\n",
"(4,anan)\n",
"(4,and)\n",
"(4,anes)\n",
"(4,anil)\n",
"(4,anis)\n",
"(4,anna)\n",
"(4,anno)\n",
"(4,anns)\n",
"(4,anon)\n",
"(4,ante)\n",
"(4,anti)\n",
"(4,aune)\n",
"(4,ba)\n",
"(4,be)\n",
"(4,bi)\n",
"(4,bo)\n",
"(4,dae)\n",
"(4,dan)\n",
"(4,dee)\n",
"(4,dei)\n",
"(4,del)\n",
"(4,den)\n",
"(4,die)\n",
"(4,din)\n",
"(4,dis)\n",
"(4,dit)\n",
"(4,doe)\n",
"(4,don)\n",
"(4,due)\n",
"(4,dui)\n",
"(4,dun)\n",
"(4,eans)\n",
"(4,earn)\n",
"(4,eds)\n",
"(4,ego)\n",
"(4,eina)\n",
"(4,eine)\n",
"(4,elan)\n",
"(4,eld)\n",
"(4,em)\n",
"(4,end)\n",
"(4,enes)\n",
"(4,eng)\n",
"(4,enol)\n",
"(4,eoan)\n",
"(4,eons)\n",
"(4,erg)\n",
"(4,erne)\n",
"(4,erns)\n",
"(4,esne)\n",
"(4,eten)\n",
"(4,etna)\n",
"(4,etui)\n",
"(4,euoi)\n",
"(4,gae)\n",
"(4,gan)\n",
"(4,gee)\n",
"(4,gel)\n",
"(4,gen)\n",
"(4,geo)\n",
"(4,get)\n",
"(4,gie)\n",
"(4,gin)\n",
"(4,gio)\n",
"(4,gis)\n",
"(4,git)\n",
"(4,gnu)\n",
"(4,goe)\n",
"(4,gon)\n",
"(4,gue)\n",
"(4,gun)\n",
"(4,ide)\n",
"(4,ids)\n",
"(4,ilea)\n",
"(4,inia)\n",
"(4,inns)\n",
"(4,inro)\n",
"(4,inti)\n",
"(4,into)\n",
"(4,ions)\n",
"(4,ires)\n",
"(4,iron)\n",
"(4,isle)\n",
"(4,isna)\n",
"(4,iure)\n",
"(4,lain)\n",
"(4,lane)\n",
"(4,lean)\n",
"(4,led)\n",
"(4,leg)\n",
"(4,leir)\n",
"(4,leis)\n",
"(4,leno)\n",
"(4,lens)\n",
"(4,lent)\n",
"(4,lid)\n",
"(4,lien)\n",
"(4,lier)\n",
"(4,lies)\n",
"(4,lieu)\n",
"(4,lig)\n",
"(4,line)\n",
"(4,linn)\n",
"(4,lino)\n",
"(4,lins)\n",
"(4,lint)\n",
"(4,lion)\n",
"(4,lire)\n",
"(4,lite)\n",
"(4,loin)\n",
"(4,lone)\n",
"(4,lune)\n",
"(4,ma)\n",
"(4,me)\n",
"(4,mi)\n",
"(4,mo)\n",
"(4,mu)\n",
"(4,naan)\n",
"(4,nag)\n",
"(4,nail)\n",
"(4,nain)\n",
"(4,nana)\n",
"(4,nane)\n",
"(4,nans)\n",
"(4,naoi)\n",
"(4,nare)\n",
"(4,neal)\n",
"(4,near)\n",
"(4,neat)\n",
"(4,ned)\n",
"(4,neg)\n",
"(4,nene)\n",
"(4,neon)\n",
"(4,ness)\n",
"(4,nest)\n",
"(4,nete)\n",
"(4,nets)\n",
"(4,nett)\n",
"(4,nid)\n",
"(4,nies)\n",
"(4,nill)\n",
"(4,nils)\n",
"(4,nine)\n",
"(4,nirl)\n",
"(4,nisi)\n",
"(4,nite)\n",
"(4,nits)\n",
"(4,nod)\n",
"(4,noel)\n",
"(4,noes)\n",
"(4,nog)\n",
"(4,noil)\n",
"(4,noir)\n",
"(4,nole)\n",
"(4,nona)\n",
"(4,none)\n",
"(4,noni)\n",
"(4,noon)\n",
"(4,nori)\n",
"(4,nose)\n",
"(4,note)\n",
"(4,noun)\n",
"(4,nuns)\n",
"(4,ob)\n",
"(4,ode)\n",
"(4,oint)\n",
"(4,om)\n",
"(4,oner)\n",
"(4,ones)\n",
"(4,onie)\n",
"(4,op)\n",
"(4,pa)\n",
"(4,pe)\n",
"(4,pi)\n",
"(4,po)\n",
"(4,rain)\n",
"(4,rani)\n",
"(4,rean)\n",
"(4,red)\n",
"(4,reen)\n",
"(4,reg)\n",
"(4,rein)\n",
"(4,reis)\n",
"(4,rens)\n",
"(4,rent)\n",
"(4,rid)\n",
"(4,riel)\n",
"(4,rig)\n",
"(4,rile)\n",
"(4,rine)\n",
"(4,rins)\n",
"(4,rise)\n",
"(4,rite)\n",
"(4,roin)\n",
"(4,rone)\n",
"(4,ruin)\n",
"(4,rune)\n",
"(4,sain)\n",
"(4,sane)\n",
"(4,sean)\n",
"(4,sed)\n",
"(4,seen)\n",
"(4,seg)\n",
"(4,seil)\n",
"(4,seir)\n",
"(4,seis)\n",
"(4,sena)\n",
"(4,sene)\n",
"(4,sens)\n",
"(4,sent)\n",
"(4,sien)\n",
"(4,sies)\n",
"(4,sile)\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"(4,sine)\n",
"(4,sins)\n",
"(4,sire)\n",
"(4,site)\n",
"(4,snee)\n",
"(4,snit)\n",
"(4,sone)\n",
"(4,sten)\n",
"(4,stie)\n",
"(4,sunn)\n",
"(4,tain)\n",
"(4,tane)\n",
"(4,ted)\n",
"(4,teen)\n",
"(4,teg)\n",
"(4,teil)\n",
"(4,tene)\n",
"(4,tens)\n",
"(4,tent)\n",
"(4,tern)\n",
"(4,tid)\n",
"(4,tier)\n",
"(4,ties)\n",
"(4,tig)\n",
"(4,tile)\n",
"(4,tine)\n",
"(4,tins)\n",
"(4,tint)\n",
"(4,tire)\n",
"(4,tite)\n",
"(4,tone)\n",
"(4,trie)\n",
"(4,trin)\n",
"(4,tune)\n",
"(4,um)\n",
"(4,unai)\n",
"(4,unis)\n",
"(4,unit)\n",
"(4,up)\n",
"(3,ad)\n",
"(3,ag)\n",
"(3,aia)\n",
"(3,ail)\n",
"(3,ain)\n",
"(3,air)\n",
"(3,ais)\n",
"(3,ait)\n",
"(3,ale)\n",
"(3,ana)\n",
"(3,ane)\n",
"(3,ani)\n",
"(3,ann)\n",
"(3,ant)\n",
"(3,are)\n",
"(3,ate)\n",
"(3,aue)\n",
"(3,da)\n",
"(3,de)\n",
"(3,di)\n",
"(3,do)\n",
"(3,ean)\n",
"(3,ear)\n",
"(3,eas)\n",
"(3,eat)\n",
"(3,eau)\n",
"(3,ed)\n",
"(3,eel)\n",
"(3,een)\n",
"(3,ell)\n",
"(3,els)\n",
"(3,elt)\n",
"(3,ene)\n",
"(3,ens)\n",
"(3,eon)\n",
"(3,era)\n",
"(3,ere)\n",
"(3,ern)\n",
"(3,err)\n",
"(3,ers)\n",
"(3,ess)\n",
"(3,est)\n",
"(3,eta)\n",
"(3,gi)\n",
"(3,go)\n",
"(3,gu)\n",
"(3,id)\n",
"(3,ill)\n",
"(3,inn)\n",
"(3,ins)\n",
"(3,ion)\n",
"(3,ios)\n",
"(3,ire)\n",
"(3,iso)\n",
"(3,ita)\n",
"(3,its)\n",
"(3,lea)\n",
"(3,lee)\n",
"(3,lei)\n",
"(3,les)\n",
"(3,let)\n",
"(3,leu)\n",
"(3,lie)\n",
"(3,lin)\n",
"(3,lis)\n",
"(3,lit)\n",
"(3,nae)\n",
"(3,nan)\n",
"(3,nas)\n",
"(3,nat)\n",
"(3,nee)\n",
"(3,net)\n",
"(3,nie)\n",
"(3,nil)\n",
"(3,nis)\n",
"(3,nit)\n",
"(3,non)\n",
"(3,noo)\n",
"(3,nor)\n",
"(3,nos)\n",
"(3,not)\n",
"(3,nun)\n",
"(3,nur)\n",
"(3,nus)\n",
"(3,nut)\n",
"(3,od)\n",
"(3,oes)\n",
"(3,oil)\n",
"(3,ole)\n",
"(3,one)\n",
"(3,ono)\n",
"(3,ons)\n",
"(3,oon)\n",
"(3,ore)\n",
"(3,ose)\n",
"(3,rai)\n",
"(3,ran)\n",
"(3,ree)\n",
"(3,rei)\n",
"(3,ren)\n",
"(3,reo)\n",
"(3,res)\n",
"(3,ret)\n",
"(3,ria)\n",
"(3,rin)\n",
"(3,rit)\n",
"(3,roe)\n",
"(3,rue)\n",
"(3,run)\n",
"(3,sae)\n",
"(3,sai)\n",
"(3,san)\n",
"(3,sea)\n",
"(3,see)\n",
"(3,sei)\n",
"(3,sel)\n",
"(3,sen)\n",
"(3,ser)\n",
"(3,set)\n",
"(3,sin)\n",
"(3,sir)\n",
"(3,sis)\n",
"(3,sit)\n",
"(3,son)\n",
"(3,sri)\n",
"(3,sue)\n",
"(3,sui)\n",
"(3,sun)\n",
"(3,tae)\n",
"(3,tai)\n",
"(3,tan)\n",
"(3,tea)\n",
"(3,tee)\n",
"(3,tel)\n",
"(3,ten)\n",
"(3,tes)\n",
"(3,tet)\n",
"(3,tie)\n",
"(3,til)\n",
"(3,tin)\n",
"(3,tis)\n",
"(3,tit)\n",
"(3,toe)\n",
"(3,ton)\n",
"(3,tui)\n",
"(3,tun)\n",
"(3,ug)\n",
"(3,ule)\n",
"(3,uni)\n",
"(3,uns)\n",
"(3,ure)\n",
"(3,urn)\n",
"(3,use)\n",
"(3,ute)\n",
"(2,aa)\n",
"(2,ae)\n",
"(2,ai)\n",
"(2,al)\n",
"(2,an)\n",
"(2,ar)\n",
"(2,as)\n",
"(2,at)\n",
"(2,ea)\n",
"(2,ee)\n",
"(2,el)\n",
"(2,en)\n",
"(2,er)\n",
"(2,es)\n",
"(2,et)\n",
"(2,in)\n",
"(2,io)\n",
"(2,is)\n",
"(2,it)\n",
"(2,la)\n",
"(2,li)\n",
"(2,lo)\n",
"(2,na)\n",
"(2,ne)\n",
"(2,no)\n",
"(2,nu)\n",
"(2,oe)\n",
"(2,oi)\n",
"(2,on)\n",
"(2,oo)\n",
"(2,or)\n",
"(2,os)\n",
"(2,ou)\n",
"(2,re)\n",
"(2,si)\n",
"(2,so)\n",
"(2,st)\n",
"(2,ta)\n",
"(2,te)\n",
"(2,ti)\n",
"(2,to)\n",
"(2,un)\n",
"(2,ur)\n",
"(2,us)\n",
"(2,ut)\n",
"Total number of words: 2734\n"
]
}
],
"source": [
"# Autograde cell - do not erase/delete\n",
"\n",
"# takes wildcards\n",
"\n",
"!python scrabble.py \"PEN*?in\""
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "54fc0d2e87a597d8ae6742746caff674",
"grade": true,
"grade_id": "cell-c3651635b3abebcf",
"locked": true,
"points": 20,
"schema_version": 3,
"solution": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Does your output match our expectation? False\n"
]
}
],
"source": [
"\"\"\" Produces a list of all words and scores that matches our expectations \"\"\"\n",
"# Autograde cell - do not erase/delete\n",
"\n",
"# The way windows and mac end lines is different \n",
"# - windows adds a \\r\\n to each line \n",
"# - mac/linux adds just a \\n to each line\n",
"# The autograder will detect the system platform and use that to determine the 'correct' solution\n",
"\n",
"# The code below is shown here so you know how the autograder works\n",
"# Try this block to see if your solution matches\n",
"# If your answer looks like it matches but still throws an 'autograder' error, please to double check your answer BUT \n",
"# The purpose of the assignment isn't to make your code match the autograder - if you answer is correct it will be graded so \n",
"# We will check every answer the autograder deems is incorrect\n",
"\n",
"import platform\n",
"\n",
"# test whether your output matches our expectation\n",
"cmd = ['python', 'scrabble.py', 'Penguin']\n",
"test = bytes.decode(subprocess.Popen(cmd, stdout=subprocess.PIPE).communicate()[0])\n",
"\n",
"if platform.system() == 'Windows':\n",
" solution = '(10, penguin)\\r\\n(9, pening)\\r\\n(8, genip)\\r\\n(8, unpeg)\\r\\n(7, ingenu)\\r\\n(7, penni)\\r\\n(7, ping)\\r\\n(7, pung)\\r\\n(7, unpen)\\r\\n(7, unpin)\\r\\n(6, gip)\\r\\n(6, gup)\\r\\n(6, peg)\\r\\n(6, pein)\\r\\n(6, peni)\\r\\n(6, pig)\\r\\n(6, pine)\\r\\n(6, pug)\\r\\n(5, ennui)\\r\\n(5, genu)\\r\\n(5, gien)\\r\\n(5, ginn)\\r\\n(5, nep)\\r\\n(5, nip)\\r\\n(5, pen)\\r\\n(5, pie)\\r\\n(5, pin)\\r\\n(5, piu)\\r\\n(5, pun)\\r\\n(4, eng)\\r\\n(4, gen)\\r\\n(4, gie)\\r\\n(4, gin)\\r\\n(4, gnu)\\r\\n(4, gue)\\r\\n(4, gun)\\r\\n(4, neg)\\r\\n(4, nine)\\r\\n(4, pe)\\r\\n(4, pi)\\r\\n(4, up)\\r\\n(3, gi)\\r\\n(3, gu)\\r\\n(3, inn)\\r\\n(3, nie)\\r\\n(3, nun)\\r\\n(3, ug)\\r\\n(3, uni)\\r\\n(2, en)\\r\\n(2, in)\\r\\n(2, ne)\\r\\n(2, nu)\\r\\n(2, un)\\r\\nTotal number of words: 53\\r\\n'\n",
"else:\n",
" solution = '(10, penguin)\\n(9, pening)\\n(8, genip)\\n(8, unpeg)\\n(7, ingenu)\\n(7, penni)\\n(7, ping)\\n(7, pung)\\n(7, unpen)\\n(7, unpin)\\n(6, gip)\\n(6, gup)\\n(6, peg)\\n(6, pein)\\n(6, peni)\\n(6, pig)\\n(6, pine)\\n(6, pug)\\n(5, ennui)\\n(5, genu)\\n(5, gien)\\n(5, ginn)\\n(5, nep)\\n(5, nip)\\n(5, pen)\\n(5, pie)\\n(5, pin)\\n(5, piu)\\n(5, pun)\\n(4, eng)\\n(4, gen)\\n(4, gie)\\n(4, gin)\\n(4, gnu)\\n(4, gue)\\n(4, gun)\\n(4, neg)\\n(4, nine)\\n(4, pe)\\n(4, pi)\\n(4, up)\\n(3, gi)\\n(3, gu)\\n(3, inn)\\n(3, nie)\\n(3, nun)\\n(3, ug)\\n(3, uni)\\n(2, en)\\n(2, in)\\n(2, ne)\\n(2, nu)\\n(2, un)\\nTotal number of words: 53\\n'\n",
"\n",
"print(\"\\nDoes your output match our expectation?\", test == solution)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "b1747adb3d07ac69c556763489095a80",
"grade": true,
"grade_id": "cell-ceab3d4433043319",
"locked": true,
"points": 10,
"schema_version": 3,
"solution": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Total time was 0.8115572929382324 seconds\n"
]
},
{
"ename": "NameError",
"evalue": "name 'assert_less' is not defined",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32mC:\\Users\\DARSHA~1\\AppData\\Local\\Temp/ipykernel_4788/3983397895.py\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 11\u001b[0m \u001b[0mtot_time\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mtime\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtime\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m-\u001b[0m \u001b[0mstart\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 12\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Total time was {} seconds'\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtot_time\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---> 13\u001b[1;33m \u001b[0massert_less\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtot_time\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m30\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[1;31mNameError\u001b[0m: name 'assert_less' is not defined"
]
}
],
"source": [
"\"\"\" The code should run in less than 30 seconds \"\"\"\n",
"# Autograde cell - do not erase/delete\n",
"\n",
"import time\n",
"start = time.time()\n",
"\n",
"#test the code in the command line\n",
"cmd = ['python', 'scrabble.py', 'PENGU*?']\n",
"out = bytes.decode(subprocess.Popen(cmd, stdout=subprocess.PIPE).communicate()[0])\n",
"\n",
"tot_time = time.time() - start\n",
"print('Total time was {} seconds'.format(tot_time))\n",
"assert_less(tot_time, 30)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "a4788c3f51e2adb0188a2fc81ee9d738",
"grade": true,
"grade_id": "cell-7c027ce8309adb3d",
"locked": true,
"points": 3,
"schema_version": 3,
"solution": false
}
},
"outputs": [],
"source": [
"# Autograding test"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "871b8f9a784652d2ea69be1d72776e66",
"grade": true,
"grade_id": "cell-50add00e9627b5ac",
"locked": true,
"points": 3,
"schema_version": 3,
"solution": false
}
},
"outputs": [],
"source": [
"# Autograding test"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "f2d8accae95ddc72bbf0d48980b4173f",
"grade": true,
"grade_id": "cell-bab1478c7cd4a7f2",
"locked": true,
"points": 3,
"schema_version": 3,
"solution": false
}
},
"outputs": [],
"source": [
"# Autograding test"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "79a0c91202e624c4f7f6d067738d6826",
"grade": true,
"grade_id": "cell-bb7a872eda80e6a5",
"locked": true,
"points": 10,
"schema_version": 3,
"solution": false
}
},
"outputs": [],
"source": [
"# Autograding test"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "0a69a13b2cd09295cccc8688e3511307",
"grade": true,
"grade_id": "cell-8d2de0735f148301",
"locked": true,
"points": 15,
"schema_version": 3,
"solution": false
}
},
"outputs": [],
"source": [
"# Autograding test"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "a9ff2a5e5bee27b9195c6d4efafc1e76",
"grade": true,
"grade_id": "cell-16d4589caf032f51",
"locked": true,
"points": 15,
"schema_version": 3,
"solution": false
}
},
"outputs": [],
"source": [
"# Autograding test"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "6ac966a04ec099980e188bb6f2fb8735",
"grade": true,
"grade_id": "cell-8ab68ebfed94230a",
"locked": true,
"points": 5,
"schema_version": 3,
"solution": false,
"task": false
}
},
"outputs": [],
"source": [
"# Autograding test"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "c76f69203e3273ff9c33e21eeb671660",
"grade": true,
"grade_id": "cell-157fccf420d13535",
"locked": false,
"points": 10,
"schema_version": 3,
"solution": true
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['AA', 'AAH', 'AAHED', 'AAHING', 'AAHS', 'AAL']\n",
"(10,penguin)\n",
"(9,pening)\n",
"(8,genip)\n",
"(8,unpeg)\n",
"(7,ingenu)\n",
"(7,penni)\n",
"(7,ping)\n",
"(7,pung)\n",
"(7,unpen)\n",
"(7,unpin)\n",
"(6,gip)\n",
"(6,gup)\n",
"(6,peg)\n",
"(6,pein)\n",
"(6,peni)\n",
"(6,pig)\n",
"(6,pine)\n",
"(6,pug)\n",
"(5,ennui)\n",
"(5,genu)\n",
"(5,gien)\n",
"(5,ginn)\n",
"(5,nep)\n",
"(5,nip)\n",
"(5,pen)\n",
"(5,pie)\n",
"(5,pin)\n",
"(5,piu)\n",
"(5,pun)\n",
"(4,eng)\n",
"(4,gen)\n",
"(4,gie)\n",
"(4,gin)\n",
"(4,gnu)\n",
"(4,gue)\n",
"(4,gun)\n",
"(4,neg)\n",
"(4,nine)\n",
"(4,pe)\n",
"(4,pi)\n",
"(4,up)\n",
"(3,gi)\n",
"(3,gu)\n",
"(3,inn)\n",
"(3,nie)\n",
"(3,nun)\n",
"(3,ug)\n",
"(3,uni)\n",
"(2,en)\n",
"(2,in)\n",
"(2,ne)\n",
"(2,nu)\n",
"(2,un)\n",
"Total number of words: 53\n"
]
},
{
"ename": "NameError",
"evalue": "name 'assert_greater' is not defined",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32mC:\\Users\\DARSHA~1\\AppData\\Local\\Temp/ipykernel_4788/3898195345.py\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 11\u001b[0m \u001b[0mcmd\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m \u001b[1;34m'python'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'scrabble.py'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'PENGUIN'\u001b[0m \u001b[1;33m,\u001b[0m \u001b[1;34m'P'\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;34m'2'\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 12\u001b[0m \u001b[0mout\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mbytes\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdecode\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msubprocess\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mPopen\u001b[0m\u001b[1;33m(\u001b[0m \u001b[0mcmd\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mstdout\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0msubprocess\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mPIPE\u001b[0m \u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcommunicate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstrip\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---> 13\u001b[1;33m \u001b[0massert_greater\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mout\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[1;31mNameError\u001b[0m: name 'assert_greater' is not defined"
]
}
],
"source": [
"\"\"\"Implement extra credit call run the code here\n",
" If this cell isnt filled out - we'll assume the extra credit wasn't done\n",
" Please write a comment on how to use your extra credit syntax and any assumptions also!\n",
"\"\"\"\n",
"\n",
"# YOUR CODE HERE\n",
"# raise NotImplementedError()\n",
"!python scrabble.py PENguin P 2\n",
"\n",
"#test the code in the command line\n",
"cmd = [ 'python', 'scrabble.py', 'PENGUIN' , 'P','2']\n",
"out=bytes.decode(subprocess.Popen( cmd, stdout=subprocess.PIPE ).communicate()[0]).strip()\n",
"assert_greater(len(out), 0)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['AA', 'AAH', 'AAHED', 'AAHING', 'AAHS', 'AAL']\n",
"(14,zep)\n",
"(9,ex)\n",
"(9,kep)\n",
"(8,hep)\n",
"(8,peh)\n",
"(8,pew)\n",
"(8,pye)\n",
"(8,yep)\n",
"(7,cep)\n",
"(7,pec)\n",
"(7,pep)\n",
"(6,ped)\n",
"(6,peg)\n",
"(5,ape)\n",
"(5,ef)\n",
"(5,eh)\n",
"(5,fe)\n",
"(5,he)\n",
"(5,lep)\n",
"(5,nep)\n",
"(5,ope)\n",
"(5,pea)\n",
"(5,pee)\n",
"(5,pen)\n",
"(5,per)\n",
"(5,pes)\n",
"(5,pet)\n",
"(5,pie)\n",
"(5,pre)\n",
"(5,rep)\n",
"(5,we)\n",
"(5,ye)\n",
"(4,be)\n",
"(4,em)\n",
"(4,me)\n",
"(4,op)\n",
"(4,pa)\n",
"(4,pe)\n",
"(4,pi)\n",
"(4,po)\n",
"(4,up)\n",
"(3,de)\n",
"(3,ed)\n",
"(2,ae)\n",
"(2,ea)\n",
"(2,ee)\n",
"(2,el)\n",
"(2,en)\n",
"(2,er)\n",
"(2,es)\n",
"(2,et)\n",
"(2,ne)\n",
"(2,oe)\n",
"(2,re)\n",
"(2,te)\n",
"Total number of words: 55\n"
]
}
],
"source": [
"!python scrabble.py Pe* e 2"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "5fe2b8a31e32e1ebc9bcbfbd85dffb91",
"grade": false,
"grade_id": "cell-23671d4910b2b329",
"locked": true,
"schema_version": 3,
"solution": false
}
},
"source": [
"## If you have feedback for this homework, please submit it using the link below:\n",
"\n",
"http://goo.gl/forms/74yCiQTf6k"
]
}
],
"metadata": {
"anaconda-cloud": {},
"interpreter": {
"hash": "916dbcbb3f70747c44a77c7bcd40155683ae19c65e1c03b4aa3499c5328201f1"
},
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.9.7"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
scrabble.py
import sys
import string
import wordscore
if len(sys.argv) < 2:
print("Please provide scrabble input: python scrabble.py XXXXX")
exit(1)
rack = sys.argv[1]
rack_low = rack.lower()
with open("sowpods.txt","r") as infile:
raw_input = infile.readlines()
data = [datum.strip('\n') for datum in raw_input]
print(data[0:6])
valid_words = []
def check_words(word):
rack_letter = list(rack_low)
for letters in word:
if letters in rack_letter:
rack_letter.remove(letters)
elif '?' in rack_letter:
rack_letter.remove('?')
elif '*' in rack_letter:
rack_letter.remove('*')
else:
return False
return True
for word in data:
word_low = word.lower()
if check_words(word_low):
total = 0
total = wordscore.score_word(word_low)    
valid_words.append([total, word_low])
for data in sorted(valid_words, key=lambda k: k[0], reverse=True):
if data[0] > 0:
     print('(' + str(data[0]) + ',' + str(data[1]) + ')')
print("Total number of words:",...
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here