五、输入与输出学习笔记
2026-02-19
Python基础
type
Post
status
Published
date
Feb 19, 2026
slug
python-input-output-notes-5
summary
输入输出是程序和用户交互的桥梁!我觉得
print() 和 input() 很简单,但真正用起来发现坑不少——特别是 input() 返回的永远是字符串,忘记类型转换就会报错。还有 sep 和 end 参数,用好了能让输出格式更灵活!tags
Python数据的存储与运算
category
Python基础
icon
password
💡 学习感悟:输入输出是程序和用户交互的桥梁!我觉得print()和input()很简单,但真正用起来发现坑不少——特别是input()返回的永远是字符串,忘记类型转换就会报错。还有sep和end参数,用好了能让输出格式更灵活!
1. 输出函数 print()
1.1 为什么需要 print()?
程序运行过程中,我们需要看到结果、调试信息或提示内容。
print() 函数将信息输出到屏幕(控制台),是程序与用户沟通的基本方式。📝 我的理解:print()就像是程序的嘴巴——把信息"说"出来给用户看。没有它,程序运行了什么我们都不知道,就像在黑盒子里操作一样。
1.2 自定义分隔符 sep
为什么需要自定义分隔符?
默认情况下,
print() 用空格分隔多个值。但有时我们需要其他分隔符(如逗号、横线等)。📝 我的理解:sep参数就像是胶水——决定多个值之间用什么连接。默认是空格,但可以换成-、、、:等任何字符,甚至空字符串""来无缝连接。
1.3 自定义结束符 end
为什么需要自定义结束符?
默认情况下,
print() 输出后会换行。有时我们需要不换行,或自定义结束符号。📝 我的理解:end参数控制行尾——默认是换行符\n,但可以改成空格、省略号,甚至空字符串来实现不换行。进度条效果就是用end=""让字符在同一行连续输出。
1.4 格式化输出
结合之前学习的字符串格式化知识:
📝 我的理解:格式化输出就像是排版——用<左对齐、>右对齐、^居中对齐,配合宽度数字,让输出像表格一样整齐美观。
2. 输入函数 input()
2.1 为什么需要 input()?
程序需要与用户交互,获取用户输入的数据(如用户名、密码、选择等)。
input() 函数让程序暂停,等待用户从键盘输入。📝 我的理解:input()就像是程序的耳朵——停下来听用户说什么。程序执行到input()时会暂停,直到用户输入内容并按回车,程序才继续执行。
2.2 input() 的重要特性 ⚠️
关键知识点:input() 返回的都是字符串
无论用户输入的是数字、小数还是其他内容,
input() 返回的永远是字符串类型。对比实验:
⚠️ 踩坑记录:这个坑我踩了好几次!input()返回的永远是字符串,即使输入的是数字18,它也是字符串"18"而不是整数18。做数学运算前一定要用int()或float()转换!
2.3 类型转换
为什么需要类型转换?
用户输入的数据都是字符串,但程序往往需要数字进行计算,因此需要类型转换。
📝 我的理解:类型转换就像是翻译——把字符串翻译成整数或浮点数,这样计算机才能进行数学运算。int()翻译整数,float()翻译小数,str()把数字翻译回字符串。
2.4 输入数值的完整示例
📝 我的理解:这个计算器展示了输入、类型转换、计算、输出的完整流程。注意用float()而不是int(),这样可以处理小数。除法结果用:.2f保留两位小数,更美观。
3. 输入输出的实际应用
3.1 用户信息录入系统
📝 我的理解:这个例子展示了如何组合使用输入输出。注意is_student的判断——如果输入"是",结果就是True,否则是False。这是一种简洁的布尔值获取方式。
3.2 简单的登录验证
📝 我的理解:登录验证是输入输出的经典应用。用==比较字符串是否相等,and连接两个条件。注意这里密码是明文显示的,实际应用中应该隐藏输入(用getpass模块)。
3.3 BMI 计算器
📝 我的理解:BMI 计算器展示了输入、计算、条件判断、输出的完整流程。注意height ** 2是身高的平方,BMI 公式是体重除以身高的平方。用:.2f格式化输出两位小数。
4. 遇到的问题和解决
4.1 忘记类型转换
⚠️ 踩坑记录:这是最常见的错误!input()返回字符串,字符串不能和数字相加。我现在养成了一个习惯:只要输入的是数字,立刻用int()或float()转换。
4.2 输入非数字内容时转换失败
⚠️ 踩坑记录:如果用户输入的不是数字,int()会抛出ValueError。在实际应用中,应该用try-except捕获异常,给用户友好的提示。这个知识点在异常处理章节会详细学习。
4.3 空输入的处理
📝 我的理解:空字符串""在 Python 中被视为False,所以可以用if not name来判断是否为空输入。这是一种简洁的写法。
4.4 浮点数精度问题
⚠️ 踩坑记录:浮点数精度问题在输入输出时也会出现!如果涉及金额计算,最好用round()四舍五入到两位小数,或者用整数(分)代替浮点数(元)。
5. 综合练习
练习 1:个人信息卡片
📝 我的理解:这个练习综合了字符串格式化、输入类型转换、输出美化。用=字符画边框,让输出看起来像一张卡片。
练习 2:成绩统计
📝 我的理解:成绩统计练习展示了如何接收多个输入、进行计算、输出统计结果。用max()和min()函数可以快速找出最高分和最低分。
练习 3:温度转换器
📝 我的理解:温度转换器展示了如何根据用户选择执行不同的计算。注意转换公式:
- 摄氏度转华氏度:
F = C × 9/5 + 32
- 华氏度转摄氏度:
C = (F - 32) × 5/9
6. 核心知识点整理
6.1 print() 函数速查
用法 | 示例 | 输出 |
基本输出 | print("Hello") | Hello |
输出多个值 | print("A", "B") | A B |
自定义分隔符 | print("A", "B", sep="-") | A-B |
不换行 | print("A", end="") | A(不换行) |
格式化输出 | print(f"{name}") | 变量值 |
6.2 input() 函数要点
- 返回值永远是字符串,即使输入数字
- 需要数值时必须转换:
int()、float()
- 可以设置提示信息:
input("提示:")
6.3 常见错误总结
错误类型 | 错误示例 | 正确写法 |
忘记类型转换 | age + 5 | int(age) + 5 |
输入非数字 | int("abc") | 用 try-except 处理 |
空输入 | name == "" | if not name |
6.4 需要注意的
- 输入数字时立即转换类型
- 使用 f-string 进行格式化输出
- 用
sep和end参数控制输出格式
- 涉及金额计算时注意浮点数精度
Loading...
