第 3 课 · 输入与互动

猜数字游戏(简单版)

给电脑装上「耳朵」:用 input 让程序停下来听你说话,做出能跟你对话的小程序。

120 分钟完整闭环 4 个知识点 4 段示范代码 难度 ★★
🏠 学期课件主页 ← 上一课:会计算的计算器下一课:做选择 →
01

本课导览

先看这节课教什么、怎么分配 120 分钟,老师心里有底,课堂节奏就不乱。

第3课输入与互动
🎯 趣味项目:猜数字游戏(简单版)
input() 输入int() / float() 类型转换字符串与数字的区别程序与用户互动
🎯教学目标(学完这节课,学生能…)
  • 学会使用 input() 函数获取用户从键盘输入的内容;
  • 理解 input() 返回的是字符串,学会用 int() 和 float() 做类型转换;
  • 能编写一个与用户互动的简单猜数字程序;
  • 理解「程序 = 输入 → 处理 → 输出」的完整过程。
🔑 教学重点
  • input() 的用法:提示语写进括号,回车后程序才继续
  • int() 类型转换:input 拿到的都是字符串,做运算前必须先转数字
🧗 教学难点 / 易卡点
  • 忘记类型转换直接做运算(字符串 + 数字报错)
  • input 会「卡住」等待输入——上课时容易以为程序死了
🧰课前准备(老师 / 学生)
  • 老师:准备两台「程序」道具(一个会自言自语、一个会先问再答),用于对比演示;
  • 学生:复习第 2 课变量;把作品文件夹准备好;
  • 口令约定:运行后光标在闪 = 程序在等你输入,不是卡死。
⏱️120 分钟教学流程(建议时间轴,可按班级情况微调)
时间环节做什么 / 师生互动要点
0–5候课 · 复习打开第2课计算器,运行一次热热身。
5–12快问快答变量是什么?7//2 和 7%2 分别多少?6/2 结果是?乘方符号是?
12–20情境导入演双簧:老师当「自言自语」的程序(不问就输出),学生当「会提问」的程序——体会差别,引出 input。
20–35input = 电脑的耳朵讲解 input("提示语") 会停下等输入、回车后继续;现场运行猜数字简单版。
35–48类型转换 int()/float()演示 input 拿到的 42 其实是字符串 "42":"42"+1 报错 → int() 转换后成功。
48–70示范代码 + 上机敲「猜数字简单版」+「小调查」两个程序并运行;加做个人信息收集并打印总结。
70–90课堂练习 A/B练习 1 多输几个数观察;练习 2 两数求和;快的做练习 3 长方形周长面积。
90–100挑战与找茬挑战:温度转换器;老师投屏一个「忘了 int()」的报错现场,全班诊断。
100–110闯关小测口答:input 拿到的是数字还是文字?要运算怎么办?"10"+5 会怎样?
110–120总结 · 作业 · 预告齐读口诀;保存「第3课_猜数字.py」;预告第 4 课:程序会「做选择」。

时间轴把 2 小时切成 8 段:复习→导入→讲解→示范→上机→练习→检测→小结,每段都有明确产出。

02

情景导入 · 复习热身

先用 5 分钟把上节课的记忆叫醒,再用故事和类比把新知识挂到孩子已有的经验上。

🔁上节回顾 · 快问快答(建议 5 分钟)

问 1:上节课我们把数据装进「盒子」,盒子叫什么?怎么放进去?
→ 变量;用 = 赋值,比如 age = 9。

问 2:想让程序打印两个数的和,除法结果为什么常带 .0?
→ 除法 / 的结果默认是浮点数。

问 3:字符串拼接时数字要先变成什么才能拼?
→ 先 str() 转成文字再拼。

📖情景故事 · 今天学什么

小刚的程序会说话了,可他总觉得少了点什么——它只会「自言自语」,你说什么它都听不见。

同桌说:你的电脑只有嘴巴,没有耳朵!真正好玩的程序,应该会先问你问题,再根据你的回答行动。

小刚不服气:那我给它安一只耳朵!老师笑着递来一个魔法词:input。

神奇的事发生了:程序停下来,屏幕上出现「请输入你的名字:」,小刚敲下名字一按回车,电脑竟然叫出了他的名字!

今天,我们给电脑装耳朵——做出会提问、会互动的程序!

💡生活类比:把新知识挂在旧经验上
👂

input = 电脑的耳朵

程序跑到 input 会停下来等你说话,你按回车它才继续往下走。

输入函数
🔄

int() = 翻译官

input 拿到的数字其实是「文字版数字」,int() 把它翻译成真数字才能做算术。

类型转换
🎙️

提示语 = 话筒里的问话

input("你叫什么?") 括号里的字会先显示在屏幕上,告诉用户该输入什么。

提示信息
🏭

程序 = 小工厂

原料(输入)→ 加工(处理)→ 产品(输出)。input 进、print 出。

程序流程
🗝️本课核心口诀(板书 / 齐读)
核 心 口 诀input 是耳朵,停下听你说;
拿到都是字符串,运算前先 int();
先问后答会互动,程序从此活起来!
03

知识讲解

分小块讲透语法点,每一块都配生活类比 + 要点小结,讲完立刻口头小试。

👂input() 函数——电脑的「耳朵」

input() 函数可以让程序停下来,等用户从键盘输入内容,按回车后继续运行。

括号里可以写提示语,比如 input("请输入你的名字:"),程序会先把这句话显示在屏幕上。

重要:光标在闪、程序不动,不是死机,是在等你输入!输入完一定要按回车。

用户输入的内容会作为返回值交给你,通常要存进变量:name = input("名字:")。

input() 让程序暂停,等待键盘输入提示语写在括号里,先显示再等待输入的内容要存进变量备用
💡 回车键 = 「我说完了,你继续」。忘记按回车,程序会一直等。
🔄类型转换——把「文字数字」变成「真数字」

input() 得到的永远是文字(字符串),即使用户输入的是数字。如果要做数学运算,必须先转换。

int() 转成整数:int("42") = 42;float() 转成小数:float("3.14") = 3.14。

最常用的一条:age = int(input("请输入年龄:"))——一边听一边转,一步到位。

如果输入的不是数字(比如 "abc"),int() 会报错 ValueError。这是正常现象,程序「有脾气」是因为它转不了。

int(字符串) → 整数float(字符串) → 小数input 结果 = 字符串,运算前必转
💡 记不住就先写 int(input(...)) 一条龙:听进来 → 马上转数字。
🔍字符串和数字的区别——"10" 不是 10

"10" 和 10 不一样!"10" 是文字,10 是数字。

"10" + "5" 得到 "105"(文字拼接);而 10 + 5 得到 15(数学加法)。

同理,"3" * 3 会得到 "333"(文字重复 3 遍),而 3 * 3 = 9。

所以做运算前一定要先确认类型对不对:是文字还是数字?需要转换吗?

"10" 是文字,10 是数字文字 + 文字 = 拼在一起数字 + 数字 = 数学相加
💡 检查类型小技巧:print(type(变量)) 会告诉你它是文字还是数字。
🏭程序的三步曲:输入 → 处理 → 输出

学了 print 和 input,一个完整程序的基本骨架就齐了。

标准流程:input 收原料(输入)→ 变量和运算加工(处理)→ print 交成品(输出)。

比如猜数字:input 收下你的猜测 → 和答案 42 比一比 → print 告诉你对不对。

今天先学「比一比对不对」(第 4 课正式学 if),明天程序就能自己拿主意了。

输入:input()处理:变量 + 运算 + 比较输出:print()
💡 写程序前先在纸上写:输入什么?怎么处理?输出什么?三句话想清楚再动手。
04

示范代码 · 动手做

老师先带读代码、讲注释,再让学生亲手敲一遍——敲错正好学习调试。

Python示例 1 · 猜数字游戏(简单版)——猜一次就知道结果
# 第3课:猜数字游戏(简单版)
# 功能:程序设定一个数字,用户猜一次,判断对不对

answer = 42                                   # 设定正确答案
guess = int(input("请猜一个1到100之间的数字:"))  # 边听边转成整数

print("你猜的数字是:" + str(guess))            # 复述一遍用户猜的数

if guess == answer:                            # 猜对了?
    print("恭喜你,猜对了!")
else:
    print("很遗憾,猜错了。正确答案是" + str(answer))
运 行 结 果
请猜一个1到100之间的数字:50
你猜的数字是:50
很遗憾,猜错了。正确答案是42
✍ 分别输入 42、50、1 运行三次,观察三种情况下的输出。

🤔 想一想:如果去掉 int(),直接 guess = input(...),再和 42 比较会发生什么?

Python示例 2 · 小调查:电脑向你提问
# 拓展:简单的个人信息收集
print("--- 来做个小调查 ---")

name = input("你叫什么名字?")        # 收文字
age = int(input("你今年几岁?"))      # 收数字(转整数)
hobby = input("你的爱好是什么?")

print()
print("你好," + name + "!")
print("你今年" + str(age) + "岁,明年你就" + str(age + 1) + "岁啦!")
print("原来你喜欢" + hobby + ",真有趣!")
运 行 结 果
--- 来做个小调查 ---
你叫什么名字:小刚
你今年几岁:9
你的爱好是什么:编程

你好,小刚!
你今年9岁,明年你就10岁啦!
原来你喜欢编程,真有趣!
✍ 把调查问题改成你想要的 3 个问题(比如颜色、食物、运动),再运行。

🤔 想一想:age 为什么一定要 int()?如果不转,age + 1 会输出什么?

Python示例 3 · 加法问答机:输入两个数求和
# 让用户输入两个数字,输出它们的和
a = int(input("请输入第一个数:"))
b = int(input("请输入第二个数:"))

he = a + b
print(str(a) + " + " + str(b) + " = " + str(he))
运 行 结 果
请输入第一个数:36
请输入第二个数:47
36 + 47 = 83
✍ 把 + 改成 -、*、/ 各运行一次,做成一个「四则问答机」。

🤔 想一想:如果用户输入 3.5,用 int() 会报错还是成功?换 float() 呢?

Python示例 4 · 长方形面积计算器(互动版)
# 输入长方形的长和宽,计算周长和面积
length = float(input("请输入长方形的长(厘米):"))
width = float(input("请输入长方形的宽(厘米):"))

perimeter = 2 * (length + width)   # 周长
area = length * width              # 面积

print("周长 = " + str(perimeter) + " 厘米")
print("面积 = " + str(area) + " 平方厘米")
运 行 结 果
请输入长方形的长(厘米):8
请输入长方形的宽(厘米):5
周长 = 26.0 厘米
面积 = 40.0 平方厘米
✍ 量一量你的数学书封面:长和宽各是多少厘米?输入程序算周长和面积。

🤔 想一想:这里为什么用 float() 而不是 int()?如果长是 8.5 厘米,int() 会怎样?

05

易错提醒

把最容易翻车的写法先亮出来,见一次、错一次、就会了。

易错点 1

input 结果直接做运算

✗ 错误写法
age = input("几岁?")
print(age + 1)
✓ 正确写法
age = int(input("几岁?"))
print(age + 1)
为什么:input 拿到的永远是字符串。"9" + 1 会报错:文字和数字不能直接加。先 int() / float() 再运算。
易错点 2

提示语忘记写引号

✗ 错误写法
input(请输入你的名字)
✓ 正确写法
input("请输入你的名字:")
为什么:提示语是字符串,必须加引号。不加引号电脑又把它当成名字去找了。
易错点 3

想输小数却用 int()

✗ 错误写法
height = int(input("身高:"))
# 输入 1.4 会报错
✓ 正确写法
height = float(input("身高:"))
为什么:int() 只能转整数文字,转 "1.4" 会报 ValueError;要小数就用 float()。
06

课堂练习(分层)

基础题人人过关,进阶题鼓励尝试,挑战题给学有余力的孩子。参考答案给老师做巡视对照。

A组 · 基础(人人必做)课堂完成,老师巡回指导
  1. 运行猜数字游戏,分别输入 42、50、1,把三次输出记下来,说说程序做了什么判断。
  2. 写一个程序:让用户输入两个数字,输出它们的和。(记得类型转换!) (提示:参考示例3。)
B组 · 进阶(鼓励尝试)课堂完成,老师巡回指导
  1. 写程序:输入长方形的长和宽,计算并输出周长和面积。 (提示:参考示例4;想支持小数就用 float()。)
  2. 写一个「乘法口算机」:程序出一道两位数×一位数的题,用户输入答案,程序告诉他对不对。 (提示:先自己定好两个数,如 a=23, b=4,再让用户猜 a*b。)
C组 · 挑战(学有余力)课堂完成,老师巡回指导
  1. 写一个「温度转换器」:输入摄氏度,输出华氏度。公式:华氏度 = 摄氏度 × 9/5 + 32。 (提示:输入用 float(),因为可能有 36.5 这样的体温。)
  2. 给猜数字游戏升级:提示用户猜大了还是猜小了(用 if-elif-else),并允许再猜一次。 (提示:if 猜的数 > answer: 打印"猜大了";< answer: 打印"猜小了"。)
07

闯关小测

收尾前 10 分钟,用口答 / 举手抢答把今天的关键点过一遍。

闯关 1先举手回答,再对答案

input() 的作用是什么?

答案:让程序停下来,听用户从键盘输入,按回车继续。

💡 input = 电脑的耳朵。

闯关 2先举手回答,再对答案

input("几岁:") 里,括号中的文字有什么用?

答案:作为提示语先显示在屏幕上,告诉用户该输入什么。

💡 提示语写在括号里。

闯关 3先举手回答,再对答案

用 input 输入 42 后,这个 42 是数字还是文字?

答案:文字(字符串)"42"。

💡 input 返回的永远是字符串。

闯关 4先举手回答,再对答案

"10" + "5" 等于多少?10 + 5 呢?

答案:"105"(拼接);15(加法)。

💡 文字加文字是拼接,数字加数字才是加法。

闯关 5先举手回答,再对答案

想让程序算 age + 1,输入年龄后必须做什么?

答案:int(age) 或直接在 input 外套 int()。

💡 运算前先类型转换。

08

小结 · 作业与预告

用一句话带走今天的内容;作业分层布置,作品记得保存进成长档案。

🖍️本课小结(一句话 + 板书核心词)
一句话带走给电脑装上「耳朵」:用 input 让程序停下来听你说话,做出能跟你对话的小程序。
input() 耳朵提示语要加引号input 返回字符串int() 转整数float() 转小数"10" ≠ 10输入→处理→输出
必做 · 人人过关
  1. 必做题:写一个程序,问用户的姓名、最喜欢的颜色、最喜欢的食物,然后用一句话总结出来。
  2. 必做题:把「猜数字游戏」保存为「第3课_猜数字.py」放进作品文件夹。
选做 · 鼓励挑战
  1. 选做题:写一个「温度转换器」,让用户输入摄氏度,转换成华氏度输出(华氏度 = 摄氏度 × 9/5 + 32)。
  2. 选做题:写一个「零钱计算器」:输入商品价格和付的钱,输出应找回多少。
思考 · 烧脑一下
  1. 思考题:如果用户在 input 里输入了文字(比如 "abc"),然后用 int() 转换,会发生什么?试试看,想想为什么。
  2. 想一想:input 一定要配一个变量吗?能不能 input() 完什么都不存?那样程序还能用到输入的内容吗?
👉 下节课预告:下一课《做选择》:程序要有「大脑」了——用 if 让程序根据条件做选择,做出成绩等级判断器!