2013-09-16 2 views
18

Так что я в основном работаю над проектом, в котором компьютер берет слово из списка слов и смешает его для пользователя. есть только одна проблема: я не хочу постоянно писать тонны слов в списке, поэтому мне интересно, есть ли способ импортировать тонну случайных слов, чтобы даже я не знал, что это такое, и то я тоже мог бы наслаждаться игрой? Это кодирование всей программы, она имеет только 6 слов, которые я положил в:Случайное слово generator- Python

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") 
+1

Используйте текстовый файл слов? '/ usr/share/dict/words' является распространенной платформой nix, или есть другие словари, которые вы можете использовать ... –

+0

Возможный дубликат [Список бесплатных слов для использования программно?] (http://stackoverflow.com/questions/ 772922/free-word-list-for-use-programatically) – Bakuriu

ответ

43

Чтение локального списка слов

Если вы делаете это несколько раз, я бы загрузить его на месте и вытащить из локального файла. * Пользователи nix могут использовать /usr/share/dict/words.

Пример:

word_file = "/usr/share/dict/words" 
WORDS = open(word_file).read().splitlines() 

вытягивать из удаленного словаря

Если вы хотите, чтобы вытащить из удаленного словаря, вот несколько способов. Библиотека запросов делает это очень легко (вы должны pip install requests):

import requests 

word_site = "http://svnweb.freebsd.org/csrg/share/dict/words?view=co&content-type=text/plain" 

response = requests.get(word_site) 
WORDS = response.content.splitlines() 

В качестве альтернативы, вы можете использовать встроенный в urllib2.

import urllib2 

word_site = "http://svnweb.freebsd.org/csrg/share/dict/words?view=co&content-type=text/plain" 

response = urllib2.urlopen(word_site) 
txt = response.read() 
WORDS = txt.splitlines() 
+1

Спасибо большое, это очень помогло, я отвечу на ваш вопрос как принятый ответ, и я проголосовал :) – Infamouslyuseless

+0

Обратите внимание, что ссылка 'http://www.freebsd.org/cgi/cvsweb.cgi/src/share/dict/web2?rev=1.12;content-type=text%2Fplain 'теперь мертв ... – Eric

+0

@ Эрик - :(Угадай, мне просто нужно будет разместить список слов. –

1

Есть целый ряд файлов словарей, доступный в Интернете - если вы на Linux, много (? Все) distros поставляется с файлом/etc/dictionaries-common/words, который вы можете легко проанализировать (например, words = open('/etc/dictionaries-common/words').readlines(), например).

+0

Я нахожусь в окнах 7 – Infamouslyuseless

+0

Ну, Google говорит, что есть список слов здесь: http://www.gutenberg.org/ebooks/3201 –

+0

Можете ли вы изменить мой код , чтобы посмотреть, как это будет выглядеть, если бы я хотел все слова с этого сайта? http://www.freebsd.org/cgi/cvsweb.cgi/src/share/dict/web2?rev=1.12;content-type=text%2Fplain – Infamouslyuseless

0

получить слова онлайн

>>> words = requests.get("http://svnweb.freebsd.org/csrg/share/dict/words?view=co&content-type=text/plain").content.splitlines() 
>>> x = 0 
>>> for w in words: 
... print(str(x) + str(w).replace("'b","")) 
... x += 1 

Выходные

25477b'zooplankton' 
25478b'Zorn' 
25479b'Zoroaster' 
25480b'Zoroastrian' 
25481b'zounds' 
25482b"z's" 
25483b'zucchini' 
25484b'Zulu' 
25485b'Zurich' 
25486b'zygote' 

магазин имена в локальном компьютере

with open("dictionary.txt",'w') as file: 
    for w in words: 
     file.write(str(x) + str(w).replace("'b","")) 
Смежные вопросы