Skip to content

Commit

Permalink
feat(编程模块): 添加Python模块内容 (#283)
Browse files Browse the repository at this point in the history
* feat: 添加脚注渲染支持

* docs(编程模块): 添加Python模块

* fix: 修正文档中的脚注

* feat: 添加脚注渲染支持

* docs(编程模块): 添加Python模块

* fix: 修正文档中的脚注

* fix(编程模块-Python模块): 修复破损链接,修复md格式

* docs: fix all docs

---------

Co-authored-by: camera-2018 <40380042+camera-2018@users.noreply.github.com>
  • Loading branch information
NingmengLemon and camera-2018 authored Sep 12, 2024
1 parent 675d26a commit c0d13e4
Show file tree
Hide file tree
Showing 63 changed files with 6,253 additions and 1 deletion.
2 changes: 2 additions & 0 deletions .vitepress/config.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// import { defineConfig } from 'vitepress'
import { transformerTwoslash } from '@shikijs/vitepress-twoslash';
import PanguPlugin from 'markdown-it-pangu';
import FootnotePlugin from 'markdown-it-footnote'
import { fileURLToPath, URL } from 'node:url';
import VueMacros from 'unplugin-vue-macros/vite';
import { VitePWA } from 'vite-plugin-pwa';
Expand Down Expand Up @@ -92,6 +93,7 @@ export default withMermaid({
lineNumbers: true,
config: (md) => {
md.use(PanguPlugin);
md.use(FootnotePlugin)
},
math: true,
codeTransformers: [
Expand Down
1 change: 1 addition & 0 deletions 2.编程模块/2.1NekoBytes-TheMissing.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@

可供参考的学习材料:


- [【计算机科学速成课】[40 集全/精校] - Crash Course Computer Science](https://www.bilibili.com/video/BV1EW411u7th?vd_source=699341ff80cb01917fb43665199a48dd)
- Stephen Prata. C Primer Plus.ISBN 9787115390592.
- [Linux C 编程一站式学习](https://akaedu.github.io/book/)
Expand Down
23 changes: 23 additions & 0 deletions 2.编程模块/2.2 Python 模块/2.2 Python 模块.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# 引言

欢迎来到 Python 模块 ~(∠・ω< )⌒☆

Python是一门很容易上手的胶水语言,它的语法相对简单且上手难度不高,而它丰富的库函数能让你忽略大量的细节,让你能用Python完成一些某些编程语言很难完成的任务。
它的各种框架以及库函数使其在Web、数据科学、AI等领域应用广泛。未来如果你想做一些AI、数据分析相关的事情,那么Python肯定是你需要接触的东西。
对于计算机的学生,学校不会专门设置Python的课程,而是会要求你在假期内自学;对于其他专业的同学,学习Python的成本也不高,学习Python,加上合理的使用ChatGPT等工具会大大提高你的效率。

Python模块目前暂定了三大块内容:

1. Python入门语法,当然这块内容大家浅浅看一遍留个印象,在实际学习中还是建议大家多去查手册以及[官方文档](https://docs.python.org/zh-cn/3/tutorial/index.html),手册在大多数情况下是对的,
2. 用Python写的几个有趣的项目(目前还全是爬虫w)
3. 对国外课程CS61A的本土化尝试(低情商:翻译+私货),进度缓慢

...暂定的各种其他适合入门的项目,之后也许还会放上AI相关的教程

以上。

![neoPythonModule](https://socialify.git.ci/Aster-amellus/neoPythonModule/image?description=1&font=Source%20Code%20Pro&forks=1&issues=1&language=1&name=1&owner=1&pattern=Plus&pulls=1&stargazers=1&theme=Dark)

> 此模块的原始仓库位于 [Github](https://github.com/Aster-amellus/neoPythonModule)
>
> 部分页面原先使用 Jupyter Notebook 撰写,因为 wiki 不支持展示所以做了转换。你可以在上面的仓库中找到原始的 ipynb 文件。
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Grammar

- this part is aiming to talk about the grammar of python in jupyternotebook.
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Python的前置了解

## Python的工作流程和解释器

- Python是一种解释型语言,这意味着在执行代码时,Python的解释器会逐行读取并执行代码,而不需要先编译成机器语言。
- Python使用的主要解释器是CPython,它是用C语言实现的。CPython解释器包括一个编译器和一个虚拟机,编译器将源代码转换成字节码,然后虚拟机会执行这些字节码。这样的处理方式使得Python在易用性和跨平台性方面具有优势,但相对于编译型语言,执行效率可能较低。

## Python的基本特性

1. 简洁的语法:Python语法相对简洁,注意点少,易于阅读和学习。
2. 动态类型:Python是动态类型语言,变量在声明时不必显式指定数据类型。这使得在Python中,对变量的使用有更大的自由度。
3. 广泛的标准库:Python拥有庞大的标准库,覆盖从网络编程到文本处理的各种模块。

## 函数与作用域

### 函数

函数指的是将一些操作抽象成一个封装的指令,看不见内部的具体操作了。通过利用函数,可以让操作复用变得简单,让程序运行结构清晰,而不是一坨操作堆在一起。
Python中的函数定义使用def关键字。函数可以接受参数,并可返回结果。并且支持默认参数、关键字参数等一些高级功能。

### 作用域

作用域是对变量的限制,限制了变量可以存在与使用的范围。

Python有两种主要的作用域:

1. 全局作用域。模块级别定义的变量(如创建的对象、全局声明的变量)具有全局作用域。
2. 局部作用域。函数内定义的变量具有局部作用域,函数结束后大多数情况会被销毁。

## 面向对象编程(OOP)

### 什么是对象?

许多语言都有面向对象编程的能力,Python也不例外。所谓面向对象,简单来说可以理解为把一个个对象作为程序的基本单元,在对象中定义各种操作。

### Python中的对象

而这种能力,在Python中尤其突出。在Python中,**一切都是对象**,包括基本数据类型。当然也可以自己定义类(class)来创建自己的对象类型,并在其中封装数据和功能。Python中的类支持继承、封装和多态,这使得复用代码和组织复杂程序变得简单。

## Python的环境依赖

环境依赖指的是Python项目运行所必需的外部库和模块。这些依赖定义了项目需要哪些外部输入(如代码库或工具)以正常运行。

### 环境依赖的重要性

- 兼容性保障:确保项目可以在预定的环境或平台上运行,不受不同版本依赖库更新的影响。
- 安全性:定期更新依赖库可以修补潜在的安全漏洞,增强项目的安全性。
- 可维护性:清晰的依赖管理可以简化项目的后期维护,尤其是在团队协作和项目转交时。

### 管理Python环境依赖的工具

1. Pip(不建议直接使用):Python的包安装器,可以从Python包索引(PyPI)安装、升级和移除包。
2. Pipenv:将Pip和venv(虚拟环境)的功能集于一身,用于创建虚拟环境和管理项目依赖。它自动管理虚拟环境和依赖文件,提供了一种更高级的依赖管理方式。
3. Poetry:一个用于Python包和依赖管理的工具,它提供了依赖解析、包管理和虚拟环境的完整解决方案。Poetry的设计目标是简化包的发布流程,同时保证项目依赖的严格管理。

### 虚拟环境

#### 虚拟环境是什么?

在Python中,虚拟环境是一个独立的目录结构,其中包含了一个Python解释器的副本以及一系列安装的库。虚拟环境可以让不同的项目在各自独立的环境中运行,而不会相互干扰。这意味着每个项目都可以有自己的依赖版本,不受其他项目或系统级安装的影响。

#### 为什么虚拟环境很重要?

- 依赖管理:项目依赖的库可能会随着时间更新版本,新版本的库可能不再向后兼容。使用虚拟环境可以锁定特定版本的库,确保项目的稳定性。
- 环境隔离:在没有虚拟环境的情况下,所有项目共享同一个Python解释器和库集合。这可能会导致依赖冲突,比如两个项目依赖同一个库但需要不同版本。虚拟环境通过为每个项目创建独立的运行环境,避免了这种冲突。
- 项目迁移和部署:虚拟环境可以轻松地复制和迁移,这对于确保在不同开发、测试和生产环境中的一致性非常重要。此外,它也简化了部署过程,因为你可以确保所有必要的依赖都会被正确安装。

#### 使用虚拟环境

Python有多种工具可以创建和管理虚拟环境,最常用的是venv。
Loading

0 comments on commit c0d13e4

Please sign in to comment.