Python 变量、数字与字符串速查

Python 变量、数字与字符串速查 本文整理 Python 最基础的数据类型:变量、数字、字符串的常用操作,适合快速查阅。 1. 变量基础 Python 是动态类型语言,变量不需要声明类型,直接赋值即可。 # 基本赋值 name = "Alice" age = 25 height = 1.68 is_student = True # 链式赋值 a = b = c = 0 # 多元赋值 x, y = 10, 20 变量命名规则 只能包含字母、数字、下划线 不能以数字开头 区分大小写 不能使用 Python 关键字 # 常用命名风格 user_name = "bob" # 下划线命名 (snake_case) UserName = "bob" # 帕斯卡命名 (PascalCase) USER_NAME = "bob" # 常量大写 2. 数字类型 Python 支持三种数字类型:整数(int)、浮点数(float)、复数(complex)。 # 整数 a = 10 # 十进制 b = 0b1010 # 二进制 = 10 c = 0o12 # 八进制 = 10 d = 0xa # 十六进制 = 10 # 浮点数 pi = 3.14159 scientific = 1.5e-3 # 0.0015 # 复数 complex_num = 3 + 4j print(complex_num.real) # 3.0 print(complex_num.imag) # 4.0 数字运算 # 基本运算 5 + 3 # 8 加 5 - 3 # 2 减 5 * 3 # 15 乘 5 / 3 # 1.666... 除 (始终返回浮点数) 5 // 3 # 1 整除 5 % 3 # 2 取余 5 ** 3 # 125 幂 # 进阶运算 divmod(5, 3) # (1, 2) 返回商和余数 abs(-5) # 5 绝对值 round(3.14159, 2) # 3.14 四舍五入 类型转换 # 字符串转整数 int('123') # 123 int('0xff', 16) # 255 指定进制 int('1010', 2) # 10 二进制字符串 # 字符串转浮点数 float('3.14') # 3.14 float('1e-3') # 0.001 # 整数转字符串 str(123) # '123' hex(255) # '0xff' bin(10) # '0b1010' # 转换为浮点数 float(10) # 10.0 3. 字符串 Python 字符串用单引号、双引号、三引号均可。 ...

April 12, 2026

Python 命令行参数 argparse

Python 命令行参数 argparse argparse 是 Python 标准库中处理命令行参数的模块。 1. 基本用法 import argparse parser = argparse.ArgumentParser(description='My CLI tool') parser.add_argument('name', help='your name') parser.add_argument('--age', type=int, help='your age') args = parser.parse_args() print(f"Hello, {args.name}") if args.age: print(f"You are {args.age} years old") 2. 参数类型 parser.add_argument('--count', type=int, default=1) parser.add_argument('--verbose', action='store_true') parser.add_argument('--file', type=str, required=True) 3. 可选值 parser.add_argument('--level', choices=['easy', 'medium', 'hard'], default='easy') 4. 位置参数 # 多个位置参数 parser.add_argument('files', nargs='+') # 可选位置参数 parser.add_argument('file', nargs='?') 5. 子命令 parser = argparse.ArgumentParser() subparsers = parser.add_subparsers() # 添加子命令 deploy_parser = subparsers.add_parser('deploy') start_parser = subparsers.add_parser('start') 使用 argparse 可以创建专业的命令行工具。

April 12, 2026

Python 异常处理入门

Python 异常处理入门 异常处理是 Python 的核心技能,本文介绍 try/except/finally 的用法。 1. 基本结构 try: result = 10 / 0 except ZeroDivisionError: print("不能除以零") try-except-else try: result = 10 / 2 except ZeroDivisionError: print("除以零错误") else: print(f"结果是 {result}") # 只有没有异常时执行 try-except-finally try: f = open("file.txt") content = f.read() finally: f.close() # 总会执行 完整结构 try: result = x / y except ZeroDivisionError: print("除以零") else: print("result is", result) finally: print("executing finally clause") 2. 捕获异常 捕获多个异常 try: x = int("abc") except (ValueError, TypeError): print("类型或值错误") 获取异常信息 try: x = int("abc") except ValueError as e: print(f"错误: {e}") 重新抛出异常 try: raise NameError("HiThere") except NameError: print('An exception flew by!') raise # 重新抛出 3. 抛出异常 raise ValueError("Invalid value") raise TypeError("Expected int, got str") 4. 自定义异常 class MyError(Exception): pass raise MyError("Something wrong") 5. 常见异常类型 异常 说明 ZeroDivisionError 除以零 TypeError 类型错误 ValueError 值错误 FileNotFoundError 文件不存在 KeyError 字典键不存在 IndexError 索引超出范围 异常处理让程序更健壮,必需掌握。

April 12, 2026

Python 排序 sort 与 sorted

Python 排序 sort 与 sorted Python 提供 sort() 和 sorted() 进行排序。 1. 基本用法 numbers = [3, 1, 4, 1, 5, 9, 2, 6] # sorted() 返回新列表 sorted(numbers) # [1, 1, 2, 3, 4, 5, 6, 9] # sort() 原地排序 numbers.sort() # numbers 变为 [1, 1, 2, 3, 4, 5, 6, 9] 2. 降序排序 sorted(numbers, reverse=True) numbers.sort(reverse=True) 3. key 参数 # 按长度排序 words = ["apple", "hi", "banana"] sorted(words, key=len) # ['hi', 'apple', 'banana'] # 字符串按长度+内容 sorted(words, key=lambda x: (len(x), x)) 4. 多级排序 data = [ {"name": "Alice", "age": 25}, {"name": "Bob", "age": 30}, {"name": "Alice", "age": 20}, ] sorted(data, key=lambda x: (x["name"], x["age"])) 5. 保持稳定 # Python 排序是稳定的 sorted(data, key=lambda x: x["name"]) 掌握排序让数据处理更高效。

April 12, 2026

Python 日志记录 logging

Python 日志记录 logging logging 是 Python 的标准日志模块,比 print 更专业。 1. 基本用法 import logging # 设置级别 logging.basicConfig(level=logging.DEBUG) logging.debug('Debug message') logging.info('Info message') logging.warning('Warning message') logging.error('Error message') logging.critical('Critical message') 2. 配置日志文件 import logging logging.basicConfig( filename='app.log', level=logging.DEBUG, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) 3. 使用 Logger import logging logger = logging.getLogger(__name__) logger.debug('Debug') logger.info('Info') logger.warning('Warning') 4. 格式化 logging.basicConfig( format='%(asctime)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S' ) 5. 不同级别处理器 import logging logger = logging.getLogger(__name__) logger.setLevel(logging.DEBUG) # 控制台输出 console = logging.StreamHandler() console.setLevel(logging.INFO) # 文件输出 file = logging.FileHandler('app.log') file.setLevel(logging.DEBUG) formatter = logging.Formatter('%(asctime)s - %(name)s - %(message)s') console.setFormatter(formatter) file.setFormatter(formatter) logger.addHandler(console) logger.addHandler(file) 日志是调试和监控应用的重要工具。

April 12, 2026

Python 日期时间处理

Python 日期时间处理 Python 的 datetime 模块是处理日期时间的利器。 1. 获取当前时间 from datetime import datetime, date, time # 当前datetime now = datetime.now() today = datetime.today() # 当前日期 d = date.today() # 当前时间 t = time.min # 00:00:00 2. 创建日期时间 from datetime import datetime # 直接指定 dt = datetime(2024, 1, 15, 10, 30, 0) dt = datetime(year=2024, month=1, day=15) # 从时间戳 dt = datetime.fromtimestamp(1704067200) # 从字符串 dt = datetime.strptime("2024-01-15 10:30:00", "%Y-%m-%d %H:%M:%S") 3. 格式化输出 dt = datetime.now() # 转为字符串 dt.strftime("%Y-%m-%d %H:%M:%S") # 2024-01-15 10:30:00 dt.isoformat() # 2024-01-15T10:30:00 # 提取部分 dt.year # 2024 dt.month # 1 dt.day # 15 dt.hour # 10 4. 日期计算 from datetime import datetime, timedelta # 时间差 delta = timedelta(days=7, hours=2) # 加减 new_dt = dt + delta new_dt = dt - delta # 相差 diff = dt2 - dt1 # 返回 timedelta diff.days diff.seconds 5. 时区处理 from datetime import datetime, timezone # UTC时间 dt_utc = datetime.now(timezone.utc) # 转换为不同时区 import pytz # 需要安装 日期时间处理是编程中的常见需求。

April 12, 2026

Python 模块导入 import

Python 模块导入 import Python 通过 import 导入模块和函数。 1. 基本导入 import os import sys import json 2. 指定别名 import numpy as np import pandas as pd from collections import OrderedDict as OD 3. from 导入 from os import path, walk from datetime import datetime, timedelta 4. 模块路径 mypackage/ ├── __init__.py ├── module1.py └── subpackage/ ├── __init__.py └── module2.py 5. 相对导入 from . import module1 from ..subpackage import module2 from .module1 import func 正确的导入让代码结构清晰。

April 12, 2026

Python 生成器与 yield

Python 生成器与 yield 生成器是一种特殊的迭代器,用 yield 关键字产生值。 1. 基本生成器 def generate_ints(n): for i in range(n): yield i gen = generate_ints(3) print(next(gen)) # 0 print(next(gen)) # 1 print(next(gen)) # 2 # print(next(gen)) # StopIteration 在循环中使用 def fibonacci(n): a, b = 0, 1 for _ in range(n): yield a a, b = b, a + b for num in fibonacci(10): print(num) 2. 生成器表达式 # 类似列表推导式,但惰性求值 squares = (x**2 for x in range(5)) for s in squares: print(s) 3. yield from def chain(*iterables): for it in iterables: yield from it for item in chain([1, 2], [3, 4], [5, 6]): print(item) # 1,2,3,4,5,6 4. send 和 throw def runner(): while True: result = yield print(f"Received: {result}") gen = runner() next(gen) # 启动 gen.send("hello") # Received: hello gen.send("world") # Received: world 5. 优势 节省内存:不一次性生成所有值 惰性求值:按需生成 代码简洁 生成器是 Python 重要的异步编程基础。

April 12, 2026

Python 类与面向对象基础

Python 类与面向对象基础 Python 是面向对象语言,本文介绍类的定义和使用。 1. 定义类 class Person: pass # 创建实例 p = Person() 带属性 class Person: def __init__(self, name, age): self.name = name self.age = age p = Person("Alice", 25) print(p.name) # Alice 2. 方法 class Person: def __init__(self, name, age): self.name = name self.age = age def greet(self): return f"Hello, I'm {self.name}" p = Person("Alice", 25) print(p.greet()) # Hello, I'm Alice 类方法 @classmethod class Person: species = "Human" @classmethod def from_dict(cls, data): return cls(data["name"], data["age"]) 静态方法 @staticmethod class Person: @staticmethod def is_adult(age): return age >= 18 3. 继承 class Student(Person): def __init__(self, name, age, school): super().__init__(name, age) self.school = school 多继承 class A: pass class B: pass class C(A, B): pass 4. 访问控制 class Person: def __init__(self): self._protected = 1 # 受保护 self.__private = 2 # 私有 def __method(self): # 私有方法 pass 5. 特殊方法 class Person: def __str__(self): return f"Person({self.name})" def __repr__(self): return f"Person({self.name!r})" def __eq__(self, other): return self.name == other.name 面向对象是 Python 编程的核心概念。

April 12, 2026

Python 类型提示 Type Hint

Python 类型提示 Type Hint Python 3.5+ 支持类型提示,让代码更易维护。 1. 基本类型 def greet(name: str) -> str: return f"Hello, {name}" def add(a: int, b: int) -> int: return a + b 2. 变量类型 # Python 3.6+ name: str = "Alice" age: int = 25 scores: list = [1, 2, 3] 3. 复杂类型 from typing import List, Dict, Tuple, Optional, Union # 列表 names: List[str] = ["Alice", "Bob"] # 字典 scores: Dict[str, int] = {"Alice": 90} # 可选 age: Optional[int] = None # 联合类型 value: Union[int, str] = 10 4. 类型别名 User = Dict[str, Union[str, int]] users: List[User] = [] 5. 运行检查 # 安装 mypy # pip install mypy # 运行检查 # mypy your_file.py 类型提示让代码更可靠。

April 12, 2026