随机词汇生成器 - Python

14 浏览
0 Comments

随机词汇生成器 - Python

我基本上正在做一个项目,其中计算机从一个单词列表中选择一个单词,并为用户进行混淆。只有一个问题:我不想一直写很多单词在列表中,所以我想知道是否有一种方法可以导入很多随机的单词,即使我自己也不知道是什么,这样我也可以玩得开心?这是整个程序的代码,我只放了6个单词进去:

导入随机模块

WORDS = ("python", "jumble", "easy", "difficult", "answer", "xylophone")

word = 随机选择(WORDS)

correct = word

jumble = ""

当单词存在时:

位置 = 随机生成范围(单词的长度)

jumble += 单词[位置]

单词 = 单词[:位置] + 单词[(位置 + 1):]

打印(

"""

欢迎来到单词混淆游戏!!!

解开字母以组成一个单词。

(按下回车键退出)

"""

)

打印("混淆的单词是:", jumble)

猜测 = 输入("你的猜测:")

当猜测 != 正确 and 猜测 != "":

打印("对不起,那不是正确答案")

猜测 = 输入("你的猜测:")

如果猜测 == 正确:

打印("没错,你猜对了!\n")

打印("感谢参与游戏")

输入("\n\n按下回车键退出")

0
0 Comments

问题的原因是代码中使用的URL无法访问到所需的单词列表。解决方法是修改代码,使用适当的headers来进行请求,以确保能够成功访问URL。

以下是解决问题的Python 3代码示例:

import urllib.request
import random
# 设置请求头
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64)'}
# 定义单词列表的URL
word_url = "http://svnweb.freebsd.org/csrg/share/dict/words?view=co&content-type=text/plain"
# 创建请求对象,并设置请求头
req = urllib.request.Request(word_url, headers=headers)
# 发送请求并获取响应
response = urllib.request.urlopen(req)
# 读取响应内容并解码
long_txt = response.read().decode()
# 将文本按行分割为单词列表
words = long_txt.splitlines()
# 选取只有首字母大写的单词列表
upper_words = [word for word in words if word[0].isupper()]
# 选取类似名字的单词列表
name_words = [word for word in upper_words if not word.isupper()]
# 生成随机的名字
rand_name = ' '.join([name_words[random.randint(0, len(name_words))] for i in range(2)])
# 输出随机名字
for n in range(10):
    print(' '.join([name_words[random.randint(0,len(name_words))] for i in range(2)]))

在这个解决方案中,我们通过设置适当的User-Agent请求头,成功解决了获取单词列表的问题。这样做比重新下载文件要好,因为我们不再依赖于网络连接,而是直接使用本地的文件。

0
0 Comments

问题:Random word generator- Python 这个问题的出现的原因是因为用户需要通过Python代码生成随机单词。解决方法是通过读取本地的单词列表文件或从远程字典中获取单词。

在Python中,如果我们想要生成随机单词,有几种方法可以实现。下面将介绍一些从本地单词列表和远程字典中获取单词的方法。

1. 从本地单词列表中读取:

如果我们需要重复生成随机单词,可以将单词列表文件下载到本地并从本地文件中获取单词。*nix用户可以使用/usr/share/dict/words文件作为单词列表。

示例代码如下:

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

2. 从远程字典中获取:

如果我们想要从远程字典中获取单词,有几种方法可以实现。使用requests库可以简单地实现这一目标(需要先pip install requests):

import requests
word_site = "https://www.mit.edu/~ecprice/wordlist.10000"
response = requests.get(word_site)
WORDS = response.content.splitlines()

另外,也可以使用内置的urllib2库实现:

import urllib2
word_site = "https://www.mit.edu/~ecprice/wordlist.10000"
response = urllib2.urlopen(word_site)
txt = response.read()
WORDS = txt.splitlines()

感谢你的帮助,这真的很有用。我把你的答案设为了最佳答案并点了赞 🙂

请注意,链接http://www.freebsd.org/cgi/cvsweb.cgi/src/share/dict/web2?rev=1.12;content-type=text%2Fplain已经失效了...

- 🙁 看来我只能自己托管一个单词列表了。

这个方法很好用;word_site = "svnweb.freebsd.org/csrg/share/dict/…"。它是使用ViewVc格式托管的,并且他们提到下载链接是最好的方法;permalink.gmane.org/gmane.comp.version-control.cvs.viewcvs.user/…。你能相信这个25k的单词列表已经有21年了吗!!?? 我热爱互联网。//oops截断了,我会编辑帖子。

使用的链接已经过时了,请使用mit.edu/~ecprice/wordlist.10000

用户们要小心...那个MIT的单词列表中包含一些非常不合适的词汇。

0
0 Comments

问题的出现原因:

在Python中,有一个名为random_word的包,可以方便地实现随机生成单词的功能。使用这个包,可以通过调用相关函数来获取随机单词、随机单词列表以及每日单词。然而,需要注意的是,这些函数实际上是通过调用Wordnik.com的API来获取随机单词的。

解决方法:

要解决这个问题,可以按照以下步骤进行操作:

1. 首先,确保已经安装了random-word包。可以通过运行以下命令来安装:

$ pip install random-word

2. 然后,导入RandomWords类:

from random_word import RandomWords

3. 创建一个RandomWords对象:

r = RandomWords()

4. 调用get_random_word()函数来获取一个随机单词:

r.get_random_word()

5. 调用get_random_words()函数来获取一个随机单词列表:

r.get_random_words()

6. 调用word_of_the_day()函数来获取每日单词:

r.word_of_the_day()

需要注意的是,这些函数实际上是通过调用Wordnik.com的API来获取随机单词的。因此,在使用这些函数之前,需要确保网络连接正常,并且能够访问Wordnik.com的API。另外,还需要注意保护用户隐私和数据安全,避免在公共网络环境下使用这些函数。

通过使用random_word包中的函数,我们可以方便地在Python中生成随机单词。然而,这些函数实际上是通过调用Wordnik.com的API来获取随机单词的,因此需要注意网络连接和数据安全的问题。通过按照以上步骤操作,我们可以轻松地使用这些函数来实现随机单词的生成。

0