0%

Python 字典(Dictionary)详解

在 Python 中,字典(Dictionary)是一种键值对(key-value) 结构的可变容器,类似于 Java 中的 Map 或 JavaScript 中的对象。它通过键(key)快速查找对应的值(value),是处理关联数据的核心数据结构。本文将详细介绍字典的创建、操作及常用方法。

字典的基本定义

字典使用大括号 {} 定义,键值对之间用逗号分隔,键与值用冒号 : 连接。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 基本字典(键为字符串,值为整数)
student = {'name': 'Alice', 'age': 20, 'major': 'Computer Science'}

# 键可以是任意不可变类型(如整数、字符串、元组)
mixed_dict = {
1: 'one', # 整数作为键
('a', 'b'): 123, # 元组作为键(元组不可变)
'list': [1, 2, 3] # 值可以是任意类型(包括列表、字典等)
}

# 空字典
empty_dict = {}
# 用 dict() 函数创建字典
another_dict = dict(name='Bob', age=21) # 等价于 {'name': 'Bob', 'age': 21}

注意

  • 键必须是不可变类型(如字符串、整数、元组),列表等可变类型不能作为键。
  • 键是唯一的,若重复定义,后面的键值对会覆盖前面的。

字典的核心操作

访问值(通过键)

通过 字典名[键] 访问对应的值,若键不存在则报错。

阅读全文 »

Python 列表(List)与元组(Tuple)详解

在 Python 中,列表(List)和元组(Tuple)是两种常用的序列类型,用于存储多个元素。它们的核心区别在于可变性:列表是可变的(元素可修改),而元组是不可变的(元素一旦创建就无法修改)。本文将详细介绍两者的用法、区别及适用场景。

列表(List):可变的序列

列表是 Python 中最灵活的序列类型,使用方括号 [] 定义,元素之间用逗号分隔,支持添加、删除、修改等操作。

基本定义与创建

1
2
3
4
5
6
# 空列表
empty_list = []
# 包含不同类型元素的列表(Python 列表支持异构元素)
mixed_list = [1, "apple", 3.14, True]
# 嵌套列表(列表中包含列表)
nested_list = [1, [2, 3], [4, [5, 6]]]

访问元素

通过索引(下标)访问元素,索引从 0 开始,支持负数索引(从末尾计数,-1 表示最后一个元素)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
fruits = ["apple", "banana", "cherry", "date"]

# 访问单个元素
print(fruits[0]) # 输出:apple(第一个元素)
print(fruits[-1]) # 输出:date(最后一个元素)

# 分片(切片):获取子列表,语法为 [start:end:step],左闭右开
print(fruits[1:3]) # 输出:['banana', 'cherry'](索引1到2的元素)
print(fruits[:2]) # 输出:['apple', 'banana'](从开头到索引1)
print(fruits[2:]) # 输出:['cherry', 'date'](从索引2到结尾)
print(fruits[::2]) # 输出:['apple', 'cherry'](步长为2,间隔一个元素)

# 复制列表(创建副本,修改副本不影响原列表)
fruits_copy = fruits[:]

修改元素

列表是可变的,可直接通过索引修改元素:

阅读全文 »

Node.js 模块系统:创建、加载与依赖管理

Node.js 的模块系统是其核心特性之一,通过exportsrequire实现代码的模块化拆分与复用,配合package.json可高效管理项目依赖。本文详细讲解模块的创建、加载逻辑及依赖配置,帮助理解 Node.js 的模块化开发模式。

模块的基本概念

在 Node.js 中,一个文件就是一个模块,每个模块拥有独立的作用域(变量、函数仅在模块内可见),通过exports暴露接口,通过require引入其他模块。这种设计避免了全局变量污染,同时实现了代码的解耦与复用。

创建与加载模块:exportsrequire的使用

1. 导出模块:exportsmodule.exports

模块通过exports对象暴露可供外部调用的属性或方法,也可通过module.exports导出完整对象(二者指向同一内存地址)。

示例:创建greet.js模块

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 方式1:通过exports暴露单个方法
exports.sayHello = function(name) {
console.log(`Hello, ${name}!`);
};

// 方式2:通过module.exports暴露多个方法(更灵活)
module.exports = {
sayHi: function(name) {
console.log(`Hi, ${name}!`);
},
sayBye: function(name) {
console.log(`Bye, ${name}!`);
}
};
阅读全文 »

npm 详解:Node.js 生态的包管理利器

npm(Node Package Manager)作为 Node.js 的官方包管理器,是构建 Node.js 生态的核心工具。它不仅提供了海量可重用的代码模块(package),还简化了模块的安装、更新、卸载及项目依赖管理流程。无论是前端开发(如 React、Vue 项目)还是后端 Node.js 服务,npm 都是不可或缺的工具。本文将系统介绍 npm 的核心功能与使用方法。

npm 的核心作用

npm 的本质是一个包管理系统,其核心价值体现在:

  1. 模块共享:开发者可将自己编写的工具库发布到 npm 仓库,供全球开发者使用(如 axios、lodash 等热门模块);
  2. 依赖管理:自动处理项目所需的模块及其版本依赖,避免 “版本冲突” 问题;
  3. 脚本执行:支持在package.json中定义自定义脚本(如启动服务、打包构建),简化项目流程。

npm 的安装与初始化

npm 随 Node.js 一同安装,无需单独部署:

  • 安装 Node.js 后,通过npm -v查看 npm 版本,验证是否安装成功;

  • 新建项目时,需初始化 npm 配置文件(package.json):

    1
    2
    3
    4
    # 在项目根目录执行,生成package.json(包含项目信息、依赖等)
    npm init
    # 快速生成(使用默认配置)
    npm init -y

npm 核心命令详解

1. 模块安装:本地与全局的区别

npm 安装模块分为本地安装全局安装,适用场景不同:

阅读全文 »

CSS 语法详解:选择符、属性与样式规则全指南

CSS(层叠样式表)的核心是通过 “选择符定位元素 + 属性 - 值控制样式” 实现网页美化与布局。理解 CSS 语法结构(选择符、属性、值)及各类选择符的使用场景,是精准控制元素样式、提升代码可维护性的基础。从 “基础语法结构→核心选择符分类→组合使用技巧→优先级规则” 四个维度,系统讲解 CSS 语法的使用方法与实战细节。

CSS 基础语法结构

CSS 样式规则由 选择符(Selector)属性(Property)值(Value) 三部分组成,基本格式如下:

1
2
3
4
选择符 {
属性1: 值1; /* 控制元素的某一样式(如颜色、尺寸) */
属性2: 值2; /* 多个属性用分号分隔,最后一个分号可省略 */
}

关键说明:

  1. 选择符:定位需要应用样式的 HTML 元素(如标签名、class、id);
  2. 属性:CSS 预定义的样式维度(如 color 控制颜色,font-size 控制字体大小);
  3. :属性的具体取值(需符合属性的语法规则,如 color: redcolor: #ff0000);
  4. 代码规范:
    • 花括号 {} 包裹属性 - 值对,建议独占一行;
    • 每个属性 - 值对以分号 ; 结尾,增强代码可读性;
    • 缩进(如 2 个或 4 个空格)可提升代码层级感,便于维护。

核心选择符分类与用法

选择符是 CSS 语法的 “定位工具”,不同选择符对应不同的元素匹配规则。以下按 “基础选择符→关系选择符→属性选择符” 的顺序,详解常用选择符的用法。

1. 基础选择符:直接定位元素

基础选择符是最常用的选择符,直接通过元素的标签名、class、id 等属性定位元素。

(1)标签选择符(元素选择符)

通过 HTML 标签名匹配元素,作用于页面中所有该类型的标签,适合 “统一设置某类元素的基础样式”。

阅读全文 »