这节课你要学会

1. 让电脑向你提问;2. 用"变量"记住事情;3. 把它们组合起来,做一个问答机器人。

让电脑提问:input

上一课电脑只会自己说话。加一个新本领 input,它就会等你回答

input("你叫什么名字?")
运行结果
你叫什么名字?_

运行后程序会停在那里,闪动的光标在等你打字。你输入名字按回车,程序才结束。input 括号里的话叫提示语,告诉回答的人该说什么。

记住事情:变量

有个问题:你回答了名字,电脑转头就忘了。怎么让它记住?用变量

变量就是一个贴了标签的盒子。你把东西放进去,再贴上标签。下次只要喊标签的名字,就能拿到里面的东西。

name = input("你叫什么名字?")
print(name)
print(name)
print(name)
运行结果(假设你回答"小雨")
你叫什么名字?小雨
小雨
小雨
小雨

第一行的意思是:把你输入的回答,放进叫 name 的盒子里。等号的意思是"装进去",不是数学里的"相等"。之后喊三声 name,它就把"小雨"给你三次。

盒子可以换东西

盒子里的东西可以随时换。换掉之后,标签还是那个标签,但拿出来的是新东西:

snack = "薯片"
print(snack)
snack = "冰淇淋"
print(snack)
运行结果
薯片
冰淇淋

给盒子贴标签的规矩

把话拼起来:f 字符串

现在电脑记住你了,怎么让它说出"你好,小雨"这样带名字的话?用 f 字符串——在引号前加一个小写字母 f,再把变量名放进花括号 {} 里:

name = input("你叫什么名字?")
print(f"你好,{name}!很高兴认识你。")
运行结果
你叫什么名字?小雨
你好,小雨!很高兴认识你。

花括号就像一个"取货口"

{name} 的意思是:"打印到这里时,去 name 盒子里把东西取出来,放这里"。一取一换,电脑的话就"活"了——同样一句话,对不同的人说不同的名字。

常见错误提醒

1. 忘了引号前的 f:"你好 {name}" 会把 {name} 原样打印出来,因为电脑不知道要去取货。

2. 标签拼错:盒子叫 name,你喊 nama,电脑会说"找不到这个东西"(报错 NameError)。变量名是大小写敏感的,Namename 是两个不同的盒子。

动手试一试:问答机器人

把下面的程序敲进去,运行一遍,多玩几次:

name = input("机器人:你好!你叫什么名字?")
age = input("机器人:你今年几岁?")
food = input("机器人:你最喜欢的食物是什么?")
print("机器人:我记住啦!")
print(f"你是 {name},今年 {age} 岁,最爱吃 {food}。")
print(f"{food}很美味!我也想尝尝,可惜我没有嘴巴 😢")

注意看:电脑把你说的每样东西都记住了,还在最后重新用了一遍。

练习:算命小机器人

基础任务:做一个"机器人朋友"。问对方三个问题(最喜欢的动物、最喜欢的科目、最想去的地方),然后用 f 字符串说出一段话,把三个回答都用上。

进阶任务:问对方"你的同桌叫什么",然后打印:某某和某某是好朋友!——提示:你需要两个盒子。

隐藏挑战:不运行程序,你能看出下面代码哪里错了吗?

name = input("你叫什么?")
print("你好,{name}")
接下来

你的程序会聊天了,但还不会算数。下一课我们教电脑做数学——它可是个计算天才,算得比你快一亿倍。我们还要用它做一个自己的计算器!