和电脑聊天
让电脑提问、记住事情、灵活回答
这节课你要学会
1. 让电脑向你提问;2. 用"变量"记住事情;3. 把它们组合起来,做一个问答机器人。
让电脑提问:input
上一课电脑只会自己说话。加一个新本领 input,它就会等你回答:
input("你叫什么名字?")
你叫什么名字?_
运行后程序会停在那里,闪动的光标在等你打字。你输入名字按回车,程序才结束。input 括号里的话叫提示语,告诉回答的人该说什么。
记住事情:变量
有个问题:你回答了名字,电脑转头就忘了。怎么让它记住?用变量。
变量就是一个贴了标签的盒子。你把东西放进去,再贴上标签。下次只要喊标签的名字,就能拿到里面的东西。
name = input("你叫什么名字?")
print(name)
print(name)
print(name)
你叫什么名字?小雨 小雨 小雨 小雨
第一行的意思是:把你输入的回答,放进叫 name 的盒子里。等号的意思是"装进去",不是数学里的"相等"。之后喊三声 name,它就把"小雨"给你三次。
盒子可以换东西
盒子里的东西可以随时换。换掉之后,标签还是那个标签,但拿出来的是新东西:
snack = "薯片"
print(snack)
snack = "冰淇淋"
print(snack)
薯片 冰淇淋
给盒子贴标签的规矩
- 标签用英文起名,比如
name、age、score - 不能以数字开头(
2name不行) - 名字要"见名知意":装名字的叫
name,别装在aaa里,不然过两天自己都忘了
把话拼起来:f 字符串
现在电脑记住你了,怎么让它说出"你好,小雨"这样带名字的话?用 f 字符串——在引号前加一个小写字母 f,再把变量名放进花括号 {} 里:
name = input("你叫什么名字?")
print(f"你好,{name}!很高兴认识你。")
你叫什么名字?小雨 你好,小雨!很高兴认识你。
花括号就像一个"取货口"
{name} 的意思是:"打印到这里时,去 name 盒子里把东西取出来,放这里"。一取一换,电脑的话就"活"了——同样一句话,对不同的人说不同的名字。
常见错误提醒
1. 忘了引号前的 f:写 "你好 {name}" 会把 {name} 原样打印出来,因为电脑不知道要去取货。
2. 标签拼错:盒子叫 name,你喊 nama,电脑会说"找不到这个东西"(报错 NameError)。变量名是大小写敏感的,Name 和 name 是两个不同的盒子。
动手试一试:问答机器人
把下面的程序敲进去,运行一遍,多玩几次:
name = input("机器人:你好!你叫什么名字?")
age = input("机器人:你今年几岁?")
food = input("机器人:你最喜欢的食物是什么?")
print("机器人:我记住啦!")
print(f"你是 {name},今年 {age} 岁,最爱吃 {food}。")
print(f"{food}很美味!我也想尝尝,可惜我没有嘴巴 😢")
注意看:电脑把你说的每样东西都记住了,还在最后重新用了一遍。
练习:算命小机器人
基础任务:做一个"机器人朋友"。问对方三个问题(最喜欢的动物、最喜欢的科目、最想去的地方),然后用 f 字符串说出一段话,把三个回答都用上。
进阶任务:问对方"你的同桌叫什么",然后打印:某某和某某是好朋友!——提示:你需要两个盒子。
隐藏挑战:不运行程序,你能看出下面代码哪里错了吗?
name = input("你叫什么?")
print("你好,{name}")