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




所有评论(0)