输入/输出-聊天机器人
欢迎回到我们的 Python 冒险之旅!在第 1 部分中,我们学习了变量就像存钱罐。现在,在第 2 部分中,我们将探索 Python 程序如何使用输入和输出来与用户交谈。我们将构建一个非常简单的聊天机器人,它可以提出问题并根据您的回答进行响应。到最后,您将了解如何将信息输入到您的程序中(输入)以及如何将信息输出(输出)。
让我们深入了解 Python 中的输入和输出。把它想象成进行一次对话。您的程序需要一种方式来向用户提问或获取信息——这就是输入。它还需要一种方式来向用户显示消息、结果或响应——这就是输出。
在 Python 中,我们通常使用 input()
函数来从用户那里获取输入,并使用 print()
函数来显示输出。
input()
:此函数会暂停您的程序并等待用户输入内容并按 Enter 键。用户输入的任何内容都将作为字符串(文本)返回。您可以在括号内包含一条消息来提示用户,例如input("你叫什么名字? ")
。print()
:此函数将值、文本或变量内容显示到控制台。您可以打印简单的消息,例如print("你好!")
,或者像我们在第 1 部分中所做的那样组合文本和变量。
这是一个简单的聊天机器人示例,它会询问您的姓名和喜欢的颜色:
python
# 询问用户的名字
user_name = input("嗨!你叫什么名字? ")
# 按名字问候用户
print("很高兴认识你,", user_name + "!")
# 询问用户喜欢的颜色
fav_color = input("你最喜欢的颜色是什么? ")
# 回应关于颜色的信息
print(fav_color + " 是个很棒的颜色!")
# 简单的告别
print("感谢聊天!")
此代码将产生如下交互(用户输入显示在问题之后):
嗨!你叫什么名字? Alex
很高兴认识你,Alex!
你最喜欢的颜色是什么? Blue
Blue 是个很棒的颜色!
感谢聊天!
让我们分解一下代码:
- 首先,我们使用
input()
来询问用户的姓名并将响应存储在user_name
变量中。 - 然后,我们使用
print()
来问候用户,将文本“很高兴认识你,”与存储在user_name
中的值结合起来。注意这里的+
号用于连接字符串。 - 接下来,我们再次使用
input()
来询问喜欢的颜色并将其存储在fav_color
中。 - 然后我们使用
print()
来评论颜色,再次将变量fav_color
与其他文本连接起来。 - 最后,一个简单的
print()
语句说再见。
现在,让我们制作一个交互性稍强的问答机器人。这个机器人会问一个简单的问题,并根据答案给出不同的响应。
python
# 问一个简单的问题
answer = input("法国的首都是哪里? ")
# 检查答案(不区分大小写)
if answer.lower() == "paris":
print("正确!做得好。")
else:
print("不太对。答案是巴黎!")
# 问另一个问题
food_answer = input("你喜欢披萨吗? (yes/no) ")
# 根据食物答案回应
if food_answer.lower() == "yes":
print("我也是!披萨太棒了。")
elif food_answer.lower() == "no":
print("哦,好吧。那我就多吃点披萨了!")
else:
print("那不是一个明确的 yes 或 no,但感谢分享!")
print("聊天结束!")
此代码将:
- 使用
input()
询问法国的首都。 - 使用
if/else
语句来检查答案。我们使用.lower()
将用户的输入转换为小写,所以他们输入 "Paris"、"paris" 还是 "PARIS" 都没关系。 - 如果答案正确,则打印一条消息,如果错误,则打印另一条消息。
- 问第二个关于披萨的问题。
- 使用
if/elif/else
结构对 "yes"、"no" 或任何其他输入做出不同的响应。
示例交互:
法国的首都是哪里? paris
正确!做得好。
你喜欢披萨吗? (yes/no) YES
我也是!披萨太棒了。
聊天结束!
奖励: 修改聊天机器人程序。添加更多问题!你能让它询问用户的年龄,并根据他们是否小于或大于某个特定年龄而做出不同的回应吗?请记住,您可能需要像我们在第 1 部分处理 pocket_money
那样,使用 int()
将输入的年龄(这是一个字符串)转换为数字。
祝您编码愉快!