五、输入与输出学习笔记

五、输入与输出学习笔记

2026-02-19
Python基础
type
Post
status
Published
date
Feb 19, 2026
slug
python-input-output-notes-5
summary
输入输出是程序和用户交互的桥梁!我觉得 print()input() 很简单,但真正用起来发现坑不少——特别是 input() 返回的永远是字符串,忘记类型转换就会报错。还有 sepend 参数,用好了能让输出格式更灵活!
tags
Python数据的存储与运算
category
Python基础
icon
password
💡 学习感悟:输入输出是程序和用户交互的桥梁!我觉得 print()input() 很简单,但真正用起来发现坑不少——特别是 input() 返回的永远是字符串,忘记类型转换就会报错。还有 sepend 参数,用好了能让输出格式更灵活!

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 进行格式化输出
  • sepend 参数控制输出格式
  • 涉及金额计算时注意浮点数精度
推荐云服务

雨云 - 云服务器首选

稳定 · 高速 · 性价比超高

使用优惠码立享折扣,开启你的云端之旅~

一元试用秒级开通24h在线客服

优惠码

zqf
立即访问
Loading...
灵心小窝

灵心小窝

这里不是一个喧闹的地方,只是用来存放一些还不想遗忘的东西。

声明 © 2026 早清风
加载中...