news 2026/4/16 10:36:58

Python编程实战营05:Python 标准输入输出语句详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python编程实战营05:Python 标准输入输出语句详解

Python 标准输入输出语句详解

相关文章:

《Python编程实战营-02.数据类型》
《Python编程实战营-03.Python 基本语法规则详细介绍》

《Python编程训练营-04-Python 程序控制语句详解-CSDN博客》

一、标准输入(Standard Input)

标准输入通常指从键盘或其他输入设备读取数据,Python 中最常用的输入函数是input(),也可通过sys.stdin模块实现更灵活的输入控制。

1. input () 函数

作用:从标准输入(通常是键盘)读取一行文本,返回为字符串类型(无论输入内容是什么)。

语法

python

variable = input([prompt])

基本用法与示例

python

# 1. 基本输入(无提示) name = input() print(f"你输入的姓名是:{name}") # 若输入 "Alice",输出:你输入的姓名是:Alice # 2. 带提示文本 age = input("请输入年龄:") print(f"年龄是:{age}") # 若输入 "25",输出:年龄是:25(注意:age是字符串类型)

常见问题与注意事项

2. 处理多个输入值

当用户需要输入多个值(如空格 / 逗号分隔),可通过split()分割字符串。

示例

python

# 1. 空格分隔的多个值 a, b, c = input("输入三个数字(空格分隔):").split() a = int(a) b = int(b) c = int(c) print(f"总和:{a + b + c}") # 输入:1 2 3 → 输出:6 # 2. 逗号分隔的多个值(需处理空格) nums = input("输入两个数字(逗号分隔):").split(',') a = int(nums[0].strip()) # 去除空格 b = int(nums[1].strip()) print(f"乘积:{a * b}") # 输入:1, 2 → 输出:2
3. sys.stdin 模块(进阶输入)

sys.stdin是 Python 的标准输入流,支持更灵活的输入控制(如读取多行内容)。

常用方法

示例

python

import sys # 1. 读取全部输入 all_input = sys.stdin.read() print(f"全部输入:{all_input}") # 输入 "Hello\nWorld" → 输出:全部输入:Hello\nWorld # 2. 读取一行 line = sys.stdin.readline().strip() # strip()去除换行符 print(f"读取一行:{line}") # 输入 "Python" → 输出:读取一行:Python # 3. 读取多行 lines = sys.stdin.readlines() print("所有行:", lines) # 输入 "a\nb" → 输出:所有行: ['a\n', 'b']

二、标准输出(Standard Output)

标准输出通常指将数据打印到控制台,Python 中最常用的输出函数是print(),支持多种格式化输出方式。

1. print () 函数

语法

python

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

基本用法与示例

python

# 1. 输出单个对象 print("Hello Python!") # 输出:Hello Python! # 2. 输出多个对象(默认空格分隔) print("a", "b", "c") # 输出:a b c # 3. 指定分隔符 print("a", "b", "c", sep=',') # 输出:a,b,c # 4. 控制结束符(不换行) print("Hello", end=' ') print("World!") # 输出:Hello World!(同一行) # 5. 输出到文件(需打开文件,file参数指定) with open("output.txt", "w") as f: print("写入文件!", file=f) # 内容写入output.txt
2. 格式化输出

Python 支持多种格式化输出方式,推荐优先使用f-string(Python 3.6+),简洁高效。

(1)f-string(格式化字符串)

语法:在字符串前加f,用{表达式}嵌入变量或计算结果。

示例

python

name = "Alice" age = 25 score = 98.5 # 1. 基本嵌入变量 print(f"姓名:{name},年龄:{age}") # 输出:姓名:Alice,年龄:25 # 2. 嵌入表达式 print(f"明年年龄:{age + 1}") # 输出:明年年龄:26 # 3. 格式化浮点数(保留2位小数) print(f"分数:{score:.2f}") # 输出:分数:98.50 # 4. 多行输出(三重引号) multi_line = f'''姓名:{name} 年龄:{age} 分数:{score}''' print(multi_line)
(2)旧式格式化(% 操作符,了解即可)

语法:类似 C 语言printf,用%s(字符串)、%d(整数)、%f(浮点数)等格式符。

示例

python

name = "Bob" age = 30 score = 95.5 print("姓名:%s,年龄:%d,分数:%.2f" % (name, age, score)) # 输出:姓名:Bob,年龄:30,分数:95.50
(3)str.format () 方法(Python 3.0+)

通过{}占位符,支持位置参数、命名参数和格式控制。

示例

python

data = {"name": "Charlie", "age": 22} # 1. 位置参数 print("姓名:{0},年龄:{1}".format("Charlie", 22)) # 输出:姓名:Charlie,年龄:22 # 2. 命名参数 print("姓名:{name},年龄:{age}".format(**data)) # 输出:姓名:Charlie,年龄:22 # 3. 格式控制(居中对齐,宽度10) print("{:^10}".format("Hello")) # 输出: Hello
3. 标准错误输出(sys.stderr)

sys.stderr用于输出错误信息(如调试日志),与标准输出(stdout)分离。

示例

python

import sys # 1. 通过print输出到 stderr print("这是错误信息!", file=sys.stderr) # 2. 通过sys.stderr.write() sys.stderr.write("错误:文件不存在!\n")

三、常见问题与解决方案

问题场景错误 / 问题描述解决方案
input () 类型转换失败输入非数字,转 int/float 报错使用try-except捕获异常,或先检查输入合法性。
print () 换行控制输出不符合预期的换行通过end参数控制,如print("a", end=' ')
格式化输出类型不匹配% d 与字符串参数、% f 与整数参数冲突确保格式符与参数类型一致,使用显式转换(如int()float())。
f-string 语法错误大括号未闭合或转义错误使用{{}}转义大括号,检查括号闭合。
读取多行输入内存溢出sys.stdin.read () 加载全部内容逐行迭代读取(for line in sys.stdin:),避免一次性加载大量数据。

总结

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/11 19:38:01

SSH X11转发显示PyTorch图形界面

SSH X11转发显示PyTorch图形界面 在深度学习项目开发中,一个常见的痛点是:我们手握云上配备A100显卡的远程服务器,却只能通过命令行“盲调”模型。当训练进行到一半时想看看损失曲线,或是调试数据增强效果时想直观查看图像输出&a…

作者头像 李华
网站建设 2026/4/13 12:10:36

vivado hls对function函数做优化

一、函数层面优化 1.函数pipeline流水线优化 2.函数dataflow数据流优化 3.函数resource资源优化 4.函数中的子模块函数的分配和函数模块共享 5.函数的接口优化 6.函数的并行执行和函数数据流优化二、top_level函数内部无sub_function情况下优化这种情况下就集中在接口&#xff…

作者头像 李华
网站建设 2026/4/15 8:52:31

Markdown插入视频演示PyTorch模型效果

基于容器化环境的 PyTorch 模型开发与可视化实践 在深度学习项目中,一个常见的困境是:算法逻辑已经跑通,训练结果也令人满意,但当你试图向团队成员或导师展示“模型到底做了什么”时,却只能靠打印损失值曲线和一堆静态…

作者头像 李华
网站建设 2026/4/11 14:45:00

SSH动态端口转发代理PyTorch网络请求

SSH动态端口转发代理PyTorch网络请求 在现代深度学习开发中,一个常见的场景是:你手头只有一台轻薄笔记本,却需要运行基于GPU的大型模型训练任务。于是你把代码推送到远程服务器——那台配备了多张A100的机器上,准备通过Jupyter No…

作者头像 李华
网站建设 2026/4/10 8:03:39

经典算法题型之排序算法(一)

如大家所了解的,排序算法是一类非常经典的算法,说来简单,说难也难。刚学编程时大家都爱用冒泡排序,随后接触到选择排序、插入排序等,历史上还有昙花一现的希尔排序,公司面试时也经常会问到快速排序等等&…

作者头像 李华
网站建设 2026/4/8 12:40:15

DiskInfo定期扫描预防坏道影响PyTorch训练

DiskInfo定期扫描预防坏道影响PyTorch训练 在深度学习项目中,一次完整的模型训练往往需要数小时乃至数周时间。当GPU正以90%以上的利用率全力推进反向传播时,突然的I/O阻塞或容器崩溃却让一切归零——这种令人沮丧的情况,背后最常见的“隐形杀…

作者头像 李华