如何在 Python 中生成随机单词

目录

How to generate random words in Python

  1. 在 Python 中生成随机单词
  2. 从远程数据库生成随机词(HTTP 请求)

在 Python 中生成随机词

从文件系统生成一个随机词:

  1. 以阅读模式打开文件。
  2. 使用str.splitlines()orstr.split()方法将文件的内容拆分成一个列表。
  3. 使用该random.choice()方法根据需要从列表中随机挑选尽可能多的单词。
主程序
import random import requests # ✅ Random word generator using local file system def get_list_of_words(path): with open(path, 'r', encoding='utf-8') as f: return f.read().splitlines() words = get_list_of_words('/usr/share/dict/words') print(words) random_word = random.choice(words) print(random_word) # 👉️ sales # -------------------------------------------------- # ✅ Random word generator using remote database def get_list_of_words(): response = requests.get( 'https://www.mit.edu/~ecprice/wordlist.10000', timeout=10 ) string_of_words = response.content.decode('utf-8') list_of_words = string_of_words.splitlines() return list_of_words words = get_list_of_words() print(words) random_word = random.choice(words) print(random_word) # 👉️ oven

第一个代码示例从本地文件系统上的文件生成随机词。

如果您使用的是 Linux 或 macOS,则可以使用该/usr/share/dict/words/文件。

如果你在 Windows 上,你可以使用
这个 MIT word list

打开链接,右键单击页面并单击“另存为”,然后将文件保存在 Python 脚本旁边。 .txt

我们使用该with语句以阅读模式打开文件。

该语句会自动为我们关闭文件。

主程序
import random import requests def get_list_of_words(path): with open(path, 'r', encoding='utf-8') as f: return f.read().splitlines() words = get_list_of_words('/usr/share/dict/words') print(words) random_word = random.choice(words) print(random_word) # 👉️ sales

如果您使用的不是 macOS 或 Linux,请确保更新路径。

我们使用file.read()方法将文件内容读入字符串。

str.splitlines
方法在换行符

拆分字符串并返回包含字符串中的行的列表。

主程序
multiline_str = """\ bobby hadz com""" lines = multiline_str.splitlines() print(lines) # 👉️ ['bobby', 'hadz', 'com']

如果文件中的单词由空格分隔,请改用该str.split()方法。

主程序
string = "bobby hadz . com" lines = string.split() print(lines) # 👉️ ['bobby', 'hadz', '.', 'com']

str.split ()
方法使用定界符将字符串拆分为子字符串列表。

当没有分隔符传递给该str.split()方法时,它会将输入字符串拆分为一个或多个空白字符。

如果您需要从列表中随机选择一个单词,请使用random.choice()
方法。

主程序
import random def get_list_of_words(path): with open(path, 'r', encoding='utf-8') as f: return f.read().splitlines() words = get_list_of_words('/usr/share/dict/words') print(words) random_word = random.choice(words) print(random_word) # 👉️ unbreakable

random.choice方法接受
一个序列并从非空序列返回一个随机元素。

如果您需要从列表中随机选择 N 个单词,请使用列表理解。

主程序
import random def get_list_of_words(path): with open(path, 'r', encoding='utf-8') as f: return f.read().splitlines() words = get_list_of_words('/usr/share/dict/words') print(words) n_random_words = [ random.choice(words) for _ in range(3) ] # 👇️ ['computers', 'praiseworthiness', 'shareholders'] print(n_random_words)

我们使用列表理解来迭代一个range对象。

列表推导用于对每个元素执行某些操作或选择满足条件的元素子集。

范围通常用于循环特定次数。

在每次迭代中,我们调用该random.choice()方法来选择一个随机单词并返回结果。

从远程数据库生成随机词(HTTP 请求)

从远程数据库生成随机词:

  1. 向存储单词列表的数据库发出 HTTP 请求。
  2. 使用该random.choice()方法从列表中随机选择一个单词。
  3. 可选地,使用列表理解从列表中随机选择 N 个单词。
主程序
import random import requests def get_list_of_words(): response = requests.get( 'https://www.mit.edu/~ecprice/wordlist.10000', timeout=10 ) string_of_words = response.content.decode('utf-8') list_of_words = string_of_words.splitlines() return list_of_words words = get_list_of_words() print(words) random_word = random.choice(words) print(random_word) # 👉️ zoo

如果您没有安装该requests模块,请运行以下命令来安装它。

# 👇️ in a virtual environment or using Python 2 pip install requests # 👇️ for python 3 (could also be pip3.10 depending on your version) pip3 install requests

你可以在浏览器中打开麻省理工学院单词表查看内容。

该列表包含 10,000 个单词,每个单词占一行。

我们使用该bytes.decode()方法将字节对象转换为字符串。

bytes.decode
方法返回从给定字节解码的字符串
默认编码是
utf-8.

单词在不同的行上,因此我们使用该str.splitlines() 方法将字符串拆分为单词列表。

如果您的数据库响应包含以空格分隔的单词的长字符串,请改用该str.split()方法。

主程序
string = "bobby hadz . com" lines = string.split() print(lines) # 👉️ ['bobby', 'hadz', '.', 'com']

如果您需要从列表中随机选择一个单词,请使用random.choice()
方法。

主程序
import random import requests def get_list_of_words(): response = requests.get( 'https://www.mit.edu/~ecprice/wordlist.10000', timeout=10 ) string_of_words = response.content.decode('utf-8') list_of_words = string_of_words.splitlines() return list_of_words words = get_list_of_words() print(words) random_word = random.choice(words) print(random_word) # 👉️ global

如果您需要从列表中随机选择 N 个单词,请使用列表理解。

主程序
import random import requests def get_list_of_words(): response = requests.get( 'https://www.mit.edu/~ecprice/wordlist.10000', timeout=10 ) string_of_words = response.content.decode('utf-8') list_of_words = string_of_words.splitlines() return list_of_words words = get_list_of_words() print(words) n_random_words = [ random.choice(words) for _ in range(3) ] # 👇️ ['clerk', 'trust', 'tr'] print(n_random_words)

列表理解遍历range长度为 N 的对象,并调用
random.choice()方法在每次迭代中选择一个随机单词。

发表评论