第6课:聊天机器人V1.0——与计算机对话

🎯 本课目标

  • 掌握input()函数接收用户输入
  • 结合print()input()制作对话程序
  • 学习简单的条件判断
  • 制作能记住用户信息的聊天机器人
  • 体验交互式编程的乐趣

🤖 趣味引入:创造你的电子朋友

想象一下:如果你有一个电子朋友,能记住你的名字、知道你的喜好,还能和你聊天,是不是很酷?

今天,我们就来创造这样一个朋友!它虽然还不算聪明,但能听你说话,还能回答你的问题。

聊天机器人的三要素

  1. 👂 耳朵input() - 听你说话
  2. 🧠 大脑if-else - 思考如何回答
  3. 👄 嘴巴print() - 说出回答

👂 第一部分:学会"听" - input()函数

input()是什么?

input()就像计算机的"耳朵",可以让程序接收你的输入。

# 最简单的input()
name = input("你叫什么名字?")
print("你好," + name + "!")

运行结果

alt text

练习1:个人信息收集

print("=== 认识新朋友 ===")
name = input("你叫什么名字?")
age = input("你今年几岁?")
hobby = input("你喜欢做什么?")

print("\n很高兴认识你!")
print("你叫" + name)
print("你今年" + age + "岁")
print("你喜欢" + hobby)

alt text

练习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("听起来很有意思!")

🎯 综合练习:制作你的专属机器人

任务:用今天学的知识,制作一个属于你的聊天机器人。

要求

  1. 能问至少3个问题
  2. 能根据回答给出不同回应
  3. 能记住用户的一些信息
  4. 有友好的开始和结束
  5. 至少使用一次循环

示例框架

# 我的专属聊天机器人
# 作者:[你的名字]

print("=== 我的机器人 ===")
print("你好!我是[给你的机器人起名字]")

# 问问题
# [你的代码]

# 根据回答回应
# [你的代码]

# 记住信息
# [你的代码]

# 结束对话
print("=== 聊天结束 ===")
print("很高兴和你聊天!")

📅 下节课预告

第7课:小小计算器——让电脑做数学

下节课你将学习:

  1. 制作完整的四则运算计算器
  2. 实现加减乘除运算
  3. 让计算器能连续计算
  4. 添加错误处理
  5. 制作漂亮的界面

提前准备

  • 想一想你希望计算器有什么功能
  • 观察手机计算器是怎么工作的
  • 准备好解决数学问题!

💬 给家长的话

亲爱的家长

今天孩子学习了如何制作简单的聊天机器人,这是编程学习中的重要一步。

孩子今天学会了

  1. ✅ 用input()接收用户输入
  2. ✅ 用if-else做简单判断
  3. ✅ 制作交互式对话程序
  4. ✅ 处理用户的多种回答
  5. ✅ 制作有趣的小游戏

您可以这样做

体验孩子的作品

  1. 当孩子的第一个用户,使用他/她制作的机器人
  2. 提出改进建议
  3. 记录有趣的对话
  4. 分享给其他家人

教育引导

  1. 安全意识:提醒不要输入真实个人信息
  2. 创意鼓励:鼓励设计独特的对话
  3. 问题解决:一起调试程序错误
  4. 实际应用:讨论聊天机器人的实际用途

温馨提示

  • 聊天机器人是很好的编程入门项目
  • 鼓励孩子发挥创意,设计个性对话
  • 注意对话内容的积极健康
  • 保存孩子的第一个聊天机器人作品

🏆 今日成就

完成了今天的学习,你:

🤖 创造了第一个聊天机器人

💬 学会了与计算机对话

🎮 制作了有趣的小游戏

📝 设计了实用的日记助手

💡 掌握了交互编程的基础

挑战任务

  1. 让机器人能记住你的生日
  2. 添加更多有趣的问题和回答
  3. 设计一个猜谜语功能
  4. 让机器人能讲笑话

🌟 编程心法

编程是对话
输入是倾听
判断是思考
输出是回应
循环是陪伴
从单向输出到双向交流
从简单回答到智能对话
让代码有温度
让程序有生命

记住:今天你创造的不只是一个程序,而是一个能与你对话的电子朋友。这是编程魔法真正的开始!


第6课结束。你现在已经能让计算机听懂你说话了!

实践任务:

1. 为家人制作一个问候机器人

2. 制作每日心情记录程序

3. 设计猜谜语游戏

4. 创造你的专属聊天机器人

下节课,让我们制作实用的计算器!

第7课见!🚀