Python 是一门高级编程语言,由 Guido van Rossum 于 1991 年开发。它以简洁易读的语法和强大的内置功能深受开发者喜爱。Python 的代码通过缩进来划分代码块,结构清晰,便于维护。拥有丰富的标准库和第三方模块,使其在数据分析、网络开发、人工智能以及自动化脚本等领域得到了广泛应用。其跨平台特性保证了在 Windows、Linux 和 macOS 等系统上的高效运行。近年来,随着数据科学和机器学习的蓬勃发展,Python 已成为科研和开发人员的重要工具,推动着现代技术的不断进步。所以学习Python变得越来越有必要。
1、Python环境搭建
本文以Python3.X为基础,讲解Python语言的基本语法和编程思想。
1.1、Python解析器
Python解析器
Python解析器是用来运行Python代码用的,具体的执行流程是:Python文件->Python解析器->机器语言
下载Python解析器
打开网址:https://www.python.org/downloads/,选择合适的版本下载
安装Python解析器
双击可执⾏行行⽂文件 — 勾选[pip] -- [Next] -- [勾选添加环境变量量] -- [Install],按提示操作即可。
1.2、Python开发IDE
PyCharm介绍
PyCharm 是一款功能强大的 Python IDE,旨在提高开发效率。其主要功能包括:
-
智能代码补全:根据上下文智能推荐代码,显著提升编写效率。
-
强大的调试工具:内置调试器支持逐行执行代码,帮助开发者轻松定位问题。
-
版本控制集成:支持 Git、SVN 等版本控制工具,便于团队协作。
-
虚拟环境支持:可轻松创建和管理 Python 虚拟环境,确保项目依赖的隔离性。
-
AI 增强功能:通过 AI Assistant 提供上下文感知的代码补全、代码生成和错误修正,进一步提升开发效率。
下载PyCharm软件
下载地址:
https://www.jetbrains.com/pycharm/download/#section=windows
可以选择选择合适的版本进行下载
安装PyCharm软件
双击安装包 -- [运⾏行行] -- [允许你应⽤用更更改设备]: [是] -- [Next] -- [选择安装位置] -- [Next] -- [Install] -- [Finish]。
PyCharm的基本使用
-
新建项目
打开PyCharm -- [Create New Project] -- 选择项⽬根⽬录和解释器版本 -- [Create],即可完成新建一个项目。
-
新建Python文件
项⽬根⽬录或根目录内部任意位置-- 右键 -- [New] -- [Python File] -- 输⼊文件名 -- [OK]。
-
写入代码和运行
2、基础语法与数据类型
-
变量与基本数据类型:整数、浮点数、布尔、字符串。
-
基本运算符:算术运算、比较运算、逻辑运算。
-
数据结构:列表、元组、字典、集合,各自特点与常用操作。
具体案例:
# 基本数据类型及操作
a = 10
b = 3.14
s = "Hello, Python!"
flag = True
print("整数 a:", a)
print("浮点数 b:", b)
print("字符串 s:", s)
print("布尔 flag:", flag)
# 数据结构示例
my_list = [1, 2, 3, 4]
my_tuple = (1, 2, 3, 4)
my_dict = {"name": "Alice", "age": 25}
my_set = {1, 2, 3, 4}
print("列表:", my_list)
print("元组:", my_tuple)
print("字典:", my_dict)
print("集合:", my_set)
3、控制流程与循环
-
条件判断:if、elif、else 语句。
-
循环语句:for 循环、while 循环,以及 break、continue 控制循环流程。
-
列表推导式:利用一行表达式生成列表。
具体案例:
# 条件判断
score = 85
if score >= 90:
print("优秀")
elif score >= 60:
print("及格")
else:
print("不及格")
# for 循环示例
for i in range(5):
print("数字:", i)
# 列表推导式示例:生成 0-9 的平方
squares = [x * x for x in range(10)]
print("0到9的平方:", squares)
4、函数与模块
-
函数定义:如何编写函数、传递参数和返回值。
-
匿名函数:lambda 表达式的使用。
-
模块化:如何将代码拆分到不同文件中,使用 import 导入标准库或自定义模块。
具体案例:
def add(x, y):
"""返回两个数的和"""
return x + y
print("3 + 5 =", add(3, 5))
# lambda 匿名函数示例
multiply = lambda x, y: x * y
print("3 * 5 =", multiply(3, 5))
5、数据结构详解
-
列表、元组、字典与集合:详细讲解它们的特性、常用方法(如增删查改)。
-
集合与字典推导式:如何快速构造数据结构。
具体案例:
# 列表操作
fruits = ["apple", "banana", "cherry"]
fruits.append("date")
print("更新后的列表:", fruits)
# 字典操作
student = {"name": "Bob", "age": 20}
student["grade"] = "A"
print("学生信息:", student)
# 集合操作:自动去重
nums = [1, 2, 2, 3, 4, 4, 5]
unique_nums = set(nums)
print("唯一数字集合:", unique_nums)
6、面向对象编程(OOP)
-
类与对象:定义类、构造方法 __init__。
-
实例方法与属性:如何操作对象数据。
-
继承与多态:子类继承父类,重写方法。
-
封装:私有属性和方法的约定。
具体案例:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def introduce(self):
print(f"我叫{self.name},今年{self.age}岁。")
class Student(Person):
def __init__(self, name, age, student_id):
super().__init__(name, age)
self.student_id = student_id
def introduce(self):
super().introduce()
print(f"我的学号是{self.student_id}。")
p = Person("Alice", 30)
p.introduce()
s = Student("Bob", 20, "S1001")
s.introduce()
7、异常处理
-
基本结构:使用 try...except...finally 捕获和处理异常。
-
自定义异常:根据需求创建新的异常类型。
具体案例:
try:
result = 10 / 0
except ZeroDivisionError as e:
print("捕获到除零错误:", e)
finally:
print("异常处理结束")
8、装饰器与生成器
-
装饰器:介绍如何定义装饰器为函数添加额外功能,如计时、日志记录。
-
生成器:利用 yield 关键字生成迭代器,适用于大数据或无限序列场景。
具体案例:
import time
def timer(func):
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
end = time.time()
print(f"{func.__name__}运行时间: {end - start:.4f}秒")
return result
return wrapper
@timer
def compute_sum(n):
total = 0
for i in range(n):
total += i
return total
print("累加结果:", compute_sum(100000))
# 生成器:斐波那契数列
def fibonacci(n):
a, b = 0, 1
count = 0
while count < n:
yield a
a, b = b, a + b
count += 1
print("前10个斐波那契数:", list(fibonacci(10)))
9、文件操作与数据存储
-
文本与二进制文件:使用 open() 函数及上下文管理器 with 进行文件读写。
-
常用数据格式:JSON、CSV 的读写操作;介绍使用 json、csv 模块进行数据交换。
-
数据库连接:简单提及使用 sqlite3 进行数据库操作。
具体案例:
# 写文件
with open("example.txt", "w", encoding="utf-8") as f:
f.write("这是一个文件示例,展示如何使用Python进行文件操作。\n")
# 读文件
with open("example.txt", "r", encoding="utf-8") as f:
content = f.read()
print("文件内容:\n", content)
10、标准库与第三方库
-
常用标准库:os(文件与目录操作)、sys(系统参数)、datetime(日期时间处理)、math(数学运算)、random(随机数生成)等。
-
第三方库:通过 pip 安装常用扩展库,如 NumPy、pandas、Matplotlib、Requests、BeautifulSoup 等,扩展 Python 的功能。
具体案例:
import os
import datetime
print("当前工作目录:", os.getcwd())
print("今天的日期:", datetime.date.today())
# 使用pip安装第三方库示例(在命令行中执行)
# pip install numpy pandas matplotlib
11、并发与异步编程
-
多线程与多进程:利用 threading 模块实现多线程,multiprocessing 模块实现多进程,解决 CPU 密集型与 I/O 密集型问题。
-
异步编程:使用 asyncio 库编写异步代码,适用于高并发网络请求等场景。
多线程案例:
import threading
def worker(num):
print(f"线程 {num} 正在运行")
threads = []
for i in range(3):
t = threading.Thread(target=worker, args=(i,))
threads.append(t)
t.start()
for t in threads:
t.join()
print("所有线程执行完毕")
异步编程案例:
import asyncio
async def async_task(name, delay):
print(f"任务 {name} 开始")
await asyncio.sleep(delay)
print(f"任务 {name} 完成")
return name
async def main():
tasks = [async_task("A", 2), async_task("B", 1)]
results = await asyncio.gather(*tasks)
print("异步任务结果:", results)
asyncio.run(main())
12、网络编程
-
Socket编程:使用 socket 模块构建简单的 TCP/UDP 客户端和服务器,实现底层网络通信。
-
HTTP请求:利用第三方库 Requests 发起 GET、POST 请求,处理 API 数据。
具体案例:
TCP服务器:
import socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('localhost', 8000))
server_socket.listen(1)
print("服务器启动,等待连接...")
conn, addr = server_socket.accept()
print("连接来自:", addr)
data = conn.recv(1024)
print("收到数据:", data.decode())
conn.send("Hello, client!".encode())
conn.close()
server_socket.close()
Http请求案例:
import requests
response = requests.get("https://api.github.com")
print("状态码:", response.status_code)
print("响应内容:", response.json())
13、数据科学与机器学习基础
-
NumPy:高性能数值计算库,支持多维数组与矩阵运算。
-
pandas:数据处理与分析工具,便于数据清洗、转换和统计。
-
Matplotlib/Seaborn:数据可视化工具,快速绘制图表。
-
Scikit-learn:机器学习库,提供数据预处理、模型训练、评估等工具。
具体案例:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 生成随机数据
data = np.random.randn(1000)
df = pd.DataFrame(data, columns=['数据'])
print(df.head())
# 绘制直方图
plt.hist(df['数据'], bins=30)
plt.title("随机数据分布")
plt.xlabel("值")
plt.ylabel("频率")
plt.show()
14、测试、调试与代码规范
-
单元测试:利用 unittest 或 pytest 编写自动化测试,确保代码质量。
-
调试工具:使用 pdb 调试代码、IDE 自带调试功能。
-
编码规范:遵循 PEP 8 风格指南,使用 flake8、pylint 等工具检查代码风格。
具体案例:
import unittest
def add(a, b):
return a + b
class TestMathFunctions(unittest.TestCase):
def test_add(self):
self.assertEqual(add(2, 3), 5)
self.assertNotEqual(add(2, 2), 5)
if __name__ == '__main__':
unittest.main()
15、项目实战案例
最后通过Python实现一个基于 Flask 的登录案例,通过该示例你可以了解如何使用 Python 构建一个简单的登录系统,包括用户身份验证、会话管理和错误提示。项目结构如下:
mylogin/
├── app.py
└── templates/
├── login.html
└── welcome.html
1. 后端代码(app.py)
from flask import Flask, render_template, request, redirect, url_for, session, flash
app = Flask(__name__)
app.secret_key = 'your_secret_key' # 用于会话管理,生产环境中请使用更复杂的密钥
# 模拟的用户数据库(实际项目中应使用数据库存储用户信息)
users = {
'admin': 'admin123',
'user1': 'password1'
}
@app.route('/', methods=['GET', 'POST'])
def login():
"""
登录页面路由:
- GET 请求返回登录页面
- POST 请求验证用户提交的用户名和密码
"""
if request.method == 'POST':
username = request.form.get('username')
password = request.form.get('password')
# 简单验证用户信息
if username in users and users[username] == password:
session['username'] = username # 将用户名存入会话,实现登录状态
return redirect(url_for('welcome'))
else:
flash('用户名或密码错误,请重试', 'error')
return render_template('login.html')
@app.route('/welcome')
def welcome():
"""
欢迎页面:
- 检查用户是否已登录
- 登录成功后显示欢迎信息
"""
if 'username' in session:
return render_template('welcome.html', username=session['username'])
else:
return redirect(url_for('login'))
@app.route('/logout')
def logout():
"""
退出登录,清除会话数据,并重定向到登录页面
"""
session.pop('username', None)
flash('您已成功退出登录', 'info')
return redirect(url_for('login'))
if __name__ == '__main__':
app.run(debug=True)
2. 前端页面模板
login.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>登录系统</title>
</head>
<body>
<h1>登录</h1>
<!-- 显示错误或提示信息 -->
{% with messages = get_flashed_messages(with_categories=true) %}
{% if messages %}
<ul>
{% for category, message in messages %}
<li style="color: red;">{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
{% endwith %}
<!-- 登录表单 -->
<form method="post">
<label for="username">用户名:</label>
<input type="text" name="username" id="username" required><br><br>
<label for="password">密码:</label>
<input type="password" name="password" id="password" required><br><br>
<input type="submit" value="登录">
</form>
</body>
</html>
welcome.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>欢迎</title>
</head>
<body>
<h1>欢迎,{{ username }}!</h1>
<p>您已成功登录系统。</p>
<a href="{{ url_for('logout') }}">退出登录</a>
</body>
</html>
总结
本教程从 Python 的基础语法入手,逐步讲解了数据结构、控制流程、函数、面向对象、异常处理、装饰器、生成器、文件操作、标准库、网络编程、数据科学、并发编程以及测试调试等各个方面。
最后,这里免费分享给大家一套免费的学习资料,包含视频、源码/电子书,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以加我微信一起来学习交流。
① Python方向的学习路线图,清楚各个方向要学什么东西
② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
③ 100多个Python实战案例,学习不再是只会理论
④ Python漫画教程,手机也能学习