Python 字符串(String)核心知识点

字符串是 Python 中表示文本的数据类型,使用单引号(' ')、双引号(" ")或三引号(''' '''/""" """,支持多行)包裹,且不可变(创建后无法修改单个字符)。

1. 字符串创建与基本特性

  • 创建方式:直接赋值即可,三引号用于多行文本或保留格式。
     
    s1 = 'hello'       # 单引号
    s2 = "world"       # 双引号
    s3 = '''hello      # 三引号(多行)
    world'''
    
     
  • 核心特性:
    • 不可变:s1[0] = 'H' 会报错,需通过切片 / 拼接生成新字符串。
    • 可迭代:支持 for char in s1: print(char) 遍历每个字符。

2. 字符串访问:索引与切片

  • 索引:通过 [下标] 访问单个字符,下标从 0 开始(正向) 或 -1 开始(反向,最后一个字符为 -1)。
     
     
    s = 'python'
    print(s[0])   # 输出 'p'(正向第1个)
    print(s[-1])  # 输出 'n'(反向第1个)
    
     
  • 切片:通过 [start:end:step] 截取子串,左闭右开(包含 start,不包含 end),step 为步长(默认 1)。
     
    print(s[1:4])   # 输出 'yth'(从1到3,步长1)
    print(s[::2])   # 输出 'pto'(全串,步长2,隔1取1)
    print(s[::-1])  # 输出 'nohtyp'(步长-1,反转字符串)
    
     

3. 常用操作:拼接、重复、成员判断

  • 拼接:用 + 连接字符串(仅字符串间可拼接,不能直接拼数字)。
    print('he' + 'llo')  # 输出 'hello'
    
     
  • 重复:用 * 重复字符串 n 次。
    print('hi' * 3)  # 输出 'hihihi'
    
     
  • 成员判断:用 in/not in 判断字符 / 子串是否在原字符串中,返回布尔值。
    print('ll' in 'hello')  # 输出 True
    
     

4. 核心内置方法(常用)

字符串方法均返回新字符串,不修改原字符串(因不可变),常用方法如下:

  • 大小写转换:
    • s.upper():全部转为大写(如 'hello'.upper() → 'HELLO')。
    • s.lower():全部转为小写(如 'HELLO'.lower() → 'hello')。
    • s.title():每个单词首字母大写(如 'hello world'.title() → 'Hello World')。
  • 去除空白:
    • s.strip():去除首尾空白(含空格、换行 \n、制表符 \t)。
    • s.lstrip()/s.rstrip():仅去除左 / 右空白。
  • 查找与替换:
    • s.find(sub):返回子串 sub 第一次出现的下标,不存在返回 -1(如 'hello'.find('l') → 2)。
    • s.replace(old, new, count):将 old 替换为 new,count 可选(指定替换次数,默认全部)。
  • 分割与连接:
    • s.split(sep):按 sep 分割字符串,返回列表(sep 默认为空白,如 'a,b,c'.split(',') → ['a','b','c'])。
    • sep.join(list):用 sep 连接列表元素为字符串(如 '-'.join(['a','b']) → 'a-b')。
  • 判断类型:
    • s.isdigit():判断是否全为数字(返回布尔值)。
    • s.isalpha():判断是否全为字母(返回布尔值)。

5. 格式化字符串(3 种方式)

用于将变量嵌入字符串,常用 3 种格式:

  1. % 格式化:用 %s(字符串)、%d(整数)、%f(浮点数)占位。
     
    name = 'Alice'
    print('Hello %s' % name)  # 输出 'Hello Alice'
    
     
  2. str.format():用 {} 占位,支持位置 / 关键字参数。
     
    print('Hello {}'.format(name))          # 位置参数,输出 'Hello Alice'
    print('Age: {age}'.format(age=20))      # 关键字参数,输出 'Age: 20'
    
     
  3. f-string(Python 3.6+,推荐):在字符串前加 f{变量名} 直接嵌入,简洁高效。
    age = 20
    print(f'Name: {name}, Age: {age}')  # 输出 'Name: Alice, Age: 20'
    
     

6. 转义字符

用于表示无法直接输入的字符,以 \ 开头,常见:

  • \n:换行
  • \t:制表符(类似按 Tab 键)
  • \'/\":在单 / 双引号字符串中,表示字面意义的引号(如 'He said: "Hi"'
  • r'':原始字符串,忽略转义(如 r'C:\new' 表示路径 C:\new,而非换行)
posted @ 2025-09-09 17:37  我歌且谣  阅读(25)  评论(0)    收藏  举报