使用Python查找用户提供的主题的笑话
先决条件:
- Http 请求方法Python请求
- pyfiglet
Python请求模块帮助我们向指定的 URL 发出 Http 请求。在本文中,我们将向以下网址发出 json 请求:https://icanhazdadjoke.com/ 并开发一个项目,其中用户输入任何单词,输出将是与该单词相关的笑话。
我们将使用 API(库请求)使用用户输入的关键字搜索笑话,如果我们在输入的关键字上获得多个结果,那么将随机显示其中一个笑话。
使用的模块
- requests模块允许我们使用Python发送 Https 请求
- pyfiglet模块将 ASCII 文本转换为 ASCII 艺术字体
- termcolor模块帮助我们在输出终端中格式化颜色
- random模块在Python中生成随机数
方法
- 导入模块
- 添加header,在for中指定,是要存储的数据,默认是html文本(这里我们获取的是JSON格式的数据)
- 询问用户输入
- 将输入作为搜索元素传递以从 URL 检索数据
- 打印检索到的数据。
程序:
Python3
import requests
import pyfiglet
import termcolor
from random import choice
header = pyfiglet.figlet_format("Find a joke!")
header = termcolor.colored(header, color="white")
print(header)
term = input("Let me tell you a joke! Give me a topic: ")
response_json = requests.get("https://icanhazdadjoke.com/search",
headers={"Accept": "application/json"}, params={"term": term}).json()
results = response_json["results"]
total_jokes = response_json["total_jokes"]
print(total_jokes)
if total_jokes > 1:
print(f"I've got {total_jokes} jokes about {term}. Here's one:\n", choice(
results)['joke'])
elif total_jokes == 1:
print(f"I've got one joke about {term}. Here it is:\n", results[0]['joke'])
else:
print(f"Sorry, I don't have any jokes about {term}! Please try again.")
输出