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 不兼容(如 print 是语句 vs 函数)


二、开发环境搭建

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 所指向的对象

命名规则(必须遵守)

  1. 由字母、数字、下划线 _ 组成
  2. 不能以数字开头(如 1name ❌)
  3. 严格区分大小写(Name ≠ name
  4. 不能使用关键字(查看: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)

格式化输出(三种方式)

  1. f-string(推荐,Python 3.6+)

    print(f"姓名:{name},年龄:{age},身高:{height:.2f}")
    
  2. .format() 方法

    print("姓名:{},年龄:{}".format(name, age))
    print("姓名:{n},年龄:{a}".format(n=name, a=age))
    
  3. % 格式化(旧式)

    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 比较运算符

返回 TrueFalse

  • ==, !=, >, <, >=, <=

5.3 逻辑运算符

  • and:全真为真
  • or:一真为真
  • not:取反

5.4 赋值运算符

  • =, +=, -=, *=, /=, //=, %=, **=

5.5 成员与身份运算符

  • in / not in:判断元素是否在容器中
    "a" in "abc"  # True
    1 in [1, 2, 3]  # True
    
  • is / 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

“优美胜于丑陋,明了胜于隐晦……”

posted @ 2025-12-22 18:04  ShiLiCoder  阅读(47)  评论(1)    收藏  举报