基础语法
变量赋值
x =10# 整数 y =3.14# 浮点数 name ="Python"# 字符串 is_true =True# 布尔值# 多重赋值 a, b, c =1,2,3 x = y = z =0# 交换变量 a, b = b, a
输入输出
# 输出print("Hello")print("Hello","World")print(f"x={x}, y={y}")# 输入 name =input("请输入姓名:") age =int(input("请输入年龄:"))
注释
# 单行注释""" 多行注释 或文档字符串 """
数据类型
类型转换速查表
| 函数 | 说明 | 示例 |
|---|
| int() | 转整数 | int(“123”) → 123 |
| float() | 转浮点数 | float(“3.14”) → 3.14 |
| str() | 转字符串 | str(123) → “123” |
| bool() | 转布尔值 | bool(0) → False |
| list() | 转列表 | list(“abc”) → [‘a’,‘b’,‘c’] |
| tuple() | 转元组 | tuple([1,2]) → (1,2) |
| set() | 转集合 | set([1,2,2]) → {1,2} |
类型判断
type(x)# 查看类型isinstance(x,int)# 判断类型
运算符
算术运算符
+# 加法:5 + 3 = 8-# 减法:5 - 3 = 2*# 乘法:5 * 3 = 15/# 除法:5 / 2 = 2.5//# 整除:5 // 2 = 2%# 取余:5 % 2 = 1**# 幂运算:2 ** 3 = 8
比较运算符
==# 等于!=# 不等于># 大于<# 小于>=# 大于等于<=# 小于等于
逻辑运算符
and# 与or# 或not# 非# 示例if age >18and age <60:print("成年")
控制流程
条件语句
# ifif condition:# 代码# if-elseif condition:# 代码else:# 代码# if-elif-elseif condition1:# 代码elif condition2:# 代码else:# 代码# 三元表达式 result = value1 if condition else value2
循环语句
# for循环for i inrange(5):# 0,1,2,3,4print(i)for i inrange(1,6):# 1,2,3,4,5print(i)for i inrange(0,10,2):# 0,2,4,6,8print(i)# while循环while condition:# 代码# break和continuefor i inrange(10):if i ==5:break# 退出循环if i ==3:continue# 跳过本次print(i)
数据结构
列表(List)
创建
lst =[]# 空列表 lst =[1,2,3,4,5]# 直接创建 lst =list(range(5))# [0,1,2,3,4]
常用方法
lst.append(x)# 末尾添加 lst.insert(i, x)# 指定位置插入 lst.remove(x)# 删除元素 lst.pop()# 删除并返回末尾元素 lst.pop(i)# 删除并返回指定位置 lst.clear()# 清空列表 lst.index(x)# 查找元素位置 lst.count(x)# 统计元素出现次数 lst.sort()# 排序 lst.reverse()# 反转len(lst)# 长度
切片
lst[0]# 第一个元素 lst[-1]# 最后一个元素 lst[1:4]# 索引1到3 lst[:3]# 前3个 lst[3:]# 从索引3到末尾 lst[::2]# 每隔一个 lst[::-1]# 反转
列表推导式
[x**2for x inrange(5)]# [0,1,4,9,16][x for x inrange(10)if x %2==0]# [0,2,4,6,8]
字典(Dict)
创建
d ={}# 空字典 d ={"name":"Alice","age":25}# 直接创建 d =dict(name="Alice", age=25)# 使用dict()
常用方法
d["key"]# 获取值(不存在会报错) d.get("key")# 获取值(不存在返回None) d.get("key", default)# 获取值(不存在返回默认值) d["key"]= value # 设置值 d.keys()# 所有键 d.values()# 所有值 d.items()# 所有键值对 d.pop("key")# 删除并返回 d.update(other_dict)# 更新"key"in d # 判断键是否存在
字典推导式
{x: x**2for x inrange(5)}# {0:0, 1:1, 2:4, 3:9, 4:16}
元组(Tuple)
t =()# 空元组 t =(1,)# 单元素元组(注意逗号) t =(1,2,3)# 多元素元组 t =1,2,3# 也可以不加括号# 元组不可修改,但可以访问 t[0]# 第一个元素
集合(Set)
创建
s =set()# 空集合 s ={1,2,3}# 直接创建 s =set([1,2,2,3])# {1,2,3}(自动去重)
常用方法
s.add(x)# 添加元素 s.remove(x)# 删除元素 s.discard(x)# 删除元素(不存在不报错) s1 | s2 # 并集 s1 & s2 # 交集 s1 - s2 # 差集
函数
函数定义
# 基本函数deffunc_name(param):"""文档字符串"""return result # 默认参数deffunc(a, b=10):return a + b # 可变参数deffunc(*args,**kwargs):print(args)# 元组print(kwargs)# 字典# Lambda函数 f =lambda x: x**2
常用内置函数
| 函数 | 说明 | 示例 |
|---|
| len() | 长度 | len([1,2,3]) → 3 |
| max() | 最大值 | max([1,2,3]) → 3 |
| min() | 最小值 | min([1,2,3]) → 1 |
| sum() | 求和 | sum([1,2,3]) → 6 |
| abs() | 绝对值 | abs(-5) → 5 |
| round() | 四舍五入 | round(3.14, 1) → 3.1 |
| sorted() | 排序 | sorted([3,1,2]) → [1,2,3] |
| range() | 范围 | range(5) → 0,1,2,3,4 |
| enumerate() | 枚举 | enumerate([‘a’,‘b’]) |
| zip() | 打包 | zip([1,2],[‘a’,‘b’]) |
| map() | 映射 | map(str,[1,2,3]) |
| filter() | 过滤 | filter(lambda x:x>0,[1,-1,2]) |
文件操作
读文件
# 读取全部withopen("file.txt","r", encoding="utf-8")as f: content = f.read()# 按行读取withopen("file.txt","r", encoding="utf-8")as f:for line in f:print(line.strip())# 读取所有行withopen("file.txt","r", encoding="utf-8")as f: lines = f.readlines()
写文件
# 写入(覆盖)withopen("file.txt","w", encoding="utf-8")as f: f.write("Hello\n")# 追加withopen("file.txt","a", encoding="utf-8")as f: f.write("World\n")
文件模式
| 模式 | 说明 |
|---|
| r | 只读 |
| w | 写入(覆盖) |
| a | 追加 |
| r+ | 读写 |
| rb | 二进制读取 |
| wb | 二进制写入 |
异常处理
基本语法
try:# 可能出错的代码 x =int(input())except ValueError:# 处理ValueErrorprint("输入错误")except Exception as e:# 处理其他异常print(f"错误:{e}")else:# 没有异常时执行print("成功")finally:# 无论如何都执行print("结束")
常见异常
| 异常 | 说明 |
|---|
| ValueError | 值错误 |
| TypeError | 类型错误 |
| IndexError | 索引错误 |
| KeyError | 键错误 |
| FileNotFoundError | 文件不存在 |
| ZeroDivisionError | 除零错误 |
| AttributeError | 属性错误 |
面向对象
类定义
classClassName:"""类的文档字符串"""# 类变量 class_var ="shared"# 构造方法def__init__(self, param): self.instance_var = param # 实例方法defmethod(self):return self.instance_var # 类方法@classmethoddefclass_method(cls):return cls.class_var # 静态方法@staticmethoddefstatic_method(x):return x *2# 创建对象 obj = ClassName("value")
继承
classParent:def__init__(self, name): self.name = name classChild(Parent):def__init__(self, name, age):super().__init__(name)# 调用父类构造方法 self.age = age
常用特殊方法
| 方法 | 说明 |
|---|
| __init__ | 构造方法 |
| __str__ | 字符串表示 |
| __repr__ | 官方字符串表示 |
| __len__ | 长度 |
| __getitem__ | 索引访问 |
| __setitem__ | 索引赋值 |
| __call__ | 对象可调用 |
常用模块
时间日期
from datetime import datetime, date, timedelta # 当前时间 now = datetime.now() today = date.today()# 格式化 now.strftime("%Y-%m-%d %H:%M:%S")# 时间计算 tomorrow = today + timedelta(days=1)
随机数
import random random.random()# 0-1随机浮点数 random.randint(1,10)# 1-10随机整数 random.choice([1,2,3])# 随机选择 random.shuffle(lst)# 打乱列表
JSON
import json # 转JSON字符串 json_str = json.dumps(data, ensure_ascii=False, indent=4)# 解析JSON data = json.loads(json_str)# 读写文件withopen("data.json","w")as f: json.dump(data, f)withopen("data.json","r")as f: data = json.load(f)
正则表达式
import re re.search(pattern, string)# 搜索 re.match(pattern, string)# 从开头匹配 re.findall(pattern, string)# 查找所有 re.sub(pattern, repl, string)# 替换
路径操作
from pathlib import Path p = Path("folder/file.txt") p.exists()# 是否存在 p.is_file()# 是否是文件 p.is_dir()# 是否是目录 p.read_text()# 读取文本 p.write_text("content")# 写入文本 p.parent # 父目录 p.name # 文件名 p.stem # 文件名(不含扩展名) p.suffix # 扩展名
字符串方法速查
s ="Hello World" s.lower()# 转小写 s.upper()# 转大写 s.strip()# 去除两端空白 s.split()# 分割成列表 s.replace("old","new")# 替换 s.startswith("He")# 是否以...开头 s.endswith("ld")# 是否以...结尾 s.find("o")# 查找位置(找不到返回-1) s.index("o")# 查找位置(找不到报错) s.count("l")# 统计出现次数 s.isdigit()# 是否全是数字 s.isalpha()# 是否全是字母
推导式速查
# 列表推导式[x**2for x inrange(5)][x for x inrange(10)if x %2==0]# 字典推导式{x: x**2for x inrange(5)}# 集合推导式{x**2for x inrange(5)}# 生成器表达式(注意是小括号)(x**2for x inrange(5))
快速记忆技巧
数据结构选择
- 列表:有序、可重复、可修改 → 用[]
- 元组:有序、可重复、不可修改 → 用()
- 字典:键值对映射 → 用{}带冒号
- 集合:无序、不重复 → 用{}不带冒号
常见操作
# 判断存在 x in lst # 列表 key indict# 字典 x inset# 集合# 获取长度len(lst)# 列表len(dict)# 字典len(set)# 集合len(str)# 字符串# 遍历for item in lst:# 列表for key indict:# 字典(遍历键)for key, value indict.items():# 字典(键值对)
调试技巧
# 打印调试print(f"变量x的值:{x}")print(f"变量类型:{type(x)}")# 查看对象所有属性和方法dir(obj)# 查看帮助help(function)# 断言assert condition,"错误信息"