Python 数据类型学习笔记

Python 数据类型学习笔记

目录

  1. 常见的数据类型
  2. 变量的定义
  3. 常见类型函数
  4. 字符串
  5. 输入输出函数
  6. 类型转换
  7. 运算符
  8. 流程控制语句
  9. 数据容器
  10. 变量作用域
  11. 函数参数
  12. 类型注解

一、常见的数据类型

1. 数值类型

  • 整数int - 如:10, -5, 0
  • 浮点数/小数float - 如:3.14, -0.5

2. 布尔类型:bool

  • 只有两个值:True(真) / False(假)

3. 字符串:str

  • 用于表示文本数据,如:"hello", 'Python'

4. 空值:None

  • 表示什么都没有,类似于其他语言的 null

5. 数据容器(复合类型)

类型 表示 特点
列表 list 有序、可重复、可修改
元组 tuple 有序、可重复、不可修改
集合 set 无序不重复、可修改
字典 dict 键值对存储,键唯一

二、变量的定义

1. 什么是变量?

变量是程序中用来存储数据的容器。

2. 变量命名规则

  • 由字母、数字、下划线组成
  • 不能以数字开头
  • 区分大小写(nameName 是不同的变量)
  • 不能使用 Python 关键字(如 if, for, class 等)

3. 赋值方式

python 复制代码
# 单个赋值
a = 1

# 多个变量同时赋值
a, b = 1, "Python"

# 连续赋值
x = y = z = 0

三、常见类型函数

1. type() 函数

  • 功能:查询数据的类型

  • 示例

    python 复制代码
    type(123)        # 返回 <class 'int'>
    type("hello")    # 返回 <class 'str'>
    type([1, 2, 3])  # 返回 <class 'list'>

2. isinstance() 函数

  • 功能:检验数据是否属于指定的类型

  • 返回值 :布尔值(True / False

  • 语法isinstance(数据, 类型)

  • 示例

    python 复制代码
    isinstance(123, int)        # 返回 True
    isinstance("hello", str)    # 返回 True
    isinstance([1, 2], list)    # 返回 True

四、字符串

1. 字符串的表示方式

方式 示例 说明
单引号 'hello' 普通字符串
双引号 "hello" 普通字符串
三引号 '''多行文本'''"""多行文本""" 支持换行

2. 常见转义字符

转义字符 含义
\n 换行
\t 制表符(Tab)
\' 单引号
\" 双引号
\\ 反斜杠

3. 字符串的拼接

  • 使用 + 号连接两个字符串
  • 非字符串类型会自动调用 __str__() 方法转换
python 复制代码
"Hello" + " World"    # "Hello World"
"Age: " + str(25)     # "Age: 25"

4. 字符串的格式化

python 复制代码
name = "张三"
age = 20

# 方式1:% 操作符(旧式)
"姓名:%s,年龄:%d" % (name, age)

# 方式2:format() 方法
"姓名:{},年龄:{}".format(name, age)

# 方式3:f-string(推荐,Python 3.6+)
f"姓名:{name},年龄:{age}"

5. 字符串常用方法

方法 功能
upper() 转换为大写
lower() 转换为小写
title() 每个单词首字母大写
strip() 删除首尾空格
replace(old, new) 替换子字符串
split(sep) 按分隔符分割
join(iterable) 将可迭代对象连接成字符串

五、输入输出函数

1. input() 函数

  • 功能:获取键盘输入的数据
  • 用法变量 = input("提示信息")
  • ⚠️ 注意 :返回值始终为字符串类型
python 复制代码
name = input("请输入你的名字:")
age = int(input("请输入你的年龄:"))  # 需要类型转换

2. print() 函数

  • 功能:输出数据到控制台
  • 用法print(数据)print(数据1, 数据2, ...)
python 复制代码
print("Hello World")
print("姓名:", name, "年龄:", age)

六、类型转换

函数 说明 示例
int() 转换为整数 int("123")123
float() 转换为浮点数 float("3.14")3.14
str() 转换为字符串 str(123)"123"
bool() 转换为布尔值 bool(1)True
list() 转换为列表 list("abc")['a', 'b', 'c']
tuple() 转换为元组 tuple([1, 2])(1, 2)
set() 转换为集合 set([1, 2, 2]){1, 2}

七、运算符

1. 算术运算符

运算符 含义 示例
+ 5 + 3 = 8
- 5 - 3 = 2
* 5 * 3 = 15
/ 除(浮点结果) 5 / 2 = 2.5
// 整除 5 // 2 = 2
% 取余 5 % 2 = 1
** 幂运算 2 ** 3 = 8

2. 赋值运算符

运算符 等价写法 示例
= a = b 直接赋值
+= a = a + b num += 2
-= a = a - b num -= 2
*= a = a * b num *= 2
/= a = a / b num /= 2
//= a = a // b num //= 2
%= a = a % b num %= 2
**= a = a ** b num **= 2

3. 比较运算符

运算符 含义
== 等于
!= 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于

4. 逻辑运算符

运算符 含义 说明
and 两边都为 True 才返回 True
or 两边有一个为 True 就返回 True
not 取反

5. 成员运算符

运算符 含义 示例
in 存在 "a" in "abc"True
not in 不存在 "d" not in "abc"True

6. 身份运算符

运算符 含义 说明
is 同一对象 比较内存地址是否相同
is not 不同对象

八、流程控制语句

1. 条件判断语句

1.1 if 语句
python 复制代码
if 条件:
    # 条件成立时执行
    代码块
1.2 if...else 语句
python 复制代码
if 条件:
    # 条件成立时执行
else:
    # 条件不成立时执行
1.3 if...elif...else 语句
python 复制代码
if 条件1:
    # 条件1成立时执行
elif 条件2:
    # 条件2成立时执行
else:
    # 以上条件都不成立时执行
1.4 match...case 语句(Python 3.10+)
python 复制代码
match 表达式:
    case value1:
        # 匹配 value1 时执行
    case value2 | value3:
        # 匹配 value2 或 value3 时执行
    case _:
        # 默认情况(相当于 else)

2. 循环语句

2.1 while 循环
python 复制代码
while 条件:
    # 条件成立时重复执行
    代码块
else:
    # 循环正常结束时执行(非 break 退出)
2.2 for 循环
python 复制代码
for 变量 in 可迭代对象:
    # 遍历可迭代对象
    代码块
else:
    # 循环正常结束时执行(非 break 退出)

九、数据容器

1. 列表(List)

定义[元素1, 元素2, 元素3, ...]

特点

  • ✅ 可以存储不同类型的元素
  • ✅ 元素有序可重复
  • 可以修改(增删改)
  • 索引从 0 开始,负索引从 -1 开始

切片语法列表[起始索引:结束索引:步长]

  • 起始索引默认为 0
  • 结束索引默认为列表长度(不包含该位置)
  • 步长默认为 1

常用方法

方法 功能
append(x) 在末尾添加元素 x
insert(i, x) 在索引 i 处插入元素 x
remove(x) 删除第一个值为 x 的元素
pop([i]) 删除并返回索引 i 的元素(默认最后一个)
clear() 清空列表
sort() 排序(原地修改)
reverse() 反转列表
count(x) 统计元素 x 出现的次数
index(x) 返回元素 x 首次出现的索引
extend(iterable) 在末尾添加多个元素

2. 元组(Tuple)

定义(元素1, 元素2, 元素3, ...)元素1, 元素2

特点

  • ✅ 可以存储不同类型的元素
  • ✅ 元素有序可重复
  • 不可修改(创建后不能增删改)
  • 索引从 0 开始

切片语法:同列表

常用方法

方法 功能
count(x) 统计元素 x 出现的次数
index(x) 返回元素 x 首次出现的索引

组包与解包

python 复制代码
# 组包:多个值组合成元组
t = 1, 2, 3  # t 是 (1, 2, 3)

# 解包:元组元素分别赋值给变量
a, b, c = (1, 2, 3)  # a=1, b=2, c=3

# 扩展解包
x, *y, z = (1, 2, 3, 4, 5)  # x=1, y=[2, 3, 4], z=5

3. 集合(Set)

定义{元素1, 元素2, 元素3, ...}

特点

  • ✅ 可以存储不同类型的元素
  • ❌ 元素无序不重复(自动去重)
  • 可以修改
  • ⚠️ 不支持索引和切片

空集合 :必须使用 set(){} 表示空字典)

常用方法

方法 功能
add(x) 添加元素 x
remove(x) 删除元素 x(不存在会报错)
discard(x) 删除元素 x(不存在不报错)
clear() 清空集合
copy() 复制集合
union(other) 并集
intersection(other) 交集
difference(other) 差集
symmetric_difference(other) 对称差集

4. 字典(Dict)

定义{"键1": 值1, "键2": 值2, ...}

特点

  • 存储键值对
  • 键(key)必须是不可变类型(字符串、数字、元组)
  • 键必须唯一,值可以重复
  • Python 3.7+ 保持插入顺序

常用方法

方法 功能
get(key, default) 获取键的值,不存在返回 default(默认 None
keys() 获取所有键
values() 获取所有值
items() 获取所有键值对(元组形式)
update(dict) 更新字典
pop(key) 删除并返回指定键的值
popitem() 删除并返回最后一个键值对
clear() 清空字典
copy() 复制字典
setdefault(key, default) 获取值,不存在则设置默认值

操作示例

python 复制代码
d = {"name": "张三", "age": 20}

# 访问值
print(d["name"])        # 张三
print(d.get("gender"))  # None

# 添加/修改
d["gender"] = "男"      # 添加
d["age"] = 21           # 修改

# 删除
del d["gender"]         # 删除键值对

十、变量作用域

1. 全局变量

  • 在函数外部定义的变量
  • 可以在整个模块中使用

2. 局部变量

  • 在函数内部定义的变量
  • 只能在函数内部使用

3. global 关键字

  • 在函数内部声明使用全局变量
  • ⚠️ 尽量避免使用,优先使用局部变量和返回值
python 复制代码
count = 0

def increment():
    global count
    count += 1

十一、函数参数

1. 位置参数

  • 按参数的顺序传递
python 复制代码
def greet(name, age):
    print(f"{name} is {age} years old")

greet("Alice", 25)  # 位置对应

2. 关键字参数

  • 通过"形参名=值"的方式传递
python 复制代码
greet(age=25, name="Alice")  # 顺序无关

3. 默认参数

  • 定义时给参数赋默认值
  • ⚠️ 默认参数必须放在非默认参数之后
python 复制代码
def greet(name, age=18):
    print(f"{name} is {age} years old")

greet("Bob")        # 使用默认值 18
greet("Alice", 25)  # 传入值 25

4. 不定长参数

4.1 *args - 位置不定长参数
  • 接收任意数量的位置参数
  • 打包成元组
python 复制代码
def func(*args):
    print(args)  # 元组

func(1, 2, 3)  # (1, 2, 3)
4.2 **kwargs - 关键字不定长参数
  • 接收任意数量的关键字参数
  • 打包成字典
python 复制代码
def func(**kwargs):
    print(kwargs)  # 字典

func(a=1, b=2)  # {'a': 1, 'b': 2}

5. 参数顺序规则

python 复制代码
def func(普通参数, 默认参数=值, *args, **kwargs):
    pass

十二、类型注解

1. 变量类型注解

python 复制代码
# 基本类型
a: int = 10
b: float = 3.14
c: str = "hello"
d: bool = True

# 容器类型
lst: list = [1, 2, 3]
t: tuple = (1, 2)
s: set = {1, 2, 3}
dict: dict = {"a": 1}

# 联合类型(Python 3.10+)
x: int | str = 10  # 可以是 int 或 str

2. 函数类型注解

python 复制代码
def add(a: int, b: int) -> int:
    """
    返回两个整数的和
    :param a: 第一个整数
    :param b: 第二个整数
    :return: 两数之和
    """
    return a + b

3. 类型注解的作用

  • 提高代码可读性
  • 帮助 IDE 进行代码提示
  • 便于静态类型检查(如使用 mypy)
  • ⚠️ 类型注解不会在运行时强制执行

附录:数据容器对比表

特性 列表 list 元组 tuple 集合 set 字典 dict
定义符号 [] () {} {key:value}
是否有序 ✅ 是 ✅ 是 ❌ 否 ✅ 是(3.7+)
是否可重复 ✅ 是 ✅ 是 ❌ 否 键不可重复
是否可修改 ✅ 是 ❌ 否 ✅ 是 ✅ 是
索引访问 ✅ 支持 ✅ 支持 ❌ 不支持 通过键访问
切片 ✅ 支持 ✅ 支持 ❌ 不支持 ❌ 不支持
适用场景 需要修改的数据序列 固定数据、保护数据 去重、集合运算 键值对映射
相关推荐
学习论之费曼学习法1 小时前
AI 入门 30 天挑战 - Day 20 费曼学习法版 - 语音识别基础
人工智能·学习·语音识别
m0_588758481 小时前
如何解决Oracle启动ORA-00119错误_网络服务名与listener相关性
jvm·数据库·python
PSLoverS1 小时前
MySQL如何利用防火墙限制MySQL端口_使用iptables或安全组防御
jvm·数据库·python
qq_414256571 小时前
Go语言如何用strings.Builder_Go语言strings.Builder教程【总结】
jvm·数据库·python
星幻元宇VR1 小时前
VR交通安全行走平台助力文明交通建设
科技·学习·安全·vr·虚拟现实
lulu12165440781 小时前
国内怎么用GPT5.5?基于weelinking零门槛合规接入GPT5.5全系列生产级能力
java·人工智能·python·gpt·ai编程
南宫萧幕1 小时前
基于 DQN 与 Python-Simulink 联合仿真的 HEV 能量管理策略实战
开发语言·python·matlab·汽车·控制
red_redemption1 小时前
自由学习记录(174)
学习
iwS2o90XT1 小时前
Java多线程编程:Thread与Runnable的并发控制
java·开发语言·python