学径XUEJING · 个人学习平台通知设置

课程库 AI 主线 Python 第一步 › 第 3

输入与输出 —— 和程序对话

普通课45 分钟

本课导读

前两课的程序都是"自说自话"——数据写死在代码里。这一课教程序开口和你对话:把信息漂亮地说出来(f-string,你以后天天用),把你的回答接进来(input),并处理好"接进来的永远是字符串"这个新手必踩的坑。

把话说漂亮:f-string

上一课用 + 拼接字符串,遇到数字还得小心翼翼。Python 有个优雅得多的办法——f-string:在引号前加个 f,字符串里就可以用花括号"挖坑",把变量直接填进去:

Python

对比第一行和后两行:f-string 不用管拼接、不用管类型转换,花括号里甚至能直接做计算(age + 5)。从今天起,拼字符串优先用 f-string——它是 Python 世界的通用习惯。

提示

记忆钩子:f = format(格式化)。花括号是"填空题的空",Python 负责把变量的值填进去。忘了加 f 的话,花括号会被原样打印出来——试试删掉上面的 f 运行一次。

听程序提问:input()

到目前为止数据都是我们写死的。input() 让程序停下来,等你输入

Python

说明

点运行后,浏览器会弹出一个输入框——那就是 input() 在等你回答。如果你的浏览器没有弹窗或报了错,不用纠结:这是网页运行环境的限制,在 Colab 里 input() 会以更自然的方式等你打字(还记得 U0.1 配好的 Colab 吗?它就是为这类练习准备的)。本课后面的例子都会用"直接赋值"来模拟输入,两种方式学到的知识完全一样。

input() 的括号里放提示语(问对方什么),它的返回值——你输入的内容——用变量接住,之后就能随意使用。

大坑预警:input() 拿到的永远是字符串

这是本课最重要的知识点。无论你输入什么,input() 交给你的都是字符串——你输入 28,它给你的是 "28"(带引号的那种)。

还记得上一课的 TypeError 吗?字符串没法直接参与算术。所以拿到"数字模样的字符串"后,要先用 int()(转整数)或 float()(转小数)转换:

Python

int(age_text) 那行删掉、直接用 age_text + 10 试试——你会亲眼见到那个经典的 TypeError。见过一次,以后就免疫了。

注意

口诀:input 进来先转型,要算数就 int/float。真实世界里这个坑无处不在:网页表单、Excel 表格、配置文件读进来的"数字",几乎都是字符串。你今天在 5 行的小程序里练会的这一手,以后在数据分析里天天用。

串起来:一个完整的对话小程序

三样东西(提问、接住、漂亮地回答)合体:

Python

✍️ 练习

提示

练习规则(本单元通用):先自己写,卡住了先挣扎 15 分钟,再看提示;参考答案只在自己跑通后(或彻底卡死时)打开对照。

练习 1:自我介绍生成器

给定三个变量,用 f-string 打印两行自我介绍:第一行"大家好,我是 XX,来自 XX",第二行"我的爱好是 XX"。

Python
💡 提示

两个 print(),每个里面一个 f-string,花括号里填变量名。

✅ 参考答案
name = "阿杰"
city = "成都"
hobby = "爬山"

print(f"大家好,我是 {name},来自 {city}")
print(f"我的爱好是 {hobby}")

练习 2:温度换算

摄氏度转华氏度的公式是:华氏 = 摄氏 × 9 ÷ 5 + 32。给定摄氏温度(模拟输入的字符串),打印换算结果。

Python
💡 提示

三步:① float()int() 转型 ② 套公式算出结果存进新变量 ③ f-string 打印。乘法是 *,除法是 /

✅ 参考答案
celsius_text = "26"

celsius = float(celsius_text)
fahrenheit = celsius * 9 / 5 + 32
print(f"{celsius} 摄氏度 = {fahrenheit} 华氏度")

练习 3:购物小票(挑战)

单价 12.5 元的笔记本买了 3 本,打印一行小票:「笔记本 x3,合计 37.5 元」。数量是模拟输入的字符串 "3"

Python
✅ 参考答案
price = 12.5
count_text = "3"

count = int(count_text)
total = price * count
print(f"笔记本 x{count},合计 {total} 元")

count 要用 int() 转(数量是整数);total 自动是小数,因为 price 是 float。

随堂测验

随堂测验0 / 4 题正确

1. 用户在 input() 弹出的输入框里输入了 100,程序拿到的是什么?

2. print(f"明年 {age + 1} 岁") 中花括号的作用是?

3. int("8") + 2 的结果是?

4. 用户输入的身高是“1.75”,想参与计算应该用哪个转换?

本课小结

  • f-string:引号前加 f,花括号填空,可放变量可计算——拼字符串的默认姿势
  • input(提示语) 让程序停下来等输入;网页环境用弹窗,Colab 里体验更完整
  • input 拿到的永远是字符串:要算数,先 int() / float() 转型
  • 这套"进来→转型→计算→漂亮输出"的流程,是几乎所有程序的骨架

下一课,程序学会"看情况办事"——if/else 条件判断。

划选正文任意文字可高亮、批注或加入复习卡

讨论

载入中…