Python-01-基础语法

2026-07-15wei👁 5 阅读9 分钟阅读📝 3703 字💬 0 评论
Python-01-基础语法

Python 基础语法

一、数据类型

常用类型

类型 示例 说明
int 42, -7, 0b1010 整数,无大小限制
float 3.14, -0.5, 1e-3 浮点数,双精度
str ‘hello’, “世界” 字符串,不可变
bool True, False 布尔值,是 int 的子类
NoneType None 空值,表示"无"
complex 1+2j 复数(较少用)

类型检查与转换

python
# 检查类型type(42)          # <class 'int'>isinstance(3.14, float)  # Trueisinstance(3.14, (int, float))  # True # 类型转换int("42")         # 42int("1010", 2)    # 10(二进制转十进制)float("3.14")     # 3.14str(100)          # "100"bool("")          # False(空字符串为假)bool([])          # False(空容器为假)bool("hello")     # True 

可变 vs 不可变

类型 可变性 说明
int, float, str, bool, tuple 不可变 修改会创建新对象
list, dict, set 可变 原地修改不创建新对象
python
a = "hello"a.upper()        # 返回新字符串 "HELLO",a 不变a = a.upper()    # 需要重新赋值 lst = [1, 2, 3]lst.append(4)    # lst 变成 [1, 2, 3, 4],原地修改 

二、容器类型

list(列表)

有序、可变、可重复。

python
# 创建lst = [1, 2, 3, 2]lst = list(range(5))          # [0, 1, 2, 3, 4]lst = [x*2 for x in range(5)] # [0, 2, 4, 6, 8]  列表推导式 # 增删改查lst.append(4)     # 末尾追加: [1, 2, 3, 4]lst.insert(1, 99) # 指定位置插入: [1, 99, 2, 3]lst.extend([5,6]) # 合并列表: [1, 2, 3, 5, 6]lst.remove(2)     # 删除第一个匹配值lst.pop()         # 删除并返回末尾元素lst.pop(0)        # 删除并返回指定索引元素lst[0] = 100      # 修改元素lst.index(3)      # 查找元素索引(不存在报 ValueError)lst.count(2)      # 统计出现次数 # 切片lst[1:4]          # 索引 1~3(左闭右开)lst[:3]           # 前 3 个lst[-3:]          # 后 3 个lst[::2]          # 每隔一个取lst[::-1]         # 反转 # 排序lst.sort()                  # 原地升序lst.sort(reverse=True)      # 原地降序sorted(lst)                 # 返回新排序列表(不改变原列表)sorted(lst, key=len)        # 按自定义规则排序 

tuple(元组)

有序、不可变、可重复。常用于函数返回多个值。

python
t = (1, 2, 3)t = 1, 2, 3       # 括号可省略t = (1,)           # 单元素元组必须加逗号 # 解包a, b, c = (1, 2, 3)  # a=1, b=2, c=3a, *b = (1, 2, 3, 4) # a=1, b=[2, 3, 4] 

dict(字典)

无序(3.7+ 有序)、可变、键唯一。

python
# 创建d = {"name": "Alice", "age": 25}d = dict(name="Bob", age=30)d = {x: x**2 for x in range(5)}  # 字典推导式: {0:0, 1:1, 2:4, 3:9, 4:16} # 增删改查d["email"] = "a@b.com"  # 新增/修改d.get("phone", "N/A")   # 安全获取,不存在返回默认值d.setdefault("role", "user")  # 不存在则设置默认值d.pop("age")             # 删除并返回值d.popitem()              # 删除并返回最后一个键值对(3.7+)del d["key"] # 遍历for k in d:              # 键for k, v in d.items():   # 键值对for v in d.values():     # 值 # 合并(3.9+)d1 | d2                  # 合并两个字典(后者覆盖前者)d1 |= d2                 # 原地合并 

set(集合)

无序、可变、元素唯一。

python
s = {1, 2, 3}s = set([1, 2, 2, 3])    # {1, 2, 3} 自动去重 # 集合运算s.add(4)              # 添加s.remove(2)           # 删除(不存在报错)s.discard(2)          # 删除(不存在不报错)s1 & s2               # 交集s1 | s2               # 并集s1 - s2               # 差集s1 ^ s2               # 对称差集(在两者中但不同时存在){1, 2}.issubset(s)    # 是否子集 

常用技巧

python
# enumerate() — 带索引遍历for i, val in enumerate(['a', 'b', 'c']):    print(f"{i}: {val}") # zip() — 并行遍历for name, age in zip(['Alice', 'Bob'], [25, 30]):    print(f"{name} is {age}") # 推导式[x.upper() for x in ['a', 'b']]           # 列表推导(x*2 for x in range(10))                   # 生成器推导(惰性){k: v for k, v in [('a', 1), ('b', 2)]}   # 字典推导{x for x in [1, 2, 2, 3]}                 # 集合推导 {1, 2, 3} 

三、字符串

格式化

python
name, age = "Alice", 25f"{name} is {age} years old"          # f-string(推荐)f"{name=}"                             # 调试输出: "name='Alice'"f"{3.14159:.2f}"                       # 保留两位小数: "3.14" "{} is {} years old".format(name, age)"{name} is {age} years old".format_map({"name": "Bob", "age": 30}) 

常用方法

python
s = "  Hello World!  " s.strip()              # 去两端空白: "Hello World!"s.lstrip()             # 去左空白s.rstrip()             # 去右空白s.lower()              # 转小写s.upper()              # 转大写s.replace("World", "Python")  # 替换s.split()              # 按空白分割: ['Hello', 'World!']s.split(",")           # 按逗号分割",".join(["a", "b"])   # 连接: "a,b"s.find("World")        # 查找索引,不存在返回 -1s.startswith("Hello")  # 是否以...开头s.endswith("!")        # 是否以...结尾s.count("l")           # 计数len(s)                 # 长度 

索引与切片

python
s = "Python"s[0]      # 'P's[-1]     # 'n's[1:4]    # 'yth's[::-1]   # 'nohtyP' 反转 

四、运算符

算术运算符

python
+  -  *  /        # 加减乘除(/ 返回 float)//                # 整除: 7 // 3 → 2%                 # 取余: 7 % 3 → 1**                # 幂: 2 ** 10 → 1024 

比较运算符

python
==  !=  >  <  >=  <=     # 返回 boolis / is not               # 身份比较(比较内存地址,不建议比较值) 

逻辑运算符

python
and   or   not # 短路求值a = 0 or "default"   # a = "default"(0 为假,返回第二个值)b = "hi" and "ok"    # b = "ok"(都为真,返回最后一个值) 

成员运算符

python
3 in [1, 2, 3]       # True'x' not in 'hello'   # True 

五、流程控制

if-elif-else

python
score = 85if score >= 90:    grade = "A"elif score >= 80:    grade = "B"elif score >= 70:    grade = "C"else:    grade = "D" # 三元表达式x = 1 if condition else 0 

for 循环

python
for i in range(5):         # 0~4    print(i) for i in range(2, 10, 3):  # 2, 5, 8(起、止、步长) # 倒序for i in range(10, 0, -1): # 10~1 # 遍历字典for k, v in d.items():    print(k, v) 

while 循环

python
count = 0while count < 5:    print(count)    count += 1 

break / continue / else

python
for i in range(10):    if i == 3:        continue   # 跳过本次循环    if i == 7:        break      # 终止循环else:    print("循环正常结束(没有遇到 break)")  # 循环的 else 子句 

六、文件操作

python
# 读文件with open("file.txt", "r", encoding="utf-8") as f:    content = f.read()          # 读取全部    line = f.readline()         # 读取一行    lines = f.readlines()       # 读取所有行到列表 # 写文件with open("out.txt", "w", encoding="utf-8") as f:    f.write("Hello\n")    f.writelines(["line1\n", "line2\n"]) # 追加模式with open("log.txt", "a", encoding="utf-8") as f:    f.write("new log entry\n") # 二进制读写with open("img.png", "rb") as f:    data = f.read() # 模式说明# r  只读(默认)# w  写入(覆盖)# a  追加# x  排他创建(文件存在则报错)# b  二进制模式# t  文本模式(默认)# +  读写模式(r+/w+) 

pathlib(3.4+,推荐替代 os.path)

python
from pathlib import Path p = Path("data/config.json")p.exists()              # 文件是否存在p.is_file()             # 是否是文件p.is_dir()              # 是否是目录p.name                  # 文件名: "config.json"p.stem                  # 无后缀: "config"p.suffix                # 后缀: ".json"p.parent                # 父目录: datap.read_text()           # 读取文本p.write_text("hello")   # 写入文本p.read_bytes()          # 读取二进制 # 路径拼接Path("data") / "sub" / "file.txt"   # 优雅拼接 
wei
技术博客作者
3703 字 · 0 评论
2026-07-15

评论 (0)

暂无评论,来写第一条吧

登录后发表评论

分类

友链

关于本站

用 SpringBoot + Nuxt3 搭建的个人技术博客,记录编程之路的思考与收获。

© 2026 好啵博客 · Built with ❤️ & SpringBoot + Nuxt3