1. Python 基础知识
从 Python 2.x 到 Python 3.x 的语言差异,到 Python 中的基本数据类型、运算符、流程控制语句、函数、模块等基础知识点,是每一位 Python 开发者都需要掌握的内容。
1.1 Python 2.x 和 Python 3.x 的语言差异
在 Python 3.x 中,最明显的改变是 print 语句被修改成了 print() 函数,还有 bytes 和 str 类型的区别等等,下面是 Python 2.x 和 Python 3.x 的差异表:
# Python 2.x:
print "Hello, World!" # print 语句
unicode_string = u'你好' # unicode string
# Python 3.x:
print("Hello, World!") # print 函数
unicode_string = '你好' # 默认为 unicode,不需要加 u 前缀
byte_string = b'hello' # bytearray 类型
1.2 基本数据类型和运算符
Python 语言中支持的基本数据类型包括整型、浮点型、布尔型、复数型、字符串、列表、元组、集合、字典等等。
在 Python 中,使用运算符可以对基本数据类型进行基本运算,例如算术运算、赋值运算、比较运算、逻辑运算等等。
a = 10
b = 20
# 算术运算
c = a + b
d = a - b
e = a * b
f = a / b
# 比较运算
g = a > b
h = a >= b
i = a < b
j = a <= b
k = a == b
l = a != b
# 逻辑运算
m = a and b
n = a or b
o = not a
1.3 流程控制语句
在 Python 中使用的流程控制语句包括条件语句(if-else 语句)、循环语句(while、for 语句)等等。
# if-else 语句
a = 10
if a > 0:
print("a > 0")
elif a == 0:
print("a = 0")
else:
print("a < 0")
# while 循环语句
i = 0
while i < 10:
print(i)
i += 1
# for 循环语句
num_list = [1, 2, 3, 4, 5]
for num in num_list:
print(num)
1.4 函数和模块
函数是 Python 编程中的核心概念,它可以接收参数并返回结果。
模块是 Python 中的一个文件,用于组织代码,它包含变量、函数、类等对象。
# 定义函数
def add(a, b):
return a + b
# 调用函数
sum = add(1, 2)
print(sum)
# 导入模块
import math
# 使用模块中的函数
square_root = math.sqrt(4.0)
print(square_root)
2. 面向对象编程
Python 是一门面向对象的编程语言,在 Python 中,一切皆对象。面向对象编程的核心是类和对象。
2.1 类和对象
类是面向对象编程中的一个重要概念,它是对象的模板,是用于创建对象的代码段。对象则是类的实例,具有类所定义的属性和方法。
# 定义类
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def greet(self):
print("Hello, my name is " + self.name)
# 创建对象
p = Person("Tom", 20)
# 调用对象的方法
p.greet()
2.2 继承和多态
在 Python 中,支持继承和多态,继承是指一个类可以继承另一个类的属性和方法,多态则是指不同类的对象可以调用相同的方法。
# 定义父类
class Animal:
def say_hello(self):
print("I am an animal.")
# 定义子类
class Dog(Animal):
def say_hello(self):
print("I am a dog.")
class Cat(Animal):
def say_hello(self):
print("I am a cat.")
# 多态
animals = [Animal(), Dog(), Cat()]
for animal in animals:
animal.say_hello()
3. Python 标准库
Python 标准库是 Python 自带的一组模块,包含了大量的功能,可以满足大多数情况下的编程需求。学习 Python 标准库是 Python 编程的基础。
3.1 常用模块
Python 标准库中的常用模块包括 os、sys、re、datetime、math 等等,它们提供了文件操作、系统操作、正则表达式、日期时间处理、数学计算等常用功能。
import os # 文件操作
import sys # 系统操作
import re # 正则表达式操作
import datetime # 日期时间操作
import math # 数学操作
3.2 第三方模块
除了 Python 标准库,还有大量的第三方模块可以用于 Python 编程。常用的第三方模块包括 numpy、pandas、matplotlib、requests 等等,它们提供了强大的数据处理、数据可视化、网络请求等功能。
import numpy # 数组操作
import pandas # 数据处理
import matplotlib # 数据可视化
import requests # 网络请求
4. Python 数据库编程
Python 在数据库编程方面也非常强大,可以支持多种数据库,包括 MySQL、PostgreSQL、Oracle 等等。
4.1 MySQL 数据库编程
在 Python 中使用 MySQL 数据库需要安装 python MySQL 客户端,然后使用相应的 API 进行操作。
# 安装 MySQL 客户端
pip install mysql-connector-python
# 连接 MySQL 数据库
import mysql.connector
cnx = mysql.connector.connect(user='root', password='password', host='localhost', database='test')
# 执行查询语句
cursor = cnx.cursor()
query = ("SELECT * FROM student")
cursor.execute(query)
# 获取查询结果
for (sid, name, age) in cursor:
print("Student %s is %d years old" % (name, age))
# 关闭连接
cursor.close()
cnx.close()
4.2 PostgreSQL 数据库编程
在 Python 中使用 PostgreSQL 数据库需要安装 psycopg2 客户端,然后使用相应的 API 进行操作。
# 安装 psycopg2 客户端
pip install psycopg2
# 连接 PostgreSQL 数据库
import psycopg2
conn = psycopg2.connect(database="test", user="postgres", password="password", host="localhost", port="5432")
# 执行查询语句
cur = conn.cursor()
cur.execute("SELECT id, name, age from student")
# 获取查询结果
rows = cur.fetchall()
for row in rows:
print("id = ", row[0])
print("name = ", row[1])
print("age = ", row[2])
# 关闭连接
conn.close()
5. Python Web 开发
Python 在 Web 开发方面也非常强大,可以支持多种 Web 开发框架,包括 Django、Flask、Pyramid 等等。
5.1 Flask Web 开发框架
Flask 是一个轻量级的 Web 开发框架,可以用于快速地搭建 Web 应用程序。
# 安装 Flask
pip install flask
# 编写 Flask 应用程序
from flask import Flask
app = Flask(__name__)
@app.route("/")
def home():
return "Hello, World!"
if __name__ == "__main__":
app.run()
在浏览器中访问 http://localhost:5000 即可看到 Hello, World!。
5.2 Django Web 开发框架
Django 是一个基于 MVC(Model-View-Controller)设计模式的 Web 框架,提供了强大的数据模型、模板引擎、URL 路由、表单验证等功能,可以用于快速地开发高质量的 Web 应用。
# 安装 Django
pip install Django
# 创建 Django 项目
django-admin startproject myproject
# 创建 Django 应用
python manage.py startapp myapp
# 编写 Django 视图函数
from django.http import HttpResponse
def home(request):
return HttpResponse("Hello, World!")
# 编写 Django URL 路由
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name='home'),
]
# 启动 Django 服务器
python manage.py runserver
在浏览器中访问 http://localhost:8000 即可看到 Hello, World!。
6. Python 爬虫开发
Python 在爬虫开发方面也非常强大,可以支持多种爬虫框架,包括 Scrapy、BeautifulSoup、Selenium 等等。
6.1 Scrapy 爬虫框架
Scrapy 是一个成熟的、高效的、可扩展的爬虫框架,它提供了全面的爬虫工具集合,包括数据提取、数据处理、数据存储等功能。
在 Scrapy 中,需要编写 Spider 来完成爬虫的工作:
# 创建 Scrapy 项目
scrapy startproject myproject
# 创建 Scrapy Spider
scrapy genspider myspider example.com
# 编写 Scrapy Spider
import scrapy
class MySpider(scrapy.Spider):
name = 'myspider'
start_urls = ['http://www.example.com/']
def parse(self, response):
for quote in response.css('div.quote'):
yield {
'text': quote.css('span.text::text').get(),
'author': quote.css('span small::text').get(),
'tags': quote.css('div.tags a.tag::text').getall(),
}
next_page = response.css('li.next a::attr(href)').get()
if next_page is not None:
yield response.follow(next_page, self.parse)
6.2 BeautifulSoup 爬虫框架
BeautifulSoup 是一个非常易用的 Python 爬虫框架,它提供了一种解析 HTML 和 XML 文档的方式,可以用于抓取 Web 页面内容。
# 安装 BeautifulSoup
pip install beautifulsoup4
# 编写 Beautiful Soup 爬虫
from bs4 import BeautifulSoup
import requests
url = 'http://example.com/'
response = requests.get(url)
content = response.text
soup = BeautifulSoup(content, 'html.parser')
title = soup.title.string
print(title)
7. Python 机器学习
Python 在机器学习方面应用非常广泛, Python 机器学习框架也很多,如 TensorFlow、PyTorch、Keras、Scikit-learn 等等。
7.1 TensorFlow 机器学习框架
TensorFlow 是一个流行的、开源的深度学习框架,最初由 Google 推出。
在 TensorFlow 中,可以使用连续的矩阵处理和流水化的框架,便于开发复杂的机器学习算法。
# 安装 TensorFlow
pip install tensorflow
# 编写 TensorFlow 机器学习模型
import tensorflow as tf
from tensorflow.keras import layers
# 搭建模型
model = tf.keras.Sequential([
layers.Dense(64, activation='relu'),
layers.Dense(10)
])
# 编译模型
model.compile(optimizer=tf.keras.optimizers.Adam(0.01),
loss=tf.keras.losses.CategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
# 训练模型
model.fit(x_train, y_train, epochs=5)
7.2 Scikit-learn 机器学习框架
Scikit-learn 是 Python 中常用的机器学习库之一,它集成了大量的机器学习算法和工具,包括分类、回归、聚类、特征提取等各种机器学习算法。
# 安装 Scikit-learn
pip install scikit-learn
# 编写 Scikit-learn 机器学习模型
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
iris = load_iris()
X = iris.data[:, 2:]
y = iris.target
tree_clf = DecisionTreeClassifier(max_depth=2)
tree_clf.fit(X, y)
8. Python 可视化
Python 在可视化方面也非常强大,可以支持多种可视化框架,包括 Matplotlib、Seaborn、Plotly 等等。
8.1 Matplotlib 可视化库
Matplotlib 是 Python 最著名的、广泛使用的可视化库之一,它提供了大量的绘图工具和 API,包括各种曲线图、散点图、柱状图等。
# 安装 Matplotlib
pip install matplotlib
# 编写 Matplotlib 绘图
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 1000)
y = np.sin(x)
plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('y')
plt.title('Sin Function')
plt.show()
8.2 Seaborn 可视化库
Seaborn 是一个美学化的、基于 Matplotlib 的 Python 可视化库,提供了更容易上手的 API,并