Python(三) 基础语法:输入和输出
一、为什么要学习输入和输出
程序不是孤立存在的。一个程序通常需要和外界交流:
- 从用户那里获取数据,这叫输入。
- 把处理结果展示出来,这叫输出。
例如,一个成绩判断程序需要先让用户输入成绩,然后程序判断成绩是否及格,最后把结果输出到屏幕上。
score = int(input("请输入成绩:"))
if score >= 60:
print("及格")
else:
print("不及格")
这段代码中:
input("请输入成绩:")是输入。print("及格")和print("不及格")是输出。
输入和输出是 Python 初学阶段非常重要的内容。掌握它以后,学生写出来的程序就不再只是固定结果,而是可以根据用户输入产生不同结果。
二、输入和输出的定义
1. 什么是输入
输入指的是程序从外部接收数据。
在基础学习阶段,最常见的输入是键盘输入。
也就是说,程序运行时,用户在键盘上输入内容,程序把这些内容接收进来。
Python 中最常用的键盘输入函数是:
input()
例子:
name = input("请输入你的姓名:")
程序运行到这一行时,会暂停等待用户输入。用户输入内容并按下回车后,输入的内容会被保存到变量 name 中。
2. 什么是输出
输出指的是程序把数据展示给外部。
在基础学习阶段,最常见的输出是把内容显示到屏幕上。
Python 中最常用的屏幕输出函数是:
print()
例子:
print("你好,Python")
运行后,屏幕上会显示:
你好,Python
三、print() 输出函数
print() 是 Python 中最常用的输出函数,用来把内容显示到屏幕上。
基本格式:
print(要输出的内容)
例如:
print("Hello")
print(123)
print(3.14)
输出结果:
Hello
123
3.14
四、print() 的基本使用方法
1. 输出字符串
字符串就是一段文本,需要用引号包起来。
print("欢迎学习 Python")
输出:
欢迎学习 Python
单引号也可以:
print('欢迎学习 Python')
一般来说,单引号和双引号都能表示字符串。教学时建议先统一使用双引号,学生更容易形成习惯。
2. 输出数字
输出数字时,不需要加引号。
print(100)
print(3.14)
输出:
100
3.14
注意:
print(100)
print("100")
这两行看起来输出都像 100,但它们的含义不同:
100是整数。"100"是字符串。
在输出时看起来一样,但参与计算时完全不同。
3. 输出变量
变量中保存了什么内容,print() 就可以输出什么内容。
name = "小明"
age = 18
print(name)
print(age)
输出:
小明
18
4. 同时输出多个内容
print() 可以一次输出多个内容,多个内容之间用逗号隔开。
name = "小明"
age = 18
print("姓名:", name)
print("年龄:", age)
输出:
姓名: 小明
年龄: 18
也可以在同一行输出多个变量:
name = "小明"
age = 18
score = 95
print(name, age, score)
输出:
小明 18 95
默认情况下,print() 输出多个内容时,中间会自动加一个空格。
5. 输出表达式的结果
print() 不仅可以输出固定内容,还可以输出计算结果。
print(10 + 20)
print(5 * 6)
print(100 / 4)
输出:
30
30
25.0
也可以输出变量运算的结果:
price = 20
count = 3
print(price * count)
输出:
60
五、print() 中的 sep 参数
sep 是 separator 的缩写,意思是“分隔符”。
当 print() 输出多个内容时,默认用空格分隔。
print("小明", 18, "北京")
输出:
小明 18 北京
如果想修改中间的分隔符,可以使用 sep。
print("小明", 18, "北京", sep="-")
输出:
小明-18-北京
再比如:
year = 2026
month = 7
day = 1
print(year, month, day, sep="/")
输出:
2026/7/1
教学时可以这样解释:
逗号负责告诉 print() 要输出多个内容,sep 负责决定这些内容中间用什么连接。
六、print() 中的 end 参数
默认情况下,每执行一次 print(),输出后都会自动换行。
print("Hello")
print("Python")
输出:
Hello
Python
这是因为 print() 默认在结尾加了换行符。
如果不想换行,可以使用 end 参数。
print("Hello", end="")
print("Python")
输出:
HelloPython
如果希望两个输出之间用空格连接:
print("Hello", end=" ")
print("Python")
输出:
Hello Python
再比如,输出 1 到 5,让它们显示在同一行:
for i in range(1, 6):
print(i, end=" ")
输出:
1 2 3 4 5
注意:
end 控制的是一条 print() 输出结束后追加什么内容。
七、转义字符
有些字符不能直接写出来,或者写出来不方便,这时可以使用转义字符。
常见转义字符:
| 转义字符 | 含义 |
|---|---|
\n |
换行 |
\t |
制表符,常用于对齐 |
\" |
双引号 |
\' |
单引号 |
\\ |
反斜杠 |
1. 换行符 \n
print("第一行\n第二行")
输出:
第一行
第二行
2. 制表符 \t
print("姓名\t年龄\t成绩")
print("小明\t18\t95")
输出效果类似:
姓名 年龄 成绩
小明 18 95
3. 输出引号
如果字符串外层使用双引号,里面又要显示双引号,可以使用转义。
print("他说:\"你好\"")
输出:
他说:"你好"
也可以外层用单引号,里面直接写双引号:
print('他说:"你好"')
这在教学中更容易理解。
八、格式化输出
格式化输出指的是按照指定格式把数据输出出来。
比如,我们希望输出:
小明今年18岁,成绩是95分。
如果有变量:
name = "小明"
age = 18
score = 95
就需要把文字和变量组合起来输出。
1. 使用逗号输出
最简单的方法是用逗号。
name = "小明"
age = 18
score = 95
print(name, "今年", age, "岁,成绩是", score, "分。")
输出:
小明 今年 18 岁,成绩是 95 分。
这种方法简单,但默认会在每个内容之间加空格。有时格式不够自然。
2. 使用字符串拼接
可以用 + 拼接字符串。
name = "小明"
print("你好," + name)
输出:
你好,小明
但是要注意,字符串只能和字符串直接拼接。
错误写法:
age = 18
print("年龄:" + age)
这会报错,因为 "年龄:" 是字符串,age 是整数。
正确写法:
age = 18
print("年龄:" + str(age))
这里 str(age) 把整数转换成字符串。
3. 使用 f-string
在现在的 Python 教学中,非常推荐使用 f-string。
基本格式:
f"文字{变量}文字"
例子:
name = "小明"
age = 18
score = 95
print(f"{name}今年{age}岁,成绩是{score}分。")
输出:
小明今年18岁,成绩是95分。
f-string 的优点:
- 写法直观。
- 变量放在
{}中。 - 不需要手动转换大多数基本类型。
- 很适合初学者理解。
也可以在 {} 中写简单表达式:
price = 20
count = 3
print(f"总价是{price * count}元。")
输出:
总价是60元。
4. 控制小数位数
输出小数时,经常需要控制小数位数。
例如:
price = 9.876
print(f"价格是{price:.2f}元")
输出:
价格是9.88元
说明:
{price}表示输出变量price。:.2f表示保留两位小数。
再比如:
score = 88.5
print(f"成绩是{score:.1f}分")
输出:
成绩是88.5分
九、input() 输入函数
input() 是 Python 中最常用的输入函数。
它的作用是:
等待用户从键盘输入内容,并把输入内容作为字符串返回。
基本格式:
变量 = input("提示文字")
例子:
name = input("请输入姓名:")
print("你好,", name)
程序运行时会显示:
请输入姓名:
用户输入:
小明
程序输出:
你好, 小明
十、input() 的使用方法
1. 带提示文字的输入
建议使用 input() 时写上提示文字,这样用户知道应该输入什么。
name = input("请输入你的姓名:")
不推荐:
name = input()
这种写法不是错误,但用户运行程序时不知道要输入什么。
2. input() 的返回值一定是字符串
这是输入部分最重要的知识点之一。
无论用户输入的是文字、整数还是小数,input() 得到的结果都是字符串。
例子:
age = input("请输入年龄:")
print(type(age))
如果用户输入:
18
输出可能是:
<class 'str'>
这说明 age 不是整数 18,而是字符串 "18"。
3. 输入整数
如果需要把用户输入当作整数使用,需要用 int() 转换。
age = int(input("请输入年龄:"))
if age >= 18:
print("已成年")
else:
print("未成年")
这里:
input("请输入年龄:")
先得到字符串。
int(...)
再把字符串转换成整数。
4. 输入小数
如果需要输入小数,可以使用 float()。
height = float(input("请输入身高,单位米:"))
print(f"你的身高是{height}米")
如果用户输入:
1.75
变量 height 中保存的是浮点数 1.75。
5. 输入后进行计算
例子:计算两个整数的和。
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
total = a + b
print(f"两个数的和是{total}")
如果没有使用 int(),会出现不同结果。
a = input("请输入第一个整数:")
b = input("请输入第二个整数:")
print(a + b)
用户输入:
10
20
输出:
1020
原因是:
a 和 b 都是字符串,字符串之间的 + 表示拼接,不是数学加法。
十一、一次输入多个数据
有时用户会在一行中输入多个数据,例如:
10 20
这时可以使用 split() 拆分。
1. 使用 split() 拆分字符串
text = input("请输入两个数,用空格分隔:")
parts = text.split()
print(parts)
如果用户输入:
10 20
输出:
['10', '20']
split() 默认按照空白字符拆分,包括空格、多个空格、制表符等。
2. 拆分后分别保存
a, b = input("请输入两个数,用空格分隔:").split()
print(a)
print(b)
用户输入:
10 20
输出:
10
20
注意:
此时 a 和 b 仍然是字符串。
3. 拆分后转换成整数
a, b = input("请输入两个整数,用空格分隔:").split()
a = int(a)
b = int(b)
print(f"和是{a + b}")
也可以使用 map() 简化:
a, b = map(int, input("请输入两个整数,用空格分隔:").split())
print(f"和是{a + b}")
对于初学者,建议先讲分步写法,再讲 map() 简写。
十二、输入输出综合示例
示例 1:问候用户
name = input("请输入你的姓名:")
print(f"你好,{name}!欢迎学习 Python。")
运行示例:
请输入你的姓名:小明
你好,小明!欢迎学习 Python。
示例 2:计算矩形面积
length = float(input("请输入矩形的长:"))
width = float(input("请输入矩形的宽:"))
area = length * width
print(f"矩形的面积是{area:.2f}")
运行示例:
请输入矩形的长:5
请输入矩形的宽:3
矩形的面积是15.00
示例 3:判断奇偶数
number = int(input("请输入一个整数:"))
if number % 2 == 0:
print(f"{number} 是偶数")
else:
print(f"{number} 是奇数")
示例 4:简单收银程序
price = float(input("请输入商品单价:"))
count = int(input("请输入购买数量:"))
total = price * count
print(f"商品单价:{price:.2f}元")
print(f"购买数量:{count}")
print(f"应付金额:{total:.2f}元")
这个例子适合课堂演示,因为它同时用到了:
- 输入小数
- 输入整数
- 计算
- 格式化输出
- 控制小数位数
十三、简单文件输入输出
前面讲的是键盘输入和屏幕输出。除了和用户交流,程序也经常需要和文件交流。
从文件读取内容,也是一种输入。
把内容写入文件,也是一种输出。
这部分可以作为基础输入输出的扩展内容。
1. 写入文件
可以使用 open() 打开文件,再使用 write() 写入内容。
file = open("hello.txt", "w", encoding="utf-8")
file.write("你好,Python")
file.close()
说明:
"hello.txt"是文件名。"w"表示写入模式。encoding="utf-8"表示使用 UTF-8 编码,写中文时建议加上。write()用来写入内容。close()用来关闭文件。
运行后,会生成一个名为 hello.txt 的文件,里面写入:
你好,Python
2. 使用 with 写入文件
更推荐使用 with,它会在代码块结束后自动关闭文件。
with open("hello.txt", "w", encoding="utf-8") as file:
file.write("你好,Python")
这比手动 close() 更安全,也更常用。
课堂教学可以先介绍普通写法,再强调实际使用更推荐 with。
3. 读取文件
读取文件可以使用 "r" 模式。
with open("hello.txt", "r", encoding="utf-8") as file:
content = file.read()
print(content)
这段代码会读取 hello.txt 中的全部内容,并输出到屏幕。
4. 逐行读取文件
如果文件有多行内容,可以逐行读取。
假设 students.txt 中有:
小明
小红
小刚
读取代码:
with open("students.txt", "r", encoding="utf-8") as file:
for line in file:
print(line.strip())
这里的 strip() 用来去掉每行末尾的换行符。
5. 追加写入文件
如果不想覆盖原来的文件内容,而是追加到文件末尾,可以使用 "a" 模式。
with open("log.txt", "a", encoding="utf-8") as file:
file.write("程序运行了一次\n")
说明:
"w"会覆盖原文件内容。"a"会在原文件末尾追加内容。
这是文件输出中特别需要提醒学生的地方。
十四、输入输出的注意事项
1. input() 得到的是字符串
这是最常见的错误来源。
错误示例:
age = input("请输入年龄:")
if age >= 18:
print("已成年")
这里会出错,因为 age 是字符串,18 是整数,二者不能直接比较。
正确写法:
age = int(input("请输入年龄:"))
if age >= 18:
print("已成年")
2. 转换类型时要保证输入内容合法
下面代码要求用户输入整数:
age = int(input("请输入年龄:"))
如果用户输入:
abc
程序会报错,因为 "abc" 不能转换成整数。
后面学习异常处理后,可以这样写:
try:
age = int(input("请输入年龄:"))
print(f"你的年龄是{age}")
except ValueError:
print("输入错误,请输入整数。")
在基础阶段,可以先提醒学生:
使用 int() 或 float() 转换时,用户必须输入符合要求的数字。
3. 不要随便使用 eval() 处理输入
有些资料会使用 eval(input()) 把用户输入自动转成表达式。
例如:
number = eval(input("请输入数字:"))
不建议初学者这样写。
原因是 eval() 会把用户输入当成 Python 代码执行,存在安全风险。
比如用户输入的不是普通数字,而是一段危险代码,程序也可能尝试执行它。
教学中建议明确告诉学生:
输入整数用 int(),输入小数用 float(),不要为了省事滥用 eval()。
4. print() 中逗号和加号含义不同
逗号是输出多个内容:
name = "小明"
age = 18
print("姓名:", name, "年龄:", age)
加号是字符串拼接:
name = "小明"
print("姓名:" + name)
如果用加号拼接字符串和数字,会报错:
age = 18
print("年龄:" + age)
正确写法:
age = 18
print("年龄:" + str(age))
或者更推荐:
age = 18
print(f"年龄:{age}")
5. 注意 print() 默认会换行
print("A")
print("B")
输出:
A
B
如果想在同一行输出,要使用 end。
print("A", end="")
print("B")
输出:
AB
6. 注意中文编码
在 Python 3 中,字符串本身可以很好地支持中文。
print("你好,世界")
但是读写文件时,如果涉及中文,建议写上:
encoding="utf-8"
例如:
with open("data.txt", "w", encoding="utf-8") as file:
file.write("你好")
这样可以减少中文乱码问题。
7. 提示文字要清楚
输入提示要让用户知道输入什么。
不推荐:
score = int(input("输入:"))
推荐:
score = int(input("请输入学生成绩:"))
如果有单位,也要写清楚:
height = float(input("请输入身高,单位米:"))
清楚的提示文字能减少用户输入错误。
8. 输出结果要让人看得懂
不推荐:
print(total)
如果只输出一个数字,用户可能不知道它是什么意思。
推荐:
print(f"总价是{total}元")
程序是给人使用的,输出内容应该有明确含义。
十五、教学中可以这样讲
可以用一个生活化比喻:
输入像是老师给学生出题,学生把答案交给程序。
输出像是程序批改后,把结果告诉学生。
比如:
name = input("请输入学生姓名:")
score = int(input("请输入学生成绩:"))
if score >= 60:
result = "及格"
else:
result = "不及格"
print(f"{name}的成绩是{score}分,结果:{result}")
这段代码的流程是:
- 程序提示用户输入姓名。
- 程序提示用户输入成绩。
- 程序把成绩转换成整数。
- 程序根据成绩判断结果。
- 程序把姓名、成绩和判断结果输出。
这就是一个完整的输入、处理、输出过程。
可以把它总结为:
输入 -> 处理 -> 输出
这是很多程序的基本结构。
十六、课堂练习
练习 1:输出个人信息
请定义姓名、年龄、城市三个变量,并用 print() 输出。
要求输出效果类似:
姓名:小明
年龄:18
城市:北京
参考答案:
name = "小明"
age = 18
city = "北京"
print(f"姓名:{name}")
print(f"年龄:{age}")
print(f"城市:{city}")
练习 2:输入姓名并问候
请让用户输入姓名,然后输出问候语。
参考答案:
name = input("请输入你的姓名:")
print(f"你好,{name}!")
练习 3:计算两个整数的和
请让用户输入两个整数,并输出它们的和。
参考答案:
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
print(f"两个整数的和是{a + b}")
练习 4:计算圆的面积
请让用户输入圆的半径,计算并输出圆的面积。
参考答案:
radius = float(input("请输入圆的半径:"))
pi = 3.14159
area = pi * radius * radius
print(f"圆的面积是{area:.2f}")
练习 5:判断是否成年
请让用户输入年龄,判断是否成年。
参考答案:
age = int(input("请输入年龄:"))
if age >= 18:
print("已成年")
else:
print("未成年")
练习 6:一行输入两个数
请让用户在一行中输入两个整数,计算它们的乘积。
参考答案:
a, b = input("请输入两个整数,用空格分隔:").split()
a = int(a)
b = int(b)
print(f"两个整数的乘积是{a * b}")
也可以写成:
a, b = map(int, input("请输入两个整数,用空格分隔:").split())
print(f"两个整数的乘积是{a * b}")
练习 7:写入文件
请把一句话写入 message.txt 文件。
参考答案:
with open("message.txt", "w", encoding="utf-8") as file:
file.write("今天开始学习 Python 输入输出。")
练习 8:读取文件
请读取 message.txt 文件中的内容,并输出到屏幕。
参考答案:
with open("message.txt", "r", encoding="utf-8") as file:
content = file.read()
print(content)
十七、常见错误对照表
| 错误现象 | 常见原因 | 修改方法 |
|---|---|---|
| 输入数字后不能做加法 | input() 得到的是字符串 |
使用 int() 或 float() 转换 |
字符串和数字用 + 拼接时报错 |
类型不同,不能直接拼接 | 使用 str() 或 f-string |
每次 print() 都换行 |
print() 默认结尾是换行 |
使用 end 参数 |
| 多个输出内容中间有空格 | print() 默认分隔符是空格 |
使用 sep 参数 |
| 中文写入文件后乱码 | 文件编码不一致 | 打开文件时指定 encoding="utf-8" |
int(input()) 报错 |
用户输入的不是整数 | 提醒用户输入正确格式,或使用异常处理 |
| 文件内容被覆盖 | 使用了 "w" 模式 |
如需追加,使用 "a" 模式 |
十八、总结
输入和输出是程序与外界交流的方式。
在 Python 基础语法中:
print()用来输出内容到屏幕。input()用来从键盘接收用户输入。input()得到的内容一定是字符串。- 如果要把输入当作数字使用,需要使用
int()或float()进行类型转换。 - f-string 是非常推荐的格式化输出方式。
sep可以控制多个输出内容之间的分隔符。end可以控制输出结束后是否换行。- 文件读写也是输入输出的一种形式,推荐使用
with open(...)。
教学时可以让学生记住一句话:
输入负责拿到数据,处理负责计算和判断,输出负责展示结果。
掌握输入和输出后,学生就可以写出能和用户互动的小程序,这是从“看代码”走向“写程序”的重要一步。