🐍 Python输入、类型转换与格式化输出
作者:着迷不白手把手教你用 input() 获取用户数据,用类型转换处理不同类型,用格式化输出优雅地展示结果。
一、为什么需要数据类型转换?
在 Python 中,不同数据类型的值不能直接混合运算。比如:
a = "12"# 字符串b = 22# 整数print(a + b) # ❌ 报错:TypeError
因为 + 对于字符串是拼接,对于数字是加法,类型不一致时 Python 不知道该怎么办。
✅ 解决方案:将字符串转为数字,再运算。
a = "12"b = 22print(int(a) + b) # 输出 34
二、常用数据类型转换函数
Python 提供了三个最常用的转换函数:
| | |
|---|
int(x) | | int("10") |
float(x) | | float("10") |
str(x) | | str(100) → "100"str(3.14) → "3.14" |
⚠️ 注意陷阱
int("9.9") 会报错,因为字符串包含小数点,不能直接转整数。应先转 float 再转 int:int(float("9.9")) → 9int("abc") 也会报错,因为字母无法转为数字。
随堂练习示例
a4 = 10b4 = "20"c4 = 19.9# 1. 加法(a4 + b4)print(a4 + int(b4)) # 30# 2. 字符串拼接(b4 + c4)print(b4 + str(c4)) # "2019.9"
三、用户输入:input() 函数
input() 用于从控制台获取用户输入,程序会暂停等待用户按回车。用户输入的内容永远以字符串(str)类型返回。
基本用法
# 不带提示user_input = input()print("你输入了", user_input)# 带提示信息name = input("请输入你的名字:")print("你好", name)
⭐ 重点:类型转换
因为 input() 返回的是字符串,如果后续要做数学运算,必须手动转换。
age_input = input("请输入你的年龄:") # 字符串,例如 "18"age = int(age_input) # 转为整数print("明年你", age + 1, "岁")
编程小练习:计算矩形面积
length = float(input("请输入长度:"))width = float(input("请输入宽度:"))area = length * widthprint("矩形面积是:", area)
四、格式化输出(让打印更优雅)
格式化输出可以让你在字符串中直接嵌入变量,代码更简洁、可读性更高。
方法一:f-string(推荐,Python 3.6+)
name = "tom"age = 30print(f"名字:{name},年龄:{age}")# 输出:名字:tom,年龄:30# 控制小数位数pi = 3.1415926print(f"π保留两位小数:{pi:.2f}") # 3.14
方法二:百分号(%)格式化(老式)
name = "tom"age = 30print("名字:%s,年龄:%d" % (name, age))# 常用占位符:# %s - 字符串# %d - 整数# %f - 浮点数(默认6位小数)# %.2f - 保留两位小数print("π ≈ %.2f" % 3.14159) # 3.14
对比普通拼接 vs 格式化输出
area = 123.456# 普通拼接(不优雅)print("矩形的面积是:", area, "平方")# f-string 格式化(优雅)print(f"矩形的面积是:{area}平方")
综合练习
nian = 2024yue = 11ri = 8time = "21:00"# % 格式化print("今天是%d年%d月%d号%s" % (nian, yue, ri, time))# f-stringprint(f"今天是{nian}年{yue}月{ri}号{time}")
五、拓展:Debug 调试入门
当代码出现意想不到的结果时,可以使用 PyCharm 的 Debug 功能逐步排查。
调试步骤
- 启动调试:右键 →
Debug '文件名'(或点击右上角小虫子图标) - 单步执行:使用
Step Over(F8)逐行运行,观察变量值变化。
Debug 可以让你清楚地看到每一行执行后变量的值和类型,是定位问题的神器!
作业
单选题
a = "100"b = int(a)print(b + 50)
A. 150B. "10050"C. 报错D. 10050
- 执行代码
num = input("请输入数字"),得到的变量 num 是什么类型?( )A. 整数B. 浮点数C. 字符串D. 布尔值 - 以下哪种情况使用
int() 转换会报错?( )A. int("25")B. int(3.8)C. int("abc")D. int(5) - 使用 f-string 格式化输出,以下代码正确的是?( )A.
print(f"年龄:age")B. print(f"年龄:{age}")C. print("年龄:{age}")D. print(f"年龄:{age") - 使用
% 格式化输出,想要保留浮点数 2 位小数,写法应该是?( )A. %dB. %sC. %.2fD. %f
简答题
- 为什么
print("100" + 50) 会报错?如何修改才能让代码正常执行? - 列举 3 种 Python 中常用的数据类型转换函数。
编程题
- 要求用户在控制台分别输入三个数字,需要用到 3 个
input 函数,拿到三个数字进行相加,最后打印输出相加结果。 - (选做题)输入用户的姓名、年龄(整数)、身高(浮点数),并用格式化输出用户信息。例如:“姓名:张三,年龄:20 岁,身高:1.75m”
作业答案
选择题答案
| | |
|---|
| A | a 是字符串 "100",int(a) 转为整数 100,100 + 50 = 150 |
| C | input() |
| C | int("abc") |
| B | f-string 的正确写法:f"文本{变量}",变量必须写在 {} 内 |
| C | %.2f |
简答题答案
6. 为什么 print("100" + 50) 会报错?如何修改?
- 原因:
"100" 是字符串,50 是整数,+ 在字符串和整数之间没有定义(不能直接拼接或相加)。 - 将整数转为字符串:
print("100" + str(50)) → 输出 "10050" - 或将字符串转为整数:
print(int("100") + 50) → 输出 150
7. 列举 3 种 Python 中常用的数据类型转换函数
编程题答案
8. 三个数字相加
num1 = float(input("请输入第一个数字:"))num2 = float(input("请输入第二个数字:"))num3 = float(input("请输入第三个数字:"))total = num1 + num2 + num3print("三个数的和是:", total)
9. (选做题)格式化输出用户信息
name = input("请输入姓名:")age = int(input("请输入年龄:"))height = float(input("请输入身高(米):"))# 使用 f-stringprint(f"姓名:{name},年龄:{age}岁,身高:{height}m")# 也可以使用 % 格式化# print("姓名:%s,年龄:%d岁,身高:%.2fm" % (name, age, height))
总结
本篇博客总结了:
- 类型转换:
int()、float()、str() 的用法与注意事项 - 格式化输出:f-string(推荐)和
% 格式化
掌握这些内容,你已经可以编写交互式 Python 程序了!快去试试让用户输入数据,然后做一些计算或信息展示吧。
📌 如果觉得有帮助,欢迎收藏或分享给同样在学习 Python 的朋友。
🔜下一篇预告:条件判断(if / else)—— 让程序学会做决策。©着迷不白 — 人生苦短,我用 Python。