🔢 03. 变量与数据类型
本章概述
学习 Python 的变量概念和基本数据类型。 预计学习时间:50 分钟
3.1 什么是变量
变量就是给数据起个名字,方便后面使用。可以理解为「贴标签」。
name = "张三" # 把字符串"张三"存到变量name里
age = 18 # 把数字18存到变量age里
print(name) # 使用变量
print(age)变量的本质
Python 变量本质是「标签」,贴在数据对象上。 变量本身没有类型,数据才有类型。
3.2 变量的特点
动态类型
Python 是动态类型语言,变量不需要声明类型:
x = 10 # x是整数
print(type(x)) # <class 'int'>
x = "hello" # x变成字符串
print(type(x)) # <class 'str'>多变量赋值
# 同时给多个变量赋值
a, b, c = 1, 2, 3
# 多个变量赋同一个值
x = y = z = 0
# 交换两个变量(Python特有,不用临时变量)
a, b = b, aPython 特色
交换变量不需要临时变量,这是 Python 的语法糖!
3.3 Python 基本数据类型总览
| 类型分类 | 具体类型 | 说明 | 示例 |
|---|---|---|---|
| 数值类型 | int | 整数(任意精度) | 10, -5 |
| 数值类型 | float | 浮点数(小数) | 3.14, 1.5e2 |
| 数值类型 | bool | 布尔值 | True, False |
| 数值类型 | complex | 复数 | 1+2j |
| 序列类型 | str | 字符串 | "hello" |
| 序列类型 | list | 列表 | [1, 2, 3] |
| 序列类型 | tuple | 元组 | (1, 2, 3) |
| 序列类型 | range | 范围 | range(10) |
| 映射类型 | dict | 字典 | {"a": 1} |
| 集合类型 | set | 集合 | {1, 2, 3} |
| 集合类型 | frozenset | 不可变集合 | frozenset([1,2]) |
| 空类型 | NoneType | 空值 | None |
说明
3.4 查看数据类型
type() 函数
print(type(10)) # <class 'int'>
print(type("hello")) # <class 'str'>
print(type([1,2,3])) # <class 'list'>isinstance() 函数
判断是否为指定类型(推荐,支持继承关系):
isinstance(10, int) # True
isinstance("hi", str) # True
isinstance([1,2], list) # True
# 可以判断多种类型
isinstance(10, (int, float)) # True(是int或float都返回True)type() vs isinstance()
type():精确判断类型isinstance():考虑继承关系,更灵活- 一般推荐用
isinstance()
3.5 类型转换
常用类型转换函数
| 函数 | 说明 | 示例 | 结果 |
|---|---|---|---|
int(x) | 转整数 | int("123") | 123 |
float(x) | 转浮点数 | float("3.14") | 3.14 |
str(x) | 转字符串 | str(123) | "123" |
bool(x) | 转布尔值 | bool(0) | False |
list(x) | 转列表 | list("abc") | ['a','b','c'] |
tuple(x) | 转元组 | tuple([1,2,3]) | (1, 2, 3) |
set(x) | 转集合 | set([1,2,2,3]) | {1, 2, 3} |
dict(x) | 转字典 | dict([('a',1)]) | {'a': 1} |
详细示例
# 转整数
int("123") # 123
int(3.14) # 3(截断小数部分,不是四舍五入)
int(True) # 1
# 转浮点数
float("3.14") # 3.14
float(10) # 10.0
# 转字符串
str(123) # "123"
str(3.14) # "3.14"
str(True) # "True"
# 转列表
list("abc") # ['a', 'b', 'c']
list((1,2,3)) # [1, 2, 3]
# 转集合
set([1,2,2,3]) # {1, 2, 3}(自动去重)3.6 布尔值转换规则
什么是 False?
以下值在布尔判断中都是
False:
False,None- 数值 0:
0,0.0,0j- 空序列:
"",[],(),set(),range(0)- 空映射:
{}其他所有值都是
True
示例
bool(False) # False
bool(None) # False
bool(0) # False
bool(0.0) # False
bool("") # False
bool([]) # False
bool(()) # False
bool({}) # False
bool(set()) # False
bool("hello") # True
bool([1,2]) # True
bool(-1) # True
bool("False") # True(注意:非空字符串都是True)常见坑
"False"这个字符串是True,因为它不是空字符串!
3.7 None 空值
None 是 Python 中特殊的空值,表示「什么都没有」。
x = None
print(type(x)) # <class 'NoneType'>None 的特点
- 不是 0
- 不是空字符串
- 不是 False
- 是一个独立的类型
NoneType
常见用途
- 函数没有 return 时默认返回 None
- 变量初始化时表示还没有值
- 作为默认参数的默认值(避免可变对象的坑)
判断 None
# ✅ 正确:用 is 判断
if x is None:
print("是None")
# ❌ 不推荐:用 == 判断
if x == None:
print("是None")为什么用 is?
None在 Python 中是单例对象,用is判断更准确、更高效。
🔗 相关章节
📝 我的笔记
在这里记录你的理解、疑问和练习代码
# 你的练习代码
✅ 本章检查清单
- 理解变量的概念和特点
- 知道 Python 有哪些基本数据类型
- 会用 type() 和 isinstance() 查看类型
- 掌握常用的类型转换
- 理解布尔值的判断规则
- 了解 None 空值的概念