[教程分享] 零基础如何用Python写一个机器人

分享一个教程 https://github.com/akgnah/oh-my-robot

这是在下去年写的一个饭否机器人教程,饭否是国内第一批类 Twitter 网站。

虽说是针对饭否写的机器人教程,但前四章可作为零基础 Python 快速入门。

欢迎 Star,欢迎指正错误。
[教程分享] 零基础如何用Python写一个机器人

5 回复

饭否用的人少 写微信机器人吧


嘿,看到你想用Python写个机器人,这想法挺酷的。零基础的话,别想得太复杂,咱们从最简单的聊天机器人开始,用现成的库能让你快速看到成果,有成就感才能坚持学下去。

核心就是 randomif-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)}")

怎么运行和玩转它:

  1. 把上面代码保存成一个 .py 文件,比如 my_first_bot.py
  2. 打开终端或命令行,进入到文件所在目录,运行 python my_first_bot.py
  3. 在程序里输入“你好”,或者直接输入“你叫什么名字”、“今天天气怎么样”试试。
  4. 想结束就输入“退出”。

想让它变得更聪明? 这个机器人的“大脑”就是 questions 这个字典。你随时可以打开代码,在里面添加新的“问题-答案”对,比如:

questions = {
    ... # 原来的内容
    "讲个笑话": ["为什么程序员分不清万圣节和圣诞节?因为 Oct 31 == Dec 25。", "这里有个笑话,但好像不太好笑..."],
    "推荐一本书": ["我推荐《Python编程:从入门到实践》!", "看看《流畅的Python》吧,很经典。"],
}

加完之后再运行,它就能回答新问题了。这就是最简单的“训练”机器人的方法。

总结:先跑起来,再慢慢加功能。

reddit bot

现在新注册的微信账号都没法用 web 版登录了,怎么做?

当时写的时候没想那么多,只因是饭否忠实用户。

回到顶部