Python——从入门到精通全网最详细教程[Day3:基本数据类型与变常量]

#新星杯·14天创作挑战营·第11期#

在讲解Python基本数据类型之前,先介绍一下Python中的注释、保留字和标识符这几个小点。


一、注释

在 Python 编程中,注释是提高代码可读性、可维护性的重要工具,它不会被解释器执行,但能让其他开发者(或未来的你)更快理解代码逻辑。
Python 提供两种注释方式:单行注释多行注释

1.1 单行注释

  • 语法:以 # 开头,# 后的内容为注释。

  • 示例

    # 这是一个单行注释
    print("Hello, World!")  # 输出欢迎信息
    
  • 常见用途

    • 解释代码的功能或逻辑。
    • 临时禁用某行代码(调试时常用)。

1.2 多行注释

Python 没有专门的多行注释语法,但可以通过以下方式实现类似效果:

  • 方式一:连续使用 #

    # 这是第一行注释
    # 这是第二行注释
    # 这是第三行注释
    
  • 方式二:使用三引号('''"""
    虽然三引号通常用于定义多行字符串,但未赋值给变量的三引号字符串会被视为注释。

    '''
    这是一个多行注释
    可以跨越多行
    '''
    print("Hello, World!")
    
  • 常见用途

    • 解释复杂算法或函数的功能。
    • 临时禁用多行代码。

1.3 总结

类型语法适用场景
单行注释# 注释内容简短说明、临时禁用单行代码
多行注释'''注释内容'''详细说明、临时禁用多行代码
文档字符串"""文档内容"""函数/类/模块的官方说明

合理使用注释能让代码更易维护,但过度注释会适得其反。记住:代码是写给人看的,注释是写给看不懂代码的人看的


二、保留字

  • 保留字严格区分大小写
  • python中总共35个保留字

在这里插入图片描述


三、标识符、变量与常量

标识符

在这里插入图片描述

变量名

栈堆分区,栈为钥匙,用来开堆这个箱子
在这里插入图片描述

常量名

在这里插入图片描述

# 例如
PI=3.14 #这是常量
pi=3.14 #这是变量

Python 是一种动态类型语言,变量在创建时无需显式声明类型,解释器会自动推断。但其数据类型丰富,了解它们对高效编程至关重要。以下是 Python 核心数据类型的详细解析:


四、基本数据类型

4.1 数值类型

  • 整数(int)
    表示整数,无大小限制(受内存限制)。

    age = 25
    hex_num = 0xFF  # 十六进制
    bin_num = 0b101  # 二进制
    
  • 浮点数(float)
    表示实数,精度有限(双精度64位)。

    price = 99.99
    scientific = 3e8  # 3 * 10^8
    
  • 复数(complex)
    由实部和虚部组成,虚部以 j 结尾。

    c = 3 + 4j
    print(实数部分:',c.real)
    print(复数部分:',c.imag)
    

4.2 布尔型(bool)

表示逻辑值,仅有两个取值:TrueFalse。(这里提醒一下注意这两个布尔类型的首字母是大写的)

is_valid = True

在这里插入图片描述

4.3 字符串(str)

表示文本数据,支持Unicode。

name = "Alice"
multi_line = '''第一行
第二行'''
  • 常用操作
    s = "hello"
    print(s[0])     # 索引访问: 'h'
    print(s[1:4])   # 切片: 'ell'
    print(s.upper())# 方法: 'HELLO'
    print('h' in s) #输出True
    print('q' in s) #输出False
    

在这里插入图片描述

在这里插入图片描述
一个制表位为8个字符,即一个\t等同于8个英文字母,等同于4个中文(一个汉字占两个字符)
在这里插入图片描述
字符串索引与切片操作:

s='helloworld'
print(s[0]) #输出为h
print(s[0:2]) #输出为hel
print(s[:2]) #默认从0开始
print(s[2:]) #默认切到结尾

4.4 容器类型

1. 列表(list)

有序、可变的元素集合,元素类型可不同。

numbers = [1, 2, 3]
mixed = ["a", 3.14, True]
  • 常用操作
    lst = [1, 2, 3]
    lst.append(4)      # 添加元素
    lst[0] = 0         # 修改元素
    del lst[1]         # 删除元素
    
2. 元组(tuple)

有序、不可变的元素集合,常用于不可变数据。

point = (3, 4)
single_element = (5,)  # 单元素元组需加逗号
3. 字典(dict)

键值对集合,键唯一且不可变。

person = {"name": "Bob", "age": 30}
  • 常用操作
    d = {"a": 1, "b": 2}
    d["c"] = 3       # 添加键值对
    del d["a"]       # 删除键值对
    
4. 集合(set)

无序、唯一元素的集合,支持数学运算。

s = {1, 2, 3}
empty_set = set()  # 空集合
  • 常用操作
    a = {1, 2, 3}
    b = {3, 4, 5}
    print(a & b)     # 交集: {3}
    print(a | b)     # 并集: {1, 2, 3, 4, 5}
    

4.5 其他类型

1. 字节类型(bytes)

表示原始字节数据,不可变。

data = b"raw bytes"
2. 字节数组(bytearray)

可变的字节序列。

arr = bytearray(b"hello")
3. 空值(NoneType)

表示无值,与 False、0 不同。

result = None

4.6 类型检查与转换

1. 检查类型
print(type(42))          # <class 'int'>
print(isinstance("text", str))  # True
2. 类型转换
x = int("123")         # 字符串转整数
y = float("3.14")      # 字符串转浮点数
z = str(100)           # 数字转字符串

4.7 类型特性对比

类型可变性有序性允许重复典型用途
int数值计算
str文本处理
list动态集合
tuple不可变数据结构
dict键值映射
set唯一元素集合

4.8 动态类型特性

Python 变量类型在运行时确定,且可重新绑定:

x = 42          # int 类型
x = "hello"     # 现在变为 str 类型

4.9 最佳实践

  1. 显式类型转换:避免隐式类型错误(如 "5" + 3 会报错)。
  2. 利用类型提示(Python 3.5+):
    def add(a: int, b: int) -> int:
        return a + b
    
  3. 选择合适类型
    • 需要快速查找 ➔ 字典
    • 需要唯一元素 ➔ 集合
    • 需要有序不可变 ➔ 元组

掌握这些数据类型是编写高效 Python 代码的基础,合理选择类型能显著提升程序性能和可读性。


五、列表与元组、字典与集合的区别和异同梳理

笔者在第一次学习到这里的时候也会对列表与元组,字典和集合之间的异同或关联性感到混淆混乱,所以笔者在这里再梳理一下他们之间关系便于列位进一步理解和把握。
在 Python 中,列表(list)与元组(tuple)、字典(dict)与集合(set)是四组核心数据结构,它们在设计和用途上有显著差异。

5.1 列表(List) vs 元组(Tuple)

1. 核心特性对比
特性列表(List)元组(Tuple)
可变性可变(Mutable)不可变(Immutable)
语法方括号 []圆括号 ()
性能内存占用稍高(支持动态扩容)内存更紧凑(不可变性优化)
适用场景频繁修改的动态集合不可变数据、固定配置、函数返回多值
2. 底层实现差异
  • 列表:动态数组,预留额外空间以支持频繁的添加/删除操作。
  • 元组静态数组,内存连续且紧凑,不可变性允许更多优化(如缓存哈希值)。
3. 关键操作对比
操作列表(List)元组(Tuple)
添加元素append(), extend(), insert()不支持
删除元素remove(), pop(), del不支持
修改元素直接通过索引赋值不支持
切片返回新列表返回新元组
4. 使用场景建议
  • 列表:日志记录、动态配置、需要频繁增删改的场景。
  • 元组:坐标点、数据库查询结果、函数返回多值(如 return x, y)。

5.2 字典(Dict) vs 集合(Set)

1. 核心特性对比
特性字典(Dict)集合(Set)
数据结构键值对(Key-Value)唯一元素集合
键的要求键必须不可变(如 int, str, tuple元素必须不可变
查找速度O(1)(平均情况,哈希表实现)O(1)(平均情况,哈希表实现)
有序性Python 3.7+ 默认有序无序
2. 底层实现差异
  • 字典:哈希表,存储 <key, value> 对,通过哈希函数快速定位键。
  • 集合:哈希表,仅存储唯一元素,自动去重。
3. 关键操作对比
操作字典(Dict)集合(Set)
添加元素dict[key] = valueadd(), update()
删除元素pop(), del dict[key]remove(), discard(), pop()
合并操作update()union(), `
交集/差集不直接支持intersection(), & / difference(), -
4. 使用场景建议
  • 字典:配置映射、缓存、计数器(如 collections.defaultdict)。
  • 集合:去重、成员检测、集合运算(如 {1,2,3} & {2,3,4})。

5.3 综合对比总结

维度列表 vs 元组字典 vs 集合
可变性列表可变,元组不可变字典和集合均支持动态增删
数据结构顺序序列字典为键值对,集合为唯一元素
核心用途存储有序元素集合字典用于映射,集合用于唯一性
性能特点列表增删可能触发扩容哈希表操作平均 O(1)
典型场景动态数据(如日志)映射关系(如配置)或去重(如用户ID)

5.4 进阶特性

  1. 命名元组(Named Tuple)
    增强元组可读性:

    from collections import namedtuple
    Point = namedtuple("Point", ["x", "y"])
    p = Point(3, 4)
    print(p.x)  # 3
    
  2. 字典视图对象
    字典的键、值、项视图支持集合操作:

    d = {"a": 1, "b": 2}
    print(d.keys() & {"a", "c"})  # {'a'}
    
  3. 集合推导式
    快速生成集合:

    squares = {x**2 for x in [1, 2, 2, 3]}  # {1, 4, 9}
    

5.5 选择建议

  • 需要有序且可变 ➔ 列表
  • 需要不可变序列 ➔ 元组
  • 需要键值映射 ➔ 字典
  • 需要唯一元素集合 ➔ 集合
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值