
图1:Python基本数据类型总览分类示意图
一、Python基本数据类型总览
学Python先认数据类型,就像学数学先认数字一样。简单说,数据类型就是给数据分个类,不同类型的数能干的事不一样——比如数字能做加减乘除,文字能做拼接,逻辑值能做判断。
Python入门阶段不用记太多,核心就5种基础类型,覆盖90%的日常开发场景,先把这5个学扎实就够了:
- 整数(int):没有小数的数字,比如年龄18、数量5、序号100,正负数和0都算
- 浮点数(float):带小数的数字,比如身高178.5、价格29.99、圆周率3.14
- 布尔类型(bool):只有两个值,True(真/是)和False(假/否),专门用来做判断
- 字符串(str):所有文字、符号、数字组合的文本,比如”Python”、”123456″、”小白编程笔记”
- 空值(NoneType):只有一个值None,就是“空的、没数据、还没赋值”的意思
教大家两个实用小技巧,快速判断数据类型:type() 直接看“是什么类型”,isinstance() 判断“是不是某个类型”,写代码调试时超好用。
# 新手必学:判断Python基本数据类型
age = 25
height = 175.5
is_student = True
username = "小白编程笔记"
temp_data = None
# 用type()看具体类型,直接复制运行就能看结果
print("age的类型:", type(age)) # 输出:<class 'int'>
print("height的类型:", type(height)) # 输出:<class 'float'>
print("username的类型:", type(username)) # 输出:<class 'str'>
# 用isinstance()判断,返回True/False,适合做条件判断
print("age是不是整数:", isinstance(age, int)) # 输出:True
print("username是不是字符串:", isinstance(username, str)) # 输出:True
二、数值类型:整数(int)+ 浮点数(float)
数值类型就是用来表示数字的,分整数和浮点数两种,也是大家最开始接触的类型。Python的数值运算很灵活,不用像C语言那样考虑“数据溢出”,多大的数字都能处理,新手直接用就行。
1. 整数(int):无小数的纯数字
整数的用法很简单,直接写数字就行,支持加减乘除、取余、平方等所有基本运算。另外Python还支持二进制、八进制、十六进制,做底层开发时会用到,新手先了解十进制就够了。
# 整数的定义和常用运算,直接复制运行
a = 15
b = 4
# 基础运算:加、减、乘、普通除法
print("加法:", a + b) # 19
print("减法:", a - b) # 11
print("乘法:", a * b) # 60
print("普通除法:", a / b)# 3.75(注意:结果会变成浮点数)
# 新手必学:整除、取余、幂运算
print("整除(舍去小数):", a // b) # 3
print("取余(求余数):", a % b) # 3
print("幂运算(平方/立方):", a ** 2) # 225(15的2次方)
# 超大整数也能直接算,Python不限制长度
big_num1 = 12345678901234567890
big_num2 = 98765432109876543210
print("超大整数相加:", big_num1 + big_num2) # 直接出结果,不报错
2. 浮点数(float):带小数的数字
浮点数就是带小数点的数字,日常用来表示身高、体重、价格这些需要精确到小数的场景,也支持科学计数法(比如1.8e3就是1800.0)。这里有个新手必踩的坑——浮点数运算有精度误差,比如0.1+0.2不等于0.3,而是0.30000000000000004,这不是代码错了,是计算机二进制存储的特性。
# 浮点数的定义和运算,注意精度误差
pi = 3.1415926
price = 29.99
sci_num = 1.8e3 # 科学计数法,等价于1800.0
print("科学计数法转换:", sci_num) # 输出:1800.0
print("0.1+0.2的结果:", 0.1 + 0.2) # 输出:0.30000000000000004(精度误差)
# 普通场景忽略误差即可,比如打印时保留2位小数
print("保留2位小数:", round(0.1 + 0.2, 2)) # 输出:0.3
3. 浮点数精度误差:精准解决方法
如果是做金融、电商结算这些对精度要求极高的场景,精度误差就不能忽略了。教大家用Python内置的decimal模块,彻底解决这个问题,原理就是用十进制存储数字,和我们日常计算的方式一致,结果100%精准。
# 高精度计算:用decimal模块解决浮点数误差
from decimal import Decimal
# 重点:参数要传字符串,不要直接传数字,避免提前出现误差
num1 = Decimal('0.1')
num2 = Decimal('0.2')
price = Decimal('99.99')
count = Decimal('3')
# 精准运算,结果和日常计算一致
print("0.1+0.2精准结果:", num1 + num2) # 输出:0.3
print("3件商品总价:", price * count) # 输出:299.97
三、布尔类型(bool):专门做判断的类型
布尔类型是Python里最简单的类型,只有两个固定值:True和False,**注意首字母必须大写**,小写的true/false会被当成普通变量,直接报错。
布尔值主要用来做条件判断(比如if语句、循环),核心记住一个规则:非0、非空、非None的内容,判断结果都是True;0、空字符串、None,判断结果都是False。另外布尔值本质是特殊的整数,True=1,False=0,能参与数值运算,但开发中不建议这么用,会让代码变难懂。
新手易错点
True/False首字母一定要大写!很多新手小写写成true/false,运行代码直接报“未定义变量”错误,踩过一次就记住了。
# 布尔类型的定义和常用操作
is_online = True
has_money = False
# 三大核心逻辑运算:与(and)、或(or)、非(not)
print("True and False:", True and False) # 与:两边都真才为真,输出False
print("True or False:", True or False) # 或:有一个真就为真,输出True
print("not True:", not True) # 非:取反,输出False
# 自动判断:哪些内容是True/False(新手重点记)
print("数字100:", bool(100)) # True(非0)
print("数字0:", bool(0)) # False(0)
print("非空字符串:", bool("Python")) # True(非空)
print("空字符串:", bool("")) # False(空)
print("None:", bool(None)) # False(空值)

图2:Python基本数据类型转换流程示意图
四、字符串类型(str):处理所有文本内容
字符串是Python里最常用的类型,没有之一,所有文字、符号、甚至数字组成的文本,都用字符串表示。字符串有个核心特性——不可变,意思是创建后不能直接修改里面的某个字符,比如想把”Python”改成”python”,不能直接改第一个字母,只能重新生成新的字符串。
定义字符串的关键规则:引号必须匹配,开头用单引号,结尾也得用单引号;支持单引号、双引号、三引号三种方式,新手根据场景选就行,不用死记。
1. 字符串的三种定义方式(各有妙用)
- 单引号:适合短文本,比如 ‘Python’、’123’,简单直接
- 双引号:适合包含单引号的文本,比如 “他说:’我在学Python'”,不用转义,更方便
- 三引号:适合多行文本,比如大段注释、博客内容,保留原始换行,不用手动加\n
# 字符串三种定义方式,新手按需选择 # 1. 单引号:短文本 str1 = 'Python零基础入门' # 2. 双引号:包含单引号的文本 str2 = "老师说:'学Python要多敲代码'" # 3. 三引号:多行文本,保留换行 str3 = ''' 这是小白编程笔记的Python教程 专注分享零基础能看懂的编程知识 从入门到实战,一步一步教 ''' # 直接打印,看多行效果 print(str2) print(str3)
2. 字符串格式化:新手必学的实战技巧
写代码时经常需要把变量嵌入到字符串里,比如“姓名:小白,年龄:20”,这就是字符串格式化。Python有三种格式化方式,最推荐用f-string(Python3.6及以上支持),语法最简单、运行最快,新手直接学这个就够了,另外两种了解即可。
# 字符串格式化:重点学f-string,其他了解即可
name = "小白"
age = 20
score = 95.5
# 方式1:f-string(推荐)- 直接{}嵌入变量,还能做简单运算
print(f"姓名:{name},年龄:{age}")
print(f"明年年龄:{age + 1},成绩:{score}分")
# 方式2:format() - 兼容低版本Python,了解即可
print("姓名:{},年龄:{}".format(name, age))
# 方式3:%格式化 - 老式方法,现在基本不用了
print("姓名:%s,成绩:%f" % (name, score))
五、空值类型(NoneType):表示“空”的特殊类型
空值类型是Python里的特殊类型,只有一个固定值:None,**首字母必须大写**,意思是“没有数据、未赋值、空的”。很多新手会把None和0、空字符串””搞混,这里重点强调:None不是0,不是空字符串,也不是False,它是一个独立的类型,专门表示“空”,三者只是在布尔判断时都为False,本质完全不同。
None的核心用法:初始化变量(先占个位置,后续再赋值)、标记函数无返回值、作为判断条件,新手记住“判断None用is None,不用== None”,更精准、更符合Python规范。
# 空值None的使用方法和注意事项
# 1. 初始化变量:先赋值None,后续再修改
user_info = None
# 2. 函数无返回值时,默认返回None
def say_hello():
print("你好,学Python的朋友!")
result = say_hello()
print("函数返回值:", result) # 输出:None
# 3. 判断变量是否为None(推荐用is None)
if user_info is None:
print("变量还没赋值,值是None")
else:
print("变量已赋值:", user_info)
# 重点:区分None、0、空字符串(本质不同)
print("None == 0?", None == 0) # False
print("None == ''?", None == "") # False
print("None == False?", None == False) # False

图3:Python基本数据类型可变与不可变对比示意图
六、数据类型转换:新手必学的核心操作
写代码时经常需要转换数据类型,比如把输入的字符串”18″转成整数18做运算,把数字100转成字符串”100″做拼接,这就是类型转换。Python的类型转换很简单,用内置函数就行,分两种情况:隐式转换(Python自动转)和显式转换(手动用函数转),新手重点学显式转换。
这里有个新手必踩的坑:字符串转数字时,字符串必须是纯数字,比如”123″能转成整数,”123a”就会报错,一定要注意格式。
类型转换核心规则(新手记死)
1. 纯数字字符串才能转数字,含字母/符号直接报错;2. 浮点数转整数直接舍去小数,不四舍五入(比如3.99转成3);3. 任何类型都能转字符串,无格式要求;4. 0/空/None转布尔值是False,其他都是True。
常用转换函数+实战代码
新手只需要记4个核心转换函数:int()(转整数)、float()(转浮点数)、str()(转字符串)、bool()(转布尔值),直接套用法就行,下面的代码可直接复制运行。
# 数据类型转换:新手必学4个核心函数
# 1. 字符串转数字(纯数字字符串才可以)
num_str = "188.88"
float_num = float(num_str) # 转浮点数
int_num = int(float_num) # 浮点数转整数(舍去小数)
print("转浮点数:", float_num) # 188.88
print("转整数:", int_num) # 188
# 2. 数字转字符串(任意数字都可以)
age = 20
age_str = str(age)
print("数字转字符串拼接:", "我的年龄是" + age_str + "岁")
# 3. 任意类型转布尔值(按核心规则来)
print("0转布尔:", bool(0)) # False
print("100转布尔:", bool(100)) # True
print("None转布尔:", bool(None))# False
print("非空字符串转布尔:", bool("Python")) # True
# 4. 隐式转换:Python自动转(不用手动管)
a = 10(整数)
b = 3.5(浮点数)
print("整数+浮点数:", a + b) # 13.5,整数自动转浮点数
七、可变与不可变类型:理解Python的底层逻辑
这部分是新手理解Python的关键,也是区分“新手”和“入门”的分水岭。简单说,不可变类型就是创建后不能直接修改,修改会生成新的对象;可变类型就是创建后能直接修改,修改后还是原来的对象。
教大家一个直观的方法:用id()函数看**内存地址**,如果修改后地址变了,就是不可变类型;地址不变,就是可变类型。本文讲的5种基础类型,全都是不可变类型,后续学的列表、字典是可变类型,先记死这个结论。
# 用id()函数看内存地址,理解可变/不可变
# 1. 不可变类型:整数(修改后地址变)
a = 10
print("a=10的地址:", id(a)) # 一个唯一数字
a = 20
print("a=20的地址:", id(a)) # 地址变了,生成新对象
# 2. 不可变类型:字符串(修改后地址变)
s = "Python"
print("s='Python'的地址:", id(s))
s = s + "3.10"
print("s='Python3.10'的地址:", id(s)) # 地址变了,生成新对象
# 3. 可变类型:列表(后续学,修改后地址不变)
lst = [1,2,3]
print("lst=[1,2,3]的地址:", id(lst))
lst.append(4)
print("lst=[1,2,3,4]的地址:", id(lst)) # 地址不变,修改原对象
不可变类型(基础类型全是)
- int(整数)、float(浮点数)
- bool(布尔)、str(字符串)
- NoneType(空值)
- 核心特点:修改后生成新对象,内存地址改变
可变类型(后续学习)
- list(列表)、dict(字典)
- set(集合)
- 核心特点:修改后原对象改变,内存地址不变
八、新手常见问题FAQ(解决90%的疑问)
Q1:为什么0.1+0.2不等于0.3?
不是代码错了,是计算机用二进制存储浮点数的特性导致的精度误差。普通场景用round()保留小数即可,金融等高精度场景用decimal模块,能彻底解决这个问题。
Q2:字符串是不可变的,怎么修改内容?
不能直接修改原字符串,只能通过“重新赋值”生成新字符串,比如用replace()替换字符、用+拼接内容,看似是“修改”,实际是创建了新的字符串对象,原字符串没变。
Q3:判断None为什么用is None,不用== None?
is用来判断“两个对象是不是同一个”(内存地址是否相同),==用来判断“两个对象的值是否相等”。None在Python中是唯一的,只有一个内存地址,用is None判断更精准、更符合Python规范,也能避免一些特殊情况的坑。
Q4:f-string、format()、%格式化,选哪个?
优先选f-string(Python3.6+),语法最简单、运行速度最快,{}里还能直接做运算、调用函数;如果需要兼容Python2.x,用format();%格式化是老式方法,现在基本不用了,代码可读性差。
Q5:布尔值为什么能和数字做运算?
因为Python的底层设计中,bool类型是int类型的子类,True继承自1,False继承自0,所以能直接参与数值运算。但实际开发中不建议这么用,会让代码的可读性变差,逻辑判断就用纯布尔值,不要和数字混用。
九、实战练习(必做!敲代码才是硬道理)
学Python不敲代码等于白学,下面6个练习覆盖本文所有核心知识点,建议新手独立完成,不会的再回头看文章,重点理解代码的执行逻辑,而不是死记硬背。
- 定义5个变量,分别是int、float、bool、str、None类型,用type()查看类型,用isinstance()判断类型;
- 用f-string格式化字符串,输出自己的信息(姓名、年龄、身高、爱好),其中身高为浮点数;
- 测试0.1+0.2的精度误差,用round()保留2位小数,再用decimal模块实现精准计算;
- 用id()函数演示字符串的不可变特性,修改字符串后查看内存地址变化;
- 将字符串”199.99″转成浮点数,再转成整数,观察结果;将整数200转成字符串,与”元”拼接;
- 定义一个布尔变量,分别与整数1和0做加法运算,观察结果,并解释底层原因。
十、核心知识点总结(新手快速复习)
- Python基本数据类型核心5种:int(整数)、float(浮点数)、bool(布尔)、str(字符串)、NoneType(空值);
- type()查看具体类型,isinstance()判断类型,id()查看内存地址,新手必学三个函数;
- 布尔值只有True/False(首字母大写),非0/非空/非None为True,0/空/None为False;
- 字符串不可变,支持单/双/三引号定义,f-string是最推荐的格式化方式;
- None是独立空值类型,判断用is None,不要和0、空字符串混淆;
- 浮点数有精度误差,高精度场景用decimal模块,普通场景用round()保留小数;
- 类型转换:纯数字字符串可转数字,浮点数转整数舍去小数,任何类型都能转字符串;
- 所有基础类型都是不可变类型,修改后生成新对象,内存地址改变;
- 不可变类型看内存地址用id(),地址变了就是生成了新对象。
本文是Python零基础入门系列的第二篇核心内容,也是Python编程的基础中的基础。更多新手能看懂的Python教程,可查看往期文章:Python变量与变量名全解析、Python简易计算器实战。想深入了解Python官方语法,可参考Python官方标准数据类型文档。
版权声明:本文所有内容(含代码、图片、文字)均为原创,未经授权禁止任何形式的转载、抄袭、洗稿
如需转载,请联系作者获得授权,并在正文开头显著位置标注原文链接和作者信息!
Python基本数据类型
Python零基础
Python入门
Python数据类型转换
Python语法

渝公网安备50022402001073号
Pingback: Python零基础入门系列专栏:10+篇干货从环境搭建到语法实战,小白一站式学Python - 小白 编程 笔记