So i’m basically working on a project where the computer takes a word from a list of words and jumbles it up for the user. there’s only one problem: I don’t want to keep having to write tons of words in the list, so i’m wondering if there’s a way to import a ton of random words so even I don’t know what it is, and then I could enjoy the game too? This is the coding of the whole program, it only has 6 words that i put in:
import random WORDS = ("python", "jumble", "easy", "difficult", "answer", "xylophone") word = random.choice(WORDS) correct = word jumble = "" while word: position = random.randrange(len(word)) jumble += word[position] word = word[:position] + word[(position + 1):] print( """ Welcome to WORD JUMBLE!!! Unscramble the leters to make a word. (press the enter key at prompt to quit) """ ) print("The jumble is:", jumble) guess = input("Your guess: ") while guess != correct and guess != "": print("Sorry, that's not it") guess = input("Your guess: ") if guess == correct: print("That's it, you guessed it!n") print("Thanks for playing") input("nnPress the enter key to exit")
Advertisement
Answer
Reading a local word list
If you’re doing this repeatedly, I would download it locally and pull from the local file. *nix users can use /usr/share/dict/words
.
Example:
word_file = "/usr/share/dict/words" WORDS = open(word_file).read().splitlines()
Pulling from a remote dictionary
If you want to pull from a remote dictionary, here are a couple of ways. The requests library makes this really easy (you’ll have to pip install requests
):
import requests word_site = "https://www.mit.edu/~ecprice/wordlist.10000" response = requests.get(word_site) WORDS = response.content.splitlines()
Alternatively, you can use the built in urllib2.
import urllib2 word_site = "https://www.mit.edu/~ecprice/wordlist.10000" response = urllib2.urlopen(word_site) txt = response.read() WORDS = txt.splitlines()