Python知识点总结_基础篇
·
Python 知识点总结 - 基础篇
一、Python 基础
1.1 Python 简介
- 定义:Python 是一种高级、解释型、面向对象的编程语言,由 Guido van Rossum 于 1991 年发布。
- 命名由来:名字来源于英国喜剧团体 Monty Python,并非以蛇命名。
- 设计哲学:“优雅”、“明确”、“简单”,强调代码可读性。
- 应用领域:Web 开发、数据科学、人工智能、自动化运维、游戏开发等。
1.2 Python 的特点
- 简单易学:语法简洁,接近自然语言,入门门槛低。
- 跨平台:可在 Windows、Linux、macOS 等多种操作系统上运行。
- 丰富的标准库:内置大量模块,覆盖文件处理、网络通信、正则表达式等功能。
- 强大的第三方库:NumPy、Pandas、TensorFlow、PyTorch 等库支撑科学计算和人工智能。
- 多范式支持:支持面向对象、函数式、过程式编程。
- 动态类型:变量无需声明类型,运行时自动推断。
- 自动内存管理:通过引用计数和垃圾回收机制自动管理内存。
1.3 开发环境
- Python 解释器:核心执行引擎,运行
.py文件。 - IDE 推荐:
- PyCharm:功能强大,智能提示和调试支持优秀。
- VS Code:轻量级,插件丰富,适合快速开发。
- Jupyter Notebook:交互式编程,适合数据分析和教学。
- 包管理工具:
- pip:Python 官方包管理工具,用于安装和管理第三方库。
- conda:Anaconda 附带的包管理器,适合数据科学环境。
1.4 基本语法
- 注释:
- 单行注释:以
#开头,注释内容到行尾。
# 这是一行注释 print("Hello") # 这也是注释- 多行注释:使用
""" 内容 """或''' 内容 ''',常用于文档说明。
""" 这是多行注释 可以写很多行 """ - 单行注释:以
- 关键字:具有特殊含义的保留字,如
if、else、for、while、def、class等,不可作为变量名。 - 标识符:
- 由字母、数字、下划线组成。
- 不能以数字开头。
- 区分大小写(
name和Name是不同变量)。
- 命名规范:
- 驼峰命名法:
camelCase(首字母小写,后续单词首字母大写)、PascalCase(所有单词首字母大写)。 - 蛇形命名法:
snake_case(单词之间用下划线连接),Python 官方推荐风格。
- 驼峰命名法:
1.5 变量与数据类型
- 变量:程序运行过程中可改变的值,用于存储数据。语法:
变量名 = 值。name = "Alice" age = 25 - 数值类型:
- int:整数,如
10、-5、0,支持任意精度。
a = 10 b = -5 c = 1000000000000000000000 # Python 支持大整数- float:浮点数,如
3.14、-2.5、1.0e10。
pi = 3.14159 scientific = 1.5e10 # 科学计数法,等于 15000000000.0- complex:复数,如
3 + 4j、2j。
z = 3 + 4j real_part = z.real # 获取实部 imag_part = z.imag # 获取虚部 - int:整数,如
- 字符串:
- 用单引号
'、双引号"或三引号"""包裹。 - 支持 Unicode 编码,可表示中文等任意字符。
- 不可变序列,即创建后不能修改单个字符。
str1 = 'Hello' str2 = "World" str3 = """多行 字符串""" - 用单引号
- 布尔值:
True:表示真(等价于 1)。False:表示假(等价于 0)。
is_active = True is_empty = False - 类型转换:
int(x):转换为整数。float(x):转换为浮点数。str(x):转换为字符串。bool(x):转换为布尔值(0、空字符串、空容器为False)。
num_str = "123" num_int = int(num_str) # 123 num_float = float(num_str) # 123.0 is_true = bool(1) # True is_false = bool(0) # False
1.6 运算符
- 算术运算符:
a = 10 b = 3 print(a + b) # 13,加法 print(a - b) # 7,减法 print(a * b) # 30,乘法 print(a / b) # 3.333...,除法 print(a // b) # 3,整除 print(a % b) # 1,取模 print(a ** b) # 1000,幂运算 - 赋值运算符:
x = 5 x += 3 # 等价于 x = x + 3,结果为 8 x -= 2 # 等价于 x = x - 2,结果为 6 x *= 4 # 等价于 x = x * 4,结果为 24 x /= 2 # 等价于 x = x / 2,结果为 12.0 - 比较运算符:
a = 10 b = 5 print(a > b) # True print(a >= b) # True print(a < b) # False print(a <= b) # False print(a == b) # False,判断相等 print(a != b) # True,判断不等 - 逻辑运算符:
x = True y = False print(x and y) # False,逻辑与 print(x or y) # True,逻辑或 print(not x) # False,逻辑非
二、容器类型
2.1 字符串 (str)
- 特性:有序、不可变序列。
- 索引:从 0 开始,支持负数索引(
-1表示最后一个字符)。s = "Hello" print(s[0]) # 'H' print(s[-1]) # 'o' - 切片:
str[start:end:step],左闭右开区间。s = "Python" print(s[1:4]) # 'yth' print(s[:3]) # 'Pyt',从头开始 print(s[2:]) # 'thon',到末尾 print(s[::2]) # 'Pto',步长为 2 print(s[::-1]) # 'nohtyP',反转字符串 - 常用方法:
s = " Hello World! " print(s.find("World")) # 7,查找子串位置 print(s.index("World")) # 7,查找子串位置,未找到抛出异常 print(s.replace("World", "Python")) # ' Hello Python! ' print(s.split()) # ['Hello', 'World!'],按空白分割 print("-".join(["a", "b", "c"])) # 'a-b-c',连接字符串 print(s.strip()) # 'Hello World!',去除首尾空白 print(s.upper()) # ' HELLO WORLD! ' print(s.lower()) # ' hello world! ' - 格式化方式:
name = "Alice" age = 25 # %格式化 print("Hello %s, you are %d years old." % (name, age)) # format() print("Hello {}, you are {} years old.".format(name, age)) print("Hello {1}, you are {0} years old.".format(age, name)) # 指定顺序 # f-string(Python 3.6+) print(f"Hello {name}, you are {age} years old.") print(f"Next year you'll be {age + 1} years old.")
2.2 列表 (list)
- 特性:有序、可变序列,用
[]表示。 - 创建:
list1 = [1, 2, 3, 4, 5] list2 = list(range(10)) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] list3 = ["apple", "banana", "cherry"] - 常用方法:
fruits = ["apple", "banana", "cherry"] fruits.append("date") # 添加到末尾:["apple", "banana", "cherry", "date"] fruits.extend(["fig", "grape"]) # 添加多个元素:["apple", "banana", "cherry", "date", "fig", "grape"] fruits.insert(1, "blueberry") # 在索引 1 处插入:["apple", "blueberry", "banana", "cherry", "date", "fig", "grape"] fruits.remove("banana") # 删除第一个匹配项:["apple", "blueberry", "cherry", "date", "fig", "grape"] removed = fruits.pop() # 删除并返回最后一个元素 fruits.clear() # 清空列表 numbers = [3, 1, 4, 1, 5, 9] numbers.sort() # 原地排序:[1, 1, 3, 4, 5, 9] numbers.reverse() # 原地反转:[9, 5, 4, 3, 1, 1] print(numbers.index(4)) # 2,返回元素索引 print(numbers.count(1)) # 2,统计元素出现次数 - 嵌套列表:
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] print(matrix[0][1]) # 2,访问第一行第二列
2.3 元组 (tuple)
- 特性:有序、不可变序列,用
()表示。 - 创建:
t1 = (1, 2, 3) t2 = 1, 2, 3 # 括号可省略 t3 = (1,) # 单元素元组必须加逗号 - 常用方法:
t = (1, 2, 3, 2, 4) print(t.count(2)) # 2,统计出现次数 print(t.index(3)) # 2,返回索引 - 应用场景:
# 函数返回多个值 def get_size(): width = 10 height = 20 return width, height # 实际返回元组 w, h = get_size() # 解包
2.4 字典 (dict)
- 特性:无序键值对集合,用
{}表示(Python 3.7+ 保持插入顺序)。 - 键的要求:必须是不可变类型(字符串、数字、元组)。
- 常用方法:
person = {"name": "Alice", "age": 25, "city": "New York"} print(person.keys()) # dict_keys(['name', 'age', 'city']) print(person.values()) # dict_values(['Alice', 25, 'New York']) print(person.items()) # dict_items([('name', 'Alice'), ('age', 25), ('city', 'New York')]) print(person.get("name")) # 'Alice' print(person.get("gender", "Unknown")) # 'Unknown',键不存在返回默认值 person.pop("city") # 删除键并返回值 person.update({"gender": "female", "age": 26}) # 更新字典 person.clear() # 清空字典 - 遍历方式:
person = {"name": "Alice", "age": 25} # 遍历键 for key in person: print(key) # 遍历值 for value in person.values(): print(value) # 遍历键值对 for key, value in person.items(): print(f"{key}: {value}")
2.5 集合 (set)
- 特性:无序、不重复元素集合,用
{}或set()表示。 - 创建:
s1 = {1, 2, 3, 3, 2} # 自动去重:{1, 2, 3} s2 = set([1, 2, 2, 3]) # 从列表创建:{1, 2, 3} s3 = set() # 空集合 - 常用操作:
s1 = {1, 2, 3, 4} s2 = {3, 4, 5, 6} print(s1 & s2) # {3, 4},交集 print(s1 | s2) # {1, 2, 3, 4, 5, 6},并集 print(s1 - s2) # {1, 2},差集 print(s1 ^ s2) # {1, 2, 5, 6},对称差 - 常用方法:
s = {1, 2, 3} s.add(4) # 添加元素:{1, 2, 3, 4} s.remove(2) # 删除元素,不存在抛出异常 s.discard(5) # 删除元素,不存在不报错 s.clear() # 清空集合 - 应用场景:
# 去重 duplicates = [1, 2, 2, 3, 3, 3] unique = list(set(duplicates)) # [1, 2, 3]
三、控制流程
3.1 条件语句
- 单分支:
age = 18 if age >= 18: print("成年人") - 双分支:
score = 85 if score >= 60: print("及格") else: print("不及格") - 多分支:
score = 85 if score >= 90: print("优秀") elif score >= 80: print("良好") elif score >= 60: print("及格") else: print("不及格") - 三元运算符:
age = 20 status = "成年" if age >= 18 else "未成年" print(status) # '成年' - 注意:Python 使用缩进(通常 4 个空格)表示代码块,而非大括号。
3.2 循环语句
- while 循环:
count = 0 while count < 5: print(count) count += 1 # 必须修改条件,否则无限循环 # 输出:0 1 2 3 4 - for 循环:
fruits = ["apple", "banana", "cherry"] for fruit in fruits: print(fruit) # 输出:apple banana cherry - range() 函数:
for i in range(5): print(i) # 0 1 2 3 4 for i in range(2, 8): print(i) # 2 3 4 5 6 7 for i in range(0, 10, 2): print(i) # 0 2 4 6 8 - 嵌套循环:
for i in range(3): for j in range(3): print(f"({i}, {j})", end=" ") print() # 输出: # (0, 0) (0, 1) (0, 2) # (1, 0) (1, 1) (1, 2) # (2, 0) (2, 1) (2, 2)
3.3 跳转语句
- break:
for i in range(10): if i == 5: break # 终止循环 print(i) # 输出:0 1 2 3 4 - continue:
for i in range(10): if i % 2 == 0: continue # 跳过偶数 print(i) # 输出:1 3 5 7 9 - else 子句:
for i in range(5): if i == 10: break else: print("循环正常结束") # 会执行,因为没有 break for i in range(5): if i == 3: break else: print("循环正常结束") # 不会执行,因为被 break 终止
四、函数
4.1 函数定义与调用
- 定义语法:
def greet(name): """向用户打招呼""" print(f"Hello, {name}!") # 调用 greet("Alice") # 输出:Hello, Alice! - 带返回值的函数:
def add(a, b): """计算两个数的和""" return a + b result = add(3, 5) print(result) # 8
4.2 参数类型
- 位置参数:
def power(base, exponent): return base ** exponent result = power(2, 3) # base=2, exponent=3 print(result) # 8 - 关键字参数:
result = power(exponent=3, base=2) # 顺序无关 print(result) # 8 - 默认参数:
def greet(name, greeting="Hello"): return f"{greeting}, {name}!" print(greet("Alice")) # "Hello, Alice!" print(greet("Bob", "Hi")) # "Hi, Bob!" - 可变参数:
# *args:接收任意数量的位置参数 def sum_all(*args): total = 0 for num in args: total += num return total print(sum_all(1, 2, 3)) # 6 print(sum_all(1, 2, 3, 4, 5)) # 15 # **kwargs:接收任意数量的关键字参数 def print_info(**kwargs): for key, value in kwargs.items(): print(f"{key}: {value}") print_info(name="Alice", age=25, city="New York")
4.3 返回值
- 单个返回值:
def square(x): return x ** 2 - 多个返回值:
def calculate(a, b): return a + b, a - b, a * b, a / b add_result, sub_result, mul_result, div_result = calculate(10, 5) print(add_result) # 15 print(sub_result) # 5 print(mul_result) # 50 print(div_result) # 2.0
4.4 匿名函数
- 语法:
lambda 参数: 表达式 - 示例:
add = lambda x, y: x + y print(add(3, 5)) # 8 # 作为高阶函数参数 numbers = [(1, 3), (2, 1), (3, 2)] sorted_numbers = sorted(numbers, key=lambda x: x[1]) print(sorted_numbers) # [(2, 1), (3, 2), (1, 3)]
4.5 函数嵌套
- 定义:函数内部定义另一个函数
- 示例:
def outer_function(x): def inner_function(y): return y * 2 result = inner_function(x) return result + 1 print(outer_function(5)) # 11 - 闭包:内部函数可以访问外部函数的变量
def make_adder(n): def adder(x): return x + n return adder add5 = make_adder(5) print(add5(3)) # 8 print(add5(10)) # 15
更多推荐


所有评论(0)