🔢 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, a

Python 特色

交换变量不需要临时变量,这是 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 空值的概念