Skip to main content

Python 快速入门 🚀

·1354 字·3 分钟
编程 python crash course
Table of Contents
Python - This article is part of a series.
Part 2: This Article

Python 语言核心,有编程经验的可以 2 ~ 3 小时完成

语言介绍,参考:

Python 101(简介)
·8216 字·17 分钟
编程 python

Python 近两三年伴随着机器学习/人工智能变得很火,其实 Python 比 Java 年头还早,一文了解 Python 的背景

目标 #

  • 了解 Python 基本数据类型,集合类型,流程控制,能够刷题
  • 了解 Python OO 特性 - 用 Python 进行开发的基础
  • 了解 Python 模块及包结构

只涉及开发最基本,最核心的东西,不包括实际项目开发需要的各种知识点,如 IO,异步,数据分析,等等,Python 的包和框架很多,掌握语言基础后可以在项目实践中逐一学习。

安装 Anaconda #

  1. 下载并安装 Anaconda: https://www.anaconda.com/products/individual
  2. 运行 Anaconda Navigator
Anaconda Navigator
  1. 创建一个独立的虚拟环境并激活它, 可以通过上面的图形化界面,也可以通过命令行,例如 mth251:
[I] ➜ mkdir workspace/suss/MTH251 && cd workspace/suss/MTH251
[I] ➜ conda create -n mth251 python=3.8.5
  1. 切换到 mth251,然后安装 jupyter notebook:
jupyter notebook
[I] ➜ conda activate mth251
(mth251) 13:03:38 in workspace/suss/MTH251 via 🅒 mth251
[I] ➜ conda activate mth251
(mth251) 13:11:18 in workspace/suss/MTH251 via 🅒 mth251
[I] ➜ jupyter notebook

jupyter notebook 是一个在线互动的编程环境,可以敲下第一行代码:

print("Hello, world!")

基本语法 #

㊫ 结合代码看一目了然: notebook

Primitive Data Types & Operators #

data type
data type

Python Collections #

collection

Python Program Structure #

program structure
program structure

Python OO #

OO

Misc. #

这部分涉及到 Python 的内部工作原理,属于核心进阶知识:

misc
misc

Module, Package, Library #

这些概念都是围绕着代码的组织和重用。

module 是放在一起的变量,函数,class 等,一段有逻辑的可执行代码,Python import 的基本单位,简单讲以一个 Python 文件(.py 结尾)就是一个 module。Python 提供了大量的 built-in module - Datetime,Random,re 等。自带的数据结构 string,list,程序功能 function,class,等这些也是由自带的底层 module 来实现的。module 也可以有其它语言编写(如 Python 的原装 Cpython)。built-in 的 module 是不需要 import 的, Python 虚拟机启动时自动装载。

package 则是一组 module 通过文件目录的方式组织在一起:

Graphics/
   __init__.py
   Primitive/
       __init__.py
      lines.py
      fill.py
      text.py
      ...
  Graph2d/
      __init__.py
      plot2d.py
      ...
  Graph3d/
      __init__.py
      plot3d.py
   Formats/
      __init__.py
      png.py
      gif.py
      tiff.py
      jpeg.py

__init__ 是 package 的标志文件,当 package 被 import 时自动执行,所以可在 __init__ 里定义和初始化 package 需要的全局变量。

Python 开发的比较早,还没有类似 Java 里 package namespace 的概念,直接用文件目录来管理 module,避免命名冲突的问题。

module、package 的增、删、改、查,都是可以通过 api 操作的。

library 没有明确定义和组织方式,就是把相关的 package/module 放在一起提供一种完整的功能,如 Python 自带的 Standard Library(包含了各种基础的 pacakge 和 module),开发时常需要第三方 library,如用于绘图的 Matlablib,机器学习的 Pytorch,等等,这些 library 需要下载安装才能使用。

要成功 import,package/module 必须在 Python 可查找的目录下:

import sys
print(sys.path)

修改方法一个是直接修改 sys.path:

import os
import sys
fpath = os.path.join(os.path.dirname(__file__), 'utils')
sys.path.append(fpath)
print(sys.path)

或者修改 PYTHONPATH 环境变量,这个和 Java 的 CLASSPATH 类似。

Script #

有几种形式:

# add1.py
def add(a, b):
  return a+b
# app.py
import add from add1

result = add(1,2)
print(result)
# add2.py
def add(a, b):
  return a+b

result = add(1,2)
print(result)

if __name__=="__main__":
    result = add(3,4)
    print(result)
#!/usr/bin/env python3
# add3.py

def add(a, b):
  return a+b

if __name__=="__main__":
    result = add(1,2)
    print(result)

三个文件其实都差不多:

  • 第一个倾向于称之模块 module,定义或声明,没有执行什么,可以被别的 Python 文件作为模块引入并调用(import);
  • 第二个倾向于称之脚本 script,主要是可以独立执行(也可以 import,但通常只把它当作程序入口),__main__是主函数入口,输出如下:
[I] ➜ python add2.py
3
7
  • 第三个进一步把上面脚本变为像 bash script (第一行类似 #!/usr/bin/env bash)那样可直接执行:
[I] ➜ add3.py
3
7

Cheatsheet #

Python 的语法总结 +
·  Comprehensive Python Cheatsheet
·  ivnvxd/pyquest: Python everything Cheatsheet and a Journey to the land of Python programming
·  Python Crash Course - Cheat Sheets
·  The Best Python Cheat Sheet
Python - This article is part of a series.
Part 2: This Article