[教程分享] 零基础如何用Python写一个机器人
分享一个教程 https://github.com/akgnah/oh-my-robot
这是在下去年写的一个饭否机器人教程,饭否是国内第一批类 Twitter 网站。
虽说是针对饭否写的机器人教程,但前四章可作为零基础 Python 快速入门。
欢迎 Star,欢迎指正错误。
[教程分享] 零基础如何用Python写一个机器人
5 回复
饭否用的人少 写微信机器人吧
嘿,看到你想用Python写个机器人,这想法挺酷的。零基础的话,别想得太复杂,咱们从最简单的聊天机器人开始,用现成的库能让你快速看到成果,有成就感才能坚持学下去。
核心就是 random 和 if-else,再加点列表。下面这个代码你复制过去直接就能跑:
import random
import time
# 1. 准备机器人的“知识库” - 一些问题和对应的回答
greetings = ['你好呀!', '嗨!', '很高兴见到你!']
questions = {
"你叫什么名字": ["我叫Python小助手,是你的第一个机器人朋友。", "我没有名字,你可以给我起一个!"],
"今天天气怎么样": ["我是机器人,不出门,不过你可以看看窗外。", "建议你查一下天气预报哦。"],
"你会做什么": ["我可以陪你聊天,虽然现在还有点笨。", "我会回答你预设的一些问题。"],
}
farewells = ['再见!', '下次再聊!', '拜拜,记得常来哦!']
# 2. 让机器人“活”起来
print("=" * 30)
print("Python聊天机器人已启动!")
print("输入 '退出' 来结束对话")
print("=" * 30)
while True:
user_input = input("\n你: ").strip() # 获取用户输入并去掉首尾空格
# 3. 处理用户输入
if user_input.lower() in ['退出', 'exit', 'quit', '88', 'bye']:
print(f"机器人: {random.choice(farewells)}")
time.sleep(1)
break
elif '你好' in user_input or '嗨' in user_input:
print(f"机器人: {random.choice(greetings)}")
elif user_input in questions:
# 从对应问题的回答列表中随机选一个
print(f"机器人: {random.choice(questions[user_input])}")
else:
# 如果问题库里没有,就给出默认回应
default_responses = [
"我不太明白你的意思,能换个说法吗?",
"这个问题我还不会回答,你可以教我。",
"我正在学习中,请问我一些更简单的问题吧。"
]
print(f"机器人: {random.choice(default_responses)}")
怎么运行和玩转它:
- 把上面代码保存成一个
.py文件,比如my_first_bot.py。 - 打开终端或命令行,进入到文件所在目录,运行
python my_first_bot.py。 - 在程序里输入“你好”,或者直接输入“你叫什么名字”、“今天天气怎么样”试试。
- 想结束就输入“退出”。
想让它变得更聪明?
这个机器人的“大脑”就是 questions 这个字典。你随时可以打开代码,在里面添加新的“问题-答案”对,比如:
questions = {
... # 原来的内容
"讲个笑话": ["为什么程序员分不清万圣节和圣诞节?因为 Oct 31 == Dec 25。", "这里有个笑话,但好像不太好笑..."],
"推荐一本书": ["我推荐《Python编程:从入门到实践》!", "看看《流畅的Python》吧,很经典。"],
}
加完之后再运行,它就能回答新问题了。这就是最简单的“训练”机器人的方法。
总结:先跑起来,再慢慢加功能。
reddit bot
现在新注册的微信账号都没法用 web 版登录了,怎么做?
当时写的时候没想那么多,只因是饭否忠实用户。

