第6课:聊天机器人V1.0——与计算机对话
🎯 本课目标
- 掌握
input()函数接收用户输入 - 结合
print()和input()制作对话程序 - 学习简单的条件判断
- 制作能记住用户信息的聊天机器人
- 体验交互式编程的乐趣
🤖 趣味引入:创造你的电子朋友
想象一下:如果你有一个电子朋友,能记住你的名字、知道你的喜好,还能和你聊天,是不是很酷?
今天,我们就来创造这样一个朋友!它虽然还不算聪明,但能听你说话,还能回答你的问题。
聊天机器人的三要素:
- 👂 耳朵:
input()- 听你说话 - 🧠 大脑:
if-else- 思考如何回答 - 👄 嘴巴:
print()- 说出回答
👂 第一部分:学会"听" - input()函数
input()是什么?
input()就像计算机的"耳朵",可以让程序接收你的输入。
# 最简单的input()
name = input("你叫什么名字?")
print("你好," + name + "!")
运行结果:

练习1:个人信息收集
print("=== 认识新朋友 ===")
name = input("你叫什么名字?")
age = input("你今年几岁?")
hobby = input("你喜欢做什么?")
print("\n很高兴认识你!")
print("你叫" + name)
print("你今年" + age + "岁")
print("你喜欢" + hobby)

练习2:问答游戏
print("=== 问答小游戏 ===")
print("我会问你几个问题,请诚实回答哦!")
q1 = input("1. 你喜欢晴天还是雨天?")
q2 = input("2. 你喜欢猫还是狗?")
q3 = input("3. 你喜欢苹果还是香蕉?")
print("\n=== 你的答案 ===")
print("天气喜好:" + q1)
print("动物喜好:" + q2)
print("水果喜好:" + q3)
print("谢谢你的回答!")
🧠 第二部分:学会"思考" - 简单判断
机器人需要根据你的回答,给出不同的回应。这就要用到判断。
基本判断:if语句
# 根据天气回答
weather = input("今天天气怎么样?(晴天/雨天)")
if weather == "晴天":
print("天气真好!适合出去玩!")
elif weather == "雨天":
print("记得带伞哦!")
else:
print("嗯,听起来不错!")
注意:if后面是条件,==是比较是否相等(两个等号!)
练习3:心情聊天机器人
print("😊 心情聊天机器人")
print("=" * 20)
mood = input("你今天心情怎么样?(好/一般/不好)")
if mood == "好":
print("太好了!继续保持好心情!😄")
print("有什么开心的事吗?")
elif mood == "一般":
print("嗯,希望下午能变得更好!🙂")
print("可以做点喜欢的事情调节心情!")
elif mood == "不好":
print("别难过,一切都会好起来的!🤗")
print("要不要听听音乐放松一下?")
else:
print("我好像没听懂,但希望你开心!😊")
练习4:年龄判断
print("👦 年龄判断机器人")
print("=" * 20)
age_str = input("你今年几岁?")
age = int(age_str) # 把字符串转换成数字
if age < 6:
print("你还是小宝宝呢!")
elif age < 12:
print("你是小学生!要好好学习哦!")
grade = age - 6
print(f"你应该上{grade}年级")
elif age < 15:
print("你是初中生!课程有点多吧!")
elif age < 18:
print("你是高中生!高考要加油!")
else:
print("你是大人了!")
🎮 项目1:基础聊天机器人
# 基础聊天机器人 v1.0
print("🤖" * 10)
print(" 基础聊天机器人")
print("🤖" * 10)
print("你好!我是机器人小P")
print("让我们聊聊天吧!")
print()
# 收集基本信息
name = input("首先,你叫什么名字?")
print(f"你好,{name}!很高兴认识你!")
# 问年龄
age = input("你今年几岁?")
print(f"{age}岁,真是个好年纪!")
# 问学校
school = input("你在哪个学校上学?")
print(f"{school},好学校!")
# 问喜好
color = input("你最喜欢什么颜色?")
if color == "红色":
print("红色很热情!像太阳一样!")
elif color == "蓝色":
print("蓝色很安静!像大海一样!")
elif color == "绿色":
print("绿色很清新!像春天一样!")
else:
print(f"{color}!很特别的颜色!")
# 问食物
food = input("你最喜欢吃什么?")
if "糖" in food or "巧克力" in food:
print("甜食要少吃哦,对牙齿不好!")
elif "水果" in food or "蔬菜" in food:
print("健康食品,真好!")
else:
print(f"{food}!听起来很好吃!")
# 结束对话
print("=" * 30)
print(f"很高兴认识你,{name}!")
print(f"记住:你是{school}的{age}岁学生")
print(f"喜欢{color},爱吃{food}")
print("期待下次聊天!再见!")
print("=" * 30)
🔄 项目2:循环对话机器人
让机器人能一直和你聊天,直到你说"再见"。
# 循环对话机器人
print("🤖 循环对话机器人")
print("=" * 20)
print("我可以和你一直聊天!")
print("输入'再见'可以结束对话")
print()
# 记录对话次数
chat_count = 0
while True:
chat_count += 1
# 用户输入
user_say = input(f"【第{chat_count}轮对话】你说:")
# 检查是否要结束
if "再见" in user_say or "拜拜" in user_say:
print("机器人:再见!期待下次聊天!")
break
# 根据输入内容回答
if "你好" in user_say or "嗨" in user_say:
print("机器人:你好!今天过得怎么样?")
elif "名字" in user_say:
print("机器人:我叫小P,是个聊天机器人!")
elif "几岁" in user_say or "年龄" in user_say:
print("机器人:我刚出生不久,但学习很快!")
elif "天气" in user_say:
print("机器人:今天的天气很不错呢!")
elif "开心" in user_say or "高兴" in user_say:
print("机器人:太好了!保持好心情!😄")
elif "难过" in user_say or "伤心" in user_say:
print("机器人:别难过,一切都会好起来的!🤗")
elif "谢谢" in user_say:
print("机器人:不客气!能帮到你我很快乐!")
elif "?" in user_say or "?" in user_say:
print("机器人:这个问题问得好!让我想想...")
else:
# 通用回答
answers = [
"真有意思!",
"然后呢?",
"我明白了!",
"接着说!",
"哇,原来是这样!"
]
import random
print("机器人:" + random.choice(answers))
print()
print("=" * 20)
print(f"对话结束!一共聊了{chat_count}轮")
print("希望下次再聊!")
🎪 游戏1:猜动物游戏
# 猜动物游戏
print("🐶 猜动物游戏")
print("=" * 20)
print("我想一个动物,你问我问题来猜!")
print("我只能回答'是'或'不是'")
print()
# 动物特征库
animals = {
"狗": ["有四条腿", "有毛", "会叫", "是宠物"],
"猫": ["有四条腿", "有毛", "会喵喵叫", "是宠物"],
"鱼": ["有鳞片", "在水里生活", "会游泳"],
"鸟": ["有翅膀", "会飞", "有羽毛"],
"兔子": ["有四条腿", "有毛", "耳朵长", "吃胡萝卜"]
}
# 选择要猜的动物
import random
animal = random.choice(list(animals.keys()))
features = animals[animal]
print("(机器人心里想好了一个动物)")
print()
# 允许问5个问题
for i in range(1, 6):
question = input(f"第{i}个问题:")
# 检查问题是否匹配特征
found = False
for feature in features:
if feature in question:
print("机器人:是")
found = True
break
if not found:
print("机器人:不是")
# 猜答案的机会
if i >= 3: # 从第3问开始可以猜
guess = input("你想猜猜看吗?(直接输入动物名,不猜按回车)")
if guess:
if guess == animal:
print("🎉 恭喜你!猜对了!")
break
else:
print("❌ 不对,再试试!")
# 游戏结束
print()
if i == 5:
print(f"游戏结束!正确答案是:{animal}")
print(f"这个动物的特征:{', '.join(features)}")
📝 项目3:智能日记助手
# 智能日记助手
print("📔 智能日记助手")
print("=" * 20)
print("我可以帮你记录今天的事情")
print()
# 收集基本信息
name = input("你的名字是?")
date = input("今天是几月几日?(比如:10月15日)")
# 记录事情
print("\n📝 记录今天的事情")
morning = input("上午做了什么?")
afternoon = input("下午做了什么?")
evening = input("晚上做了什么?")
# 记录心情
print("\n😊 记录心情")
mood = input("今天心情如何?(开心/一般/难过)")
reason = input("为什么有这种心情?")
# 记录特别的
special = input("今天有什么特别的事吗?")
# 生成日记
print("\n" + "="*40)
print(" 📔 今日日记")
print("="*40)
print(f"姓名:{name}")
print(f"日期:{date}")
print()
print("📅 今日记录:")
print(f" 上午:{morning}")
print(f" 下午:{afternoon}")
print(f" 晚上:{evening}")
print()
print("💭 心情日记:")
if mood == "开心":
print(f" 😄 今天很开心!因为:{reason}")
elif mood == "一般":
print(f" 🙂 今天心情一般。因为:{reason}")
elif mood == "难过":
print(f" 😔 今天有点难过。因为:{reason}")
else:
print(f" 心情:{mood}。因为:{reason}")
print()
if special:
print("✨ 特别的事:")
print(f" {special}")
print("="*40)
# 保存建议
save = input("\n要保存日记吗?(输入'是'保存)")
if save == "是":
filename = f"{name}的日记_{date}.txt"
print(f"日记已保存在心里!文件名:{filename}")
print("(实际上我们还没学文件操作,下节课学!)")
else:
print("好的,下次记得记录哦!")
🔧 技巧学习:处理各种回答
技巧1:处理大小写
# 用户可能输入大写或小写
answer = input("你喜欢Python吗?(喜欢/不喜欢)")
# 统一转成小写比较
if answer.lower() == "喜欢":
print("太好了!Python很有趣!")
elif answer.lower() == "不喜欢":
print("没关系,慢慢会喜欢的!")
else:
print("我好像没听懂...")
技巧2:处理空输入
# 用户可能直接按回车
name = input("你的名字是?(不想说可以按回车)")
if name: # 如果有输入
print(f"你好,{name}!")
else: # 如果没输入
print("你好,神秘的朋友!")
技巧3:包含关键词判断
# 检查回答中是否包含某些词
answer = input("你今天做了什么?")
if "学习" in answer or "看书" in answer:
print("真好!学习让人进步!")
elif "玩" in answer or "游戏" in answer:
print("适当放松也很重要!")
elif "运动" in answer or "跑步" in answer:
print("运动对身体好!")
else:
print("听起来很有意思!")
🎯 综合练习:制作你的专属机器人
任务:用今天学的知识,制作一个属于你的聊天机器人。
要求:
- 能问至少3个问题
- 能根据回答给出不同回应
- 能记住用户的一些信息
- 有友好的开始和结束
- 至少使用一次循环
示例框架:
# 我的专属聊天机器人
# 作者:[你的名字]
print("=== 我的机器人 ===")
print("你好!我是[给你的机器人起名字]")
# 问问题
# [你的代码]
# 根据回答回应
# [你的代码]
# 记住信息
# [你的代码]
# 结束对话
print("=== 聊天结束 ===")
print("很高兴和你聊天!")
📅 下节课预告
第7课:小小计算器——让电脑做数学
下节课你将学习:
- 制作完整的四则运算计算器
- 实现加减乘除运算
- 让计算器能连续计算
- 添加错误处理
- 制作漂亮的界面
提前准备:
- 想一想你希望计算器有什么功能
- 观察手机计算器是怎么工作的
- 准备好解决数学问题!
💬 给家长的话
亲爱的家长:
今天孩子学习了如何制作简单的聊天机器人,这是编程学习中的重要一步。
孩子今天学会了:
- ✅ 用
input()接收用户输入 - ✅ 用
if-else做简单判断 - ✅ 制作交互式对话程序
- ✅ 处理用户的多种回答
- ✅ 制作有趣的小游戏
您可以这样做:
体验孩子的作品:
- 当孩子的第一个用户,使用他/她制作的机器人
- 提出改进建议
- 记录有趣的对话
- 分享给其他家人
教育引导:
- 安全意识:提醒不要输入真实个人信息
- 创意鼓励:鼓励设计独特的对话
- 问题解决:一起调试程序错误
- 实际应用:讨论聊天机器人的实际用途
温馨提示:
- 聊天机器人是很好的编程入门项目
- 鼓励孩子发挥创意,设计个性对话
- 注意对话内容的积极健康
- 保存孩子的第一个聊天机器人作品
🏆 今日成就
完成了今天的学习,你:
🤖 创造了第一个聊天机器人
💬 学会了与计算机对话
🎮 制作了有趣的小游戏
📝 设计了实用的日记助手
💡 掌握了交互编程的基础
挑战任务:
- 让机器人能记住你的生日
- 添加更多有趣的问题和回答
- 设计一个猜谜语功能
- 让机器人能讲笑话
🌟 编程心法
编程是对话
输入是倾听
判断是思考
输出是回应
循环是陪伴
从单向输出到双向交流
从简单回答到智能对话
让代码有温度
让程序有生命
记住:今天你创造的不只是一个程序,而是一个能与你对话的电子朋友。这是编程魔法真正的开始!
第6课结束。你现在已经能让计算机听懂你说话了!
实践任务:
1. 为家人制作一个问候机器人
2. 制作每日心情记录程序
3. 设计猜谜语游戏
4. 创造你的专属聊天机器人
下节课,让我们制作实用的计算器!
第7课见!🚀