Python 数据类型与数据类型转换
2026/5/9 22:24:08 网站建设 项目流程

🐍 Python 新手必看:数据类型与类型转换完全指南

刚学 Python,被intstrfloat绕晕了?别担心,这篇教程用最通俗的语言,带你彻底搞懂 Python 的数据类型和类型转换。


一、为什么数据类型很重要?

在编程世界里,数据就是一切。但数字123和文本"123"是完全不同的东西——前者可以做数学运算,后者只是一串字符。

数据类型就是 Python 给每个数据贴上的"标签",告诉计算机:这个数据该怎么存储、能做什么操作。


二、Python 的六大基础数据类型

1. 整数(int)

就是我们数学里的整数,没有小数点。

age = 18 year = 2026 temperature = -5 print(type(age)) # <class 'int'>

2. 浮点数(float)

带小数点的数字。

price = 19.99 pi = 3.14159 height = -1.75 print(type(price)) # <class 'float'>

💡注意1.0虽然是整数数值,但因为有小数点,Python 会把它当作float

3. 字符串(str)

文本数据,必须用引号包裹(单引号、双引号都可以)。

name = "Alice" message = '你好,Python!' empty = "" # 空字符串也是字符串 print(type(name)) # <class 'str'>

字符串还可以用三引号写多行:

poem = """床前明月光, 疑是地上霜。"""

4. 布尔值(bool)

只有两个值:True(真)和False(假)。

is_student = True has_money = False print(type(is_student)) # <class 'bool'>

布尔值常用于条件判断,比如if语句。

5. 空值(NoneType)

表示"什么都没有",只有一个值None

result = None print(type(result)) # <class 'NoneType'>

常用于初始化变量或表示函数没有返回值。

6. 复数(complex)

新手很少用到,知道有这个东西就行。

c = 3 + 4j print(type(c)) # <class 'complex'>

三、如何查看数据类型?

Python 提供了两个常用工具:

type()函数

最直接的方式:

print(type(100)) # <class 'int'> print(type("100")) # <class 'str'> print(type(3.14)) # <class 'float'> print(type(True)) # <class 'bool'>

isinstance()函数

用于判断某个数据是否是指定类型,返回布尔值:

print(isinstance(100, int)) # True print(isinstance("100", int)) # False print(isinstance(3.14, (int, float))) # True(可以是多种类型之一)

💡isinstance()在写条件判断时特别有用,比如先判断类型再决定怎么处理数据。


四、数据类型转换

很多时候,我们需要把一种类型变成另一种类型。比如用户输入的是字符串"18",但我们需要把它当成数字来计算年龄。

1. 显式转换(强制转换)

Python 提供了几个内置函数:

表格

函数作用示例
int()转成整数int("10")10
float()转成浮点数float("3.14")3.14
str()转成字符串str(100)"100"
bool()转成布尔值bool(1)True
list()转成列表list("abc")['a','b','c']
常见转换示例
# 字符串 → 整数 age_str = "18" age_int = int(age_str) print(age_int + 2) # 20 # 整数 → 字符串 num = 100 num_str = str(num) print("编号:" + num_str) # 编号:100 # 整数 → 浮点数 a = 5 b = float(a) print(b) # 5.0 # 浮点数 → 整数(直接截断小数,不是四舍五入!) c = 3.99 d = int(c) print(d) # 3
布尔值的转换规则
# 数字转布尔:0 是 False,其他都是 True print(bool(0)) # False print(bool(-5)) # True print(bool(3.14)) # True # 字符串转布尔:空字符串是 False,其他都是 True print(bool("")) # False print(bool("hello")) # True # None 转布尔 print(bool(None)) # False

2. 隐式转换(自动转换)

Python 会在某些运算中自动转换类型,不需要你手动操作。

# 整数 + 浮点数 → 自动变成浮点数 result = 5 + 3.2 print(result) # 8.2 print(type(result)) # <class 'float'> # 布尔值参与数学运算时,True=1, False=0 print(True + 5) # 6 print(False * 10) # 0

⚠️注意:隐式转换只发生在"不会丢失信息"的情况下。字符串和数字之间不会自动转换。


五、新手最常踩的坑

❌ 坑 1:字符串和数字直接相加

age = 18 print("我今年" + age + "岁") # ❌ 报错!

原因:Python 不允许字符串和数字直接拼接。

解决

# 方法1:转换成字符串 print("我今年" + str(age) + "岁") # 方法2:用 f-string(推荐,最优雅) print(f"我今年{age}岁")

❌ 坑 2:int()转换浮点字符串报错

pi = "3.14" print(int(pi)) # ❌ 报错!ValueError

原因int()不能直接转换带小数的字符串。

解决

# 先转 float,再转 int print(int(float(pi))) # 3

❌ 坑 3:空字符串转整数

print(int("")) # ❌ 报错!ValueError

解决:转换前先判断:

s = "" if s: num = int(s) else: num = 0

❌ 坑 4:floatint不是四舍五入

print(int(2.9)) # 2,不是 3!

解决:需要四舍五入用round()

print(round(2.9)) # 3 print(round(2.4)) # 2

六、一张图记住类型转换

┌──────────┐ │ 字符串 │◄────────┐ │ "123" │ │ └────┬─────┘ │ │ str() │ int()│ float() │ ▼ │ ┌──────────┐ │ │ 整数 │ │ │ 123 │◄───────┤ └────┬─────┘ │ │ float() │ ▼ │ ┌──────────┐ │ │ 浮点数 │ │ │ 123.0 │────────┘ └──────────┘ str()

七、总结

表格

数据类型英文示例特点
整数int42,-7没有小数点
浮点数float3.14,-0.5有小数点
字符串str"hello"用引号包裹
布尔值boolTrue,False只有两种值
空值NoneTypeNone表示"无"

记住三个核心函数

  • type(x)—— 查看类型

  • isinstance(x, type)—— 判断类型

  • int()/float()/str()—— 转换类型

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询