小甲鱼Python学习笔记

字符串的核心特性

  • 不可变性:与元组一致,无法直接修改元素,需通过分片拼接生成新字符串
  • 序列共性:支持索引、分片、比较、逻辑、成员关系操作符(与列表/元组通用)
  • 无单独字符类型:单个字符是长度为1的字符串

字符串的索引与分片

  • 索引访问:str[index] → 例:"abc"[1] → "b"
  • 分片操作:str[start:end],规则同列表/元组
    • 例:s = "I love fishc.com" → s[:6] → "I love"
  • 间接修改:通过分片拼接生成新字符串 → s = s[:6] + " python" + s[6:]

字符串常用方法分类

  • 大小写转换
    • capitalize():首字符大写,其余小写
    • casefold() / lower():全部转为小写(casefold支持更多语言)
    • upper():全部转为大写
    • swapcase():大小写翻转
    • title():每个单词首字母大写,其余小写
  • 格式对齐
    • center(width):居中对齐,空格填充至width长度
    • ljust(width):左对齐,空格填充
    • rjust(width):右对齐,空格填充
    • zfill(width):右对齐,左侧补0至width长度
  • 查找与计数
    • count(sub[,start[,end]]):统计sub出现次数,可指定范围
    • find(sub[,start[,end]]):查找sub首次出现的索引,无则返回-1
    • rfind(sub[,start[,end]]):从右往左查找,无则返回-1
    • index(sub[,start[,end]]):与find类似,无则抛出异常
    • rindex(sub[,start[,end]]):从右往左查找,无则抛出异常
  • 判断检查
    • startswith(prefix[,start[,end]]):是否以prefix开头
    • endswith(suffix[,start[,end]]):是否以suffix结尾
    • isalnum():是否全为字母/数字且至少1个字符
    • isalpha():是否全为字母且至少1个字符
    • isdigit():是否全为数字字符
    • islower():是否全为小写字母
    • isupper():是否全为大写字母
    • isspace():是否全为空白字符
    • istitle():是否符合标题格式(单词首字母大写)
  • 分割与拼接
    • split([sep[,maxsplit]]):按sep分割字符串,返回列表,默认分隔符为空格
    • splitlines([keepends]):按换行符(\n)分割,keepends=True保留换行符
    • join(iterable):用字符串作为分隔符,拼接可迭代对象的元素
  • 修剪与替换
    • strip([chars]):移除字符串首尾的chars(默认空格)
    • lstrip([chars]):移除左侧的chars
    • rstrip([chars]):移除右侧的chars
    • replace(old,new[,count]):将old替换为new,count指定替换次数
    • translate(table):按转换表替换字符,需配合str.maketrans()生成转换表
  • 其他特殊方法
    • expandtabs([tabsize]):将\t转换为空格,默认tabsize=8
    • partition(sub):按sub分割为(head,sub,tail)元组,从左找首次出现
    • rpartition(sub):从右找首次出现的sub进行分割

字符串转换表生成

  • str.maketrans(old, new):生成字符替换的映射表
    • 例:table = str.maketrans("s", "b") → "sssaaasss".translate(table) → "bbb aaabbb"