Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Random word generator- Python

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("\n\nPress the enter key to exit") 
like image 387
Infamouslyuseless Avatar asked Sep 16 '13 18:09

Infamouslyuseless


1 Answers

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() 
like image 183
Kyle Kelley Avatar answered Sep 18 '22 07:09

Kyle Kelley