作者:着迷不白
手把手教你用 input() 获取用户数据,用类型转换处理不同类型,用格式化输出优雅地展示结果。


一、为什么需要数据类型转换?

在 Python 中,不同数据类型的值不能直接混合运算。比如:

a = "12"   # 字符串
b = 22     # 整数
print(a + b)   # ❌ 报错:TypeError

因为 + 对于字符串是拼接,对于数字是加法,类型不一致时 Python 不知道该怎么办。

✅ 解决方案:将字符串转为数字,再运算。

a = "12"
b = 22
print(int(a) + b)   # 输出 34

二、常用数据类型转换函数

Python 提供了三个最常用的转换函数:

函数

作用

示例

int(x)

将 x 转换为整数

int("10")10
int(3.14)3(截断小数)

float(x)

将 x 转换为浮点数

float("10")10.0
float(5)5.0

str(x)

将 x 转换为字符串

str(100)"100"
str(3.14)"3.14"

⚠️ 注意陷阱

  • int("9.9") 会报错,因为字符串包含小数点,不能直接转整数。应先转 float 再转 intint(float("9.9"))9
  • int("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 功能逐步排查。

调试步骤

  1. 设置断点:在代码行号右侧空白处单击,出现红点。
  2. 启动调试:右键 → Debug '文件名'(或点击右上角小虫子图标)
  3. 单步执行:使用 Step Over(F8)逐行运行,观察变量值变化。

Debug 可以让你清楚地看到每一行执行后变量的值和类型,是定位问题的神器!


作业

单选题

  1. 以下代码执行结果是?( )
a = "100"
b = int(a)
print(b + 50)

A. 150
B. "10050"
C. 报错
D. 10050

  1. 执行代码 num = input("请输入数字"),得到的变量 num 是什么类型?( )
    A. 整数
    B. 浮点数
    C. 字符串
    D. 布尔值
  2. 以下哪种情况使用 int() 转换会报错?( )
    A. int("25")
    B. int(3.8)
    C. int("abc")
    D. int(5)
  3. 使用 f-string 格式化输出,以下代码正确的是?( )
    A. print(f"年龄:age")
    B. print(f"年龄:{age}")
    C. print("年龄:{age}")
    D. print(f"年龄:{age")
  4. 使用 % 格式化输出,想要保留浮点数 2 位小数,写法应该是?( )
    A. %d
    B. %s
    C. %.2f
    D. %f

简答题

  1. 为什么 print("100" + 50) 会报错?如何修改才能让代码正常执行?
  2. 列举 3 种 Python 中常用的数据类型转换函数。

编程题

  1. 要求用户在控制台分别输入三个数字,需要用到 3 个 input 函数,拿到三个数字进行相加,最后打印输出相加结果。
  2. (选做题)输入用户的姓名、年龄(整数)、身高(浮点数),并用格式化输出用户信息。例如:“姓名:张三,年龄:20 岁,身高:1.75m”

作业答案

选择题答案

题号

答案

解析

1

A

a 是字符串 "100"int(a) 转为整数 100,100 + 50 = 150

2

C

input() 返回的一定是字符串类型

3

C

int("abc") 无法转换,会报 ValueError

4

B

f-string 的正确写法:f"文本{变量}",变量必须写在 {}

5

C

%.2f 表示保留两位小数的浮点数

简答题答案

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。

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐