Python3 输入和输出(手把手讲解)
💡一则或许对你有用的小广告
欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论
- 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于
Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...
,点击查看项目介绍 ;- 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;
截止目前, 星球 内专栏累计输出 82w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2900+ 小伙伴加入学习 ,欢迎点击围观
在编程的世界中,输入与输出(I/O)如同桥梁,连接着程序与外部世界。无论是开发一个简单的计算器,还是构建复杂的Web应用,掌握Python3的输入和输出方法都是开发者必备的基础技能。本文将从基础语法到高级技巧,通过实际案例和清晰的解释,帮助读者系统性地理解并灵活运用Python3的输入和输出功能。
一、基础输入与输出函数
1.1 输入函数 input()
input()
函数是Python中获取用户输入的最常用工具。它的语法简单,但功能强大,能够接收用户的键盘输入并返回一个字符串类型的数据。
示例代码:
name = input("请输入您的姓名:")
print(f"欢迎,{name}!")
关键点解析:
input()
的参数是提示信息,用于指导用户输入内容。- 返回值始终是字符串类型,若需进行数值运算,需手动转换类型(如
int()
或float()
)。
形象比喻:
可以把 input()
看作一个“对话窗口”,程序通过它向用户提问,用户回答后,程序再根据回答内容执行下一步操作。
1.2 输出函数 print()
print()
函数用于将数据输出到控制台,是调试和展示结果的核心工具。其语法灵活,支持多种格式化方式。
基础用法:
print("Hello, World!")
print(100 + 200) # 输出计算结果300
关键点解析:
- 默认情况下,
print()
会在输出内容后自动换行,可通过参数end
改变这一行为。 - 使用
sep
参数可以自定义输出内容之间的分隔符,默认为空格。
示例:
print("Python", "is", "awesome", sep="-", end="!\n")
二、格式化输出的进阶技巧
2.1 旧式格式化:%
操作符
虽然 print()
可直接输出变量,但在复杂场景下(如对齐、类型转换),旧式 %
格式化提供了更精细的控制。
示例:
name = "Alice"
age = 25
print("姓名:%s,年龄:%d" % (name, age))
格式说明符:
%s
:字符串%d
:整数%f
:浮点数(默认保留6位小数)
2.2 新式格式化:format()
方法
str.format()
方法比 %
更直观,支持参数位置和名称的灵活指定。
示例:
print("姓名:{}, 年龄:{}".format("Bob", 30))
高级用法:
print("{1} 是 {0} 的朋友".format("Alice", "Bob"))
print("成绩:{math:.1f}, 科目:{subject}".format(math=98.6, subject="数学"))
2.3 f-string(Python3.6+)
f-string(格式化字符串字面值)是Python3.6引入的语法糖,简洁高效,尤其适合快速输出变量。
示例:
name = "Charlie"
score = 95.5
print(f"{name} 的成绩是 {score:.2f} 分")
优势:
- 直接在字符串前加
f
,无需调用format()
方法。 - 支持嵌入表达式(如
f"{2+3}"
输出5
)。
三、文件输入与输出
3.1 文件读写基础
程序与文件的交互是输入输出的另一重要场景。Python通过 open()
函数打开文件,并通过模式参数指定操作类型。
打开文件的模式:
"r"
:只读(默认)"w"
:覆盖写入"a"
:追加写入"b"
:二进制模式(如图片、视频文件)
示例:写入文件
with open("data.txt", "w") as file:
file.write("第一行内容\n")
file.write("第二行内容")
示例:读取文件
with open("data.txt", "r") as file:
content = file.read() # 读取全部内容
print(content)
3.2 文件操作的上下文管理器 with
使用 with
语句管理文件对象,能确保文件在操作完成后自动关闭,避免资源泄漏。
对比:
file = open("data.txt", "r")
print(file.read())
file.close() # 必须显式关闭
with open("data.txt", "r") as file:
print(file.read()) # 自动关闭,无需手动操作
3.3 文件逐行读取与处理
对于大文件,逐行读取能节省内存。
示例:统计文件行数
line_count = 0
with open("data.txt", "r") as file:
for line in file:
line_count += 1
print(f"总行数:{line_count}")
四、高级输入输出技巧
4.1 标准输入输出重定向
在命令行中,可以通过重定向符号 >
和 <
将输入输出与文件关联,实现批量处理。
示例:
python script.py > output.txt
python script.py < input.txt
4.2 处理二进制文件
对于图片、音频等非文本文件,需以二进制模式操作。
示例:复制图片文件
with open("source.jpg", "rb") as source:
with open("copy.jpg", "wb") as target:
target.write(source.read())
五、常见问题与解决方案
5.1 输入非预期类型
若用户输入无法转换为数值,可能导致程序崩溃。通过 try-except
捕获异常可增强健壮性。
示例:安全的数值输入
while True:
try:
number = int(input("请输入一个整数:"))
print(f"您输入的数字是:{number}")
break
except ValueError:
print("输入无效,请重新输入!")
5.2 文件不存在或权限错误
操作不存在的文件或无写入权限时,会抛出 FileNotFoundError
或 PermissionError
。
解决方案:
try:
with open("missing.txt", "r") as file:
pass
except FileNotFoundError:
print("文件不存在,请检查路径!")
六、结论
Python3的输入和输出功能如同程序的“感官系统”,帮助开发者与用户及外部数据高效交互。从基础的 input()
和 print()
,到格式化字符串和文件操作,再到异常处理和高级技巧,掌握这些内容能让开发者构建出更健壮、灵活的应用。无论是处理用户交互界面,还是操作大规模数据文件,Python3的输入输出工具链都能提供强大的支持。
通过本文的学习,读者应能:
- 熟练使用输入输出函数完成基础任务。
- 理解不同格式化方法的适用场景。
- 安全地读写文件并处理常见异常。
- 结合实际项目需求,灵活组合输入输出技术。
编程之路永无止境,希望本文能为读者在Python3输入输出领域的探索提供坚实的起点。