Python全面基础知识点
Python 全面基础知识点
一、Python 语言概述
1.1 为什么学习 Python?
- 简单易学:语法接近自然语言,代码可读性强
- 生态强大:
- 数据分析:
pandas,numpy,matplotlib - 人工智能:
tensorflow,pytorch,scikit-learn - Web 开发:
Django,Flask - 自动化脚本、爬虫、测试等
- 数据分析:
- 跨平台:Windows / macOS / Linux 均可运行
- 社区活跃:全球开发者支持,文档丰富
1.2 历史与发展
- 诞生时间:1991 年
- 创始人:Guido van Rossum(“龟叔”)
- 命名来源:英国喜剧团体 Monty Python
1.3 版本演进
| 版本 | 状态 | 说明 |
|---|---|---|
| Python 2.x | 已停止维护(2020年终止) | 不推荐新项目使用 |
| Python 3.x | 当前主流(3.8 ~ 3.13+) | 所有新项目应基于 Python 3 |
⚠️ Python 2 与 3 不兼容(如
二、开发环境搭建
2.1 安装 Python
- 官网下载:https://www.python.org/downloads/
- Windows 安装注意:
- ✅ 勾选 “Add Python to PATH”
- 推荐安装路径:
C:\Python39(无中文、空格、特殊字符)
2.2 验证安装
python --version # 或 python3 --version
输出示例:
Python 3.11.9
2.3 包管理工具:pip
- 安装第三方库:
pip install pandas - 查看已安装包:
pip list - 升级 pip:
python -m pip install --upgrade pip
2.4 IDE 选择
| 工具 | 特点 | 适用场景 |
|---|---|---|
| IDLE | Python 自带 | 初学者快速测试 |
| VS Code | 轻量 + 插件丰富 | 中小型项目、脚本 |
| PyCharm | 功能全面(调试、Git、框架支持) | 大型项目(推荐 Community 免费版) |
| Jupyter Notebook | 交互式 + 支持图表 | 数据分析、教学 |
三、基础语法
3.1 注释
# 单行注释
'''
多行注释(也可用 """ """)
用于函数/模块说明
'''
🔑 PyCharm 快捷键:
Ctrl + /切换单行注释
3.2 变量
定义与赋值
name = "Alice" # 字符串
age = 18 # 整数
height = 175.5 # 浮点数
is_student = True # 布尔值
变量本质
- Python 中变量是 对象的引用(非存储值本身)
- 赋值操作:
a = b表示a指向b所指向的对象
命名规则(必须遵守)
- 由字母、数字、下划线
_组成 - 不能以数字开头(如
1name❌) - 严格区分大小写(
Name ≠ name) - 不能使用关键字(查看:
import keyword; print(keyword.kwlist))
命名规范(PEP8 推荐)
- 变量/函数:
snake_case(如user_name) - 类名:
PascalCase(如StudentInfo) - 常量:
UPPER_SNAKE_CASE(如MAX_SIZE = 100)
使用原则
- 先定义,后使用,否则抛出
NameError
3.3 数据类型(7 种内置类型)
| 类型 | 示例 | 是否可变 | 是否有序 |
|---|---|---|---|
int |
42 |
❌ | — |
float |
3.14 |
❌ | — |
bool |
True |
❌ | — |
str |
"hello" |
❌ | ✅ |
list |
[1, 2, 3] |
✅ | ✅ |
tuple |
(1, 2, 3) |
❌ | ✅ |
dict |
{"name": "Alice"} |
✅ | ❌(Python 3.7+ 插入有序) |
set |
{1, 2, 3} |
✅ | ❌ |
🔍 查看类型:
type(x)
🔁 类型转换:int("123"),str(42),bool(1)
四、输入与输出
4.1 输出:print()
print("Hello")
print("Name:", name, "Age:", age)
格式化输出(三种方式)
-
f-string(推荐,Python 3.6+)
print(f"姓名:{name},年龄:{age},身高:{height:.2f}") -
.format()方法print("姓名:{},年龄:{}".format(name, age)) print("姓名:{n},年龄:{a}".format(n=name, a=age)) -
%格式化(旧式)print("姓名:%s,年龄:%d" % (name, age))
4.2 输入:input()
name = input("请输入姓名:") # 返回 str
age = int(input("请输入年龄:")) # 转为 int
⚠️
input()总是返回字符串,需手动转换类型
五、运算符
5.1 算术运算符
| 运算符 | 说明 | 示例 |
|---|---|---|
+ |
加 | 5 + 3 → 8 |
- |
减 | 5 - 3 → 2 |
* |
乘 | 5 * 3 → 15 |
/ |
除(浮点) | 5 / 2 → 2.5 |
// |
整除 | 5 // 2 → 2 |
% |
取余 | 5 % 2 → 1 |
** |
幂 | 2 ** 3 → 8 |
5.2 比较运算符
返回 True 或 False:
==,!=,>,<,>=,<=
5.3 逻辑运算符
and:全真为真or:一真为真not:取反
5.4 赋值运算符
=,+=,-=,*=,/=,//=,%=,**=
5.5 成员与身份运算符
in/not in:判断元素是否在容器中"a" in "abc" # True 1 in [1, 2, 3] # Trueis/is not:判断是否为同一对象(内存地址相同)a = [1, 2] b = a print(a is b) # True
六、流程控制
6.1 条件语句(if)
score = 85
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
else:
print("继续努力")
✅ 条件表达式可简化为一行(三元运算):
result = "及格" if score >= 60 else "不及格"
6.2 循环语句
while 循环
i = 0
while i < 5:
print(i)
i += 1
else:
print("循环正常结束") # 可选,未被 break 时执行
for 循环
# 遍历字符串
for char in "Python":
print(char)
# 遍历列表
fruits = ["apple", "banana"]
for f in fruits:
print(f)
# 指定次数:range()
for i in range(3): # 0, 1, 2
for i in range(1, 5): # 1, 2, 3, 4
for i in range(0, 10, 2): # 0, 2, 4, 6, 8
循环控制
break:立即退出整个循环continue:跳过本次,进入下一次pass:空语句(占位,保持结构完整)
七、常用数据结构详解
7.1 字符串(str)
创建
s1 = 'hello'
s2 = "world"
s3 = '''多行
字符串'''
常用操作
- 索引:
s[0]→'h' - 切片:
s[1:4]→'ell'(左闭右开) - 拼接:
s1 + s2 - 重复:
"a" * 3→"aaa"
常用方法
| 方法 | 说明 |
|---|---|
len(s) |
长度 |
s.upper() / s.lower() |
大小写 |
s.strip() |
去首尾空格 |
s.split(',') |
分割为列表 |
s.replace('old', 'new') |
替换 |
s.startswith('he') |
是否以...开头 |
7.2 列表(list)
创建
lst = [1, 2, 3]
lst = list((1, 2, 3))
增删改查
lst.append(4) # 末尾添加
lst.insert(0, 0) # 指定位置插入
lst[0] = 100 # 修改
lst.pop() # 删除末尾并返回
lst.remove(2) # 删除第一个匹配项
del lst[0] # 按索引删除
其他操作
- 切片:
lst[1:3] - 遍历:
for item in lst: - 列表推导式:
squares = [x**2 for x in range(5)] # [0, 1, 4, 9, 16]
7.3 元组(tuple)
- 不可变,一旦创建无法修改
- 适合存储固定数据(如坐标、RGB 值)
t = (1, 2, 3)
t = 1, 2, 3 # 可省略括号
x, y = (10, 20) # 序列解包
7.4 字典(dict)
创建
d = {"name": "Alice", "age": 18}
d = dict(name="Alice", age=18)
操作
d["gender"] = "F" # 添加/修改
print(d["name"]) # 访问(KeyError 若不存在)
print(d.get("name")) # 安全访问(不存在返回 None)
# 遍历
for key in d:
print(key, d[key])
for k, v in d.items():
print(k, v)
7.5 集合(set)
- 元素唯一、无序
- 支持数学集合运算
s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1 & s2) # 交集 → {2, 3}
print(s1 | s2) # 并集 → {1, 2, 3, 4}
print(s1 - s2) # 差集 → {1}
print(s1 ^ s2) # 对称差集 → {1, 4}
八、函数
8.1 定义与调用
def greet(name, greeting="Hello"):
return f"{greeting}, {name}!"
print(greet("Alice")) # Hello, Alice!
print(greet("Bob", "Hi")) # Hi, Bob!
8.2 参数类型
- 位置参数:按顺序传入
- 默认参数:
greeting="Hello" - 关键字参数:
greet(name="Alice") - 不定长参数:
def func(*args, **kwargs): print("位置参数:", args) # 元组 print("关键字参数:", kwargs) # 字典 func(1, 2, name="Tom", age=18)
8.3 匿名函数(lambda)
add = lambda a, b: a + b
print(add(3, 5)) # 8
# 常用于排序、映射
nums = [1, 3, 2]
sorted(nums, key=lambda x: -x) # 降序
九、模块与包
9.1 导入方式
import math
from math import sqrt
from math import sqrt as sq
import numpy as np
9.2 常用内置模块
os:操作系统接口sys:系统参数math:数学函数random:随机数datetime:日期时间
十、错误与异常处理
try:
num = int(input("输入数字:"))
except ValueError:
print("输入无效!")
else:
print("输入成功:", num)
finally:
print("无论是否出错都会执行")
十一、文件操作
# 读取
with open("file.txt", "r", encoding="utf-8") as f:
content = f.read()
# 写入
with open("output.txt", "w", encoding="utf-8") as f:
f.write("Hello, Python!")
✅ 使用
with自动关闭文件,避免资源泄漏
十二、其他重要概念
12.1 可变 vs 不可变对象
| 可变(Mutable) | 不可变(Immutable) |
|---|---|
| list, dict, set | int, float, str, tuple |
修改可变对象会影响所有引用;修改不可变对象会创建新对象
12.2 深拷贝 vs 浅拷贝
import copy
a = [[1, 2], [3, 4]]
b = a[:] # 浅拷贝(外层新,内层共享)
c = copy.deepcopy(a) # 深拷贝(完全独立)
12.3 Python 之禅(The Zen of Python)
import this
“优美胜于丑陋,明了胜于隐晦……”

浙公网安备 33010602011771号