





















在 Python 3 中,输入与输出(I/O)是编程中最基础的操作之一。无论是与用户交互、读取文件,还是将数据打印到控制台,Python 都提供了简洁、强大的内置函数和标准库支持。本文将系统地介绍 Python 3 中的输入与输出,涵盖控制台 I/O、文件 I/O、格式化输出以及相关的高级用法。
input()input() 函数用于从标准输入(通常是键盘)读取一行文本,并将其作为字符串返回(末尾的换行符会被自动去除)。
name = input("请输入您的名字:")
print("你好," + name)
age = int(input("请输入年龄:")) # 转为整数
height = float(input("请输入身高(米):")) # 转为浮点数
注意:若输入无法转换为目标类型,程序会抛出 ValueError,实际开发中应使用 try...except 进行异常处理。
print()print() 函数用于将对象输出到标准输出(默认是屏幕)。其完整签名如下:
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
*objects:一个或多个要打印的对象,Python 会自动调用 str() 将其转换为字符串。sep:分隔符,默认为一个空格。例如 print(1, 2, 3, sep='-') 输出 1-2-3。end:结尾字符串,默认为换行符 \n。可以改成其他字符,如 print("Hello", end='') 则不换行。file:指定输出流,默认是 sys.stdout,可以重定向到文件或其它类文件对象。flush:是否强制刷新缓冲区,默认为 False。print("Python", 3, "入门", sep=" | ") # 输出:Python | 3 | 入门
print("进度", end="...") # 不换行
print("完成") # 接着上一行输出:进度...完成
在实际开发中,我们经常需要将变量插入到字符串中。Python 3 提供了三种主流方式。
% 格式化(C 风格)name = "Alice"
age = 25
print("我的名字是 %s,今年 %d 岁。" % (name, age))
str.format() 方法更强大、更灵活,使用 {} 占位符。
print("我的名字是 {},今年 {} 岁。".format(name, age))
# 可指定位置参数
print("我的名字是 {0},今年 {1} 岁。".format(name, age))
# 也可使用关键字参数
print("我的名字是 {n},今年 {a} 岁。".format(n=name, a=age))
最简洁、推荐的方式。在字符串前加 f,然后在 {} 内直接写表达式。
print(f"我的名字是 {name},今年 {age} 岁。")
# 还可以调用方法或计算
print(f"明年我将 {age + 1} 岁。")
Python 通过内置的 open() 函数打开文件,返回文件对象,然后进行读写操作。
f = open('data.txt', 'r', encoding='utf-8') # 只读模式,指定编码
常用模式:
'r':只读(默认)'w':写入(会覆盖已有内容)'a':追加(在文件末尾添加)'x':独占创建,如果文件存在则失败'b':二进制模式(如 'rb'、'wb')'+':读写模式(如 'r+')read(size):读取指定字节数,不指定则读取全部。readline():读取一行。readlines():读取所有行,返回字符串列表。with open('data.txt', 'r', encoding='utf-8') as f:
content = f.read()
print(content)
使用 with 语句(上下文管理器)可以确保文件自动关闭,推荐使用。
write(string):写入字符串。writelines(list):写入多个字符串(不自动添加换行符)。with open('output.txt', 'w', encoding='utf-8') as f:
f.write("第一行\n")
f.write("第二行\n")
sys.stdin、sys.stdout、sys.stderrPython 的 sys 模块提供了标准输入、输出、错误流。input() 本质上是 sys.stdin.readline() 的简化,print() 默认写入 sys.stdout。
import sys
# 从标准输入读取一行
line = sys.stdin.readline()
# 直接写入标准输出
sys.stdout.write("Hello\n")
# 写入错误流
sys.stderr.write("出错了!\n")
这些对象可以被重定向,例如将输出写入文件或管道,用于脚本间的数据传递。
FileNotFoundError、PermissionError 等。ValueError。try...except 进行容错处理:try:
num = int(input("输入整数:"))
print(f"平方是 {num**2}")
except ValueError:
print("输入无效,请输入整数。")
input() 会尝试将输入当作 Python 表达式求值(不安全且易错),而 raw_input() 才返回字符串。Python 3 将 raw_input() 重命名为 input(),并移除了旧版的 input()。print 是一个函数(需要括号),而 Python 2 中 print 是一条语句。print("内容", end="") 可实现同一行覆盖输出(配合 \r 实现进度条效果)。utf-8)以避免跨平台乱码问题。Python 3 的输入输出机制设计得简洁而强大:
input() 和 print() 满足绝大多数交互需求;with 语句安全高效;sys 流对象提供了底层控制能力。掌握这些基本工具,即可轻松处理 Python 程序中的数据流动。如果有更具体的使用场景(如 JSON 序列化、二进制数据处理、管道通信等),还有专门的库(如 json、pickle、subprocess)可以进一步探索。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。