当前位置:首页>python>从零开始学python-字符串

从零开始学python-字符串

  • 2026-08-25 19:55:25
从零开始学python-字符串

Hi~新朋友,记得点上面蓝字(网虫root)关注哟~

前言:

   主要分享的是Python版本为Python3的内容。

1. 字符串的创建与表示

在Python中,字符串是一种不可变序列类型,用于表示文本数据。创建字符串有多种方式:

1、使用单引号创建字符串str1 = '数据分析与可视化'print(str1)  # 输出:数据分析与可视化2、使用双引号创建字符串str2 = "机器学习模型训练"print(str2)  # 输出:机器学习模型训练3、使用三引号创建多行字符串str3 = '''这是一个多行字符串示例可用于文档字符串'''print(str3)4、使用三引号创建带格式的字符串str4 = """用户信息:姓名:张三年龄:25职业:算法工程师"""print(str4)
  • 单引号内的双引号不算结束符

  • 双引号内的单引号不算结束符

  • 三引号允许一个字符串跨多行,换行会自动转换为换行符\n,字符串中可以包含换行符、制表符以及其他特殊字符,三引号内可以包含单引号和双引号

2. 字符串访问与切片

字符串支持索引和切片操作,可以灵活访问子字符串:

text = "深度学习框架TensorFlow"1、通过索引 [] 获取单个字符print(text[0])      # 输出:深print(text[5])      # 输出:架 print(text[-1])     # 输出:w(最后一个字符)print(text[-3])     # 输出:l(倒数第三个字符)2、字符串切片 [start:end:step]print(text[2:6])    # 输出:学习框架print(text[:4])     # 输出:深度学习 print(text[7:])     # 输出:ensorFlowprint(text[::2])    # 输出:深学框TnoFo(步长为2)print(text[::-1])   # 输出:wolFrosneT架框习学度深(反转字符串)3、获取字符串长度length = len(text)print(f"字符串长度:{length}")  # 输出:字符串长度:16 

3. 字符串基本操作

3.1 字符串拼接

1、使用加号拼接first_name = "张"last_name = "三丰"full_name = last_name + first_nameprint(full_name)  # 输出:三丰张2、使用join方法拼接words = ["自然语言", "处理", "技术"]sentence = " ".join(words)print(sentence)  # 输出:自然语言 处理 技术3、使用format拼接framework = "PyTorch"version = "2.0"info = "框架:{} 版本:{}".format(framework, version)print(info)  # 输出:框架:PyTorch 版本:2.04、直接拼接(相邻字符串自动合并)long_text = "这是" "一个" "自动合并" "的字符串"print(long_text)  # 输出:这是一个自动合并的字符串

3.2 字符串重复

1、使用乘法操作符重复字符串separator = "=" * 30print(separator)  # 输出:==============================warning = "注意!" * 3print(warning)    # 输出:注意!注意!注意!2、创建进度条效果progress = "[" + "#" * 20 + "]"print(progress)   # 输出:[####################]

3.3 成员判断( in/not in)

a = "python world"if( "p" in a) :    print("p 在变量 a 中")else :    print("p 不在变量 a 中")if( "w" not in a) :    print("w 不在变量 a 中")else :    print("w 在变量 a 中")输出:p 在变量 a 中w 在变量 a 中

3.4 原始字符串(r/R)

     原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。

普通字符串 - \n 会被转义为换行符normal_str = "第一行\n第二行"print("普通字符串:")print(normal_str)原始字符串 - \n 被当作普通字符raw_str = r"第一行\n第二行"print("\n原始字符串:")print(raw_str)

如何创建原始字符串

在字符串前加 r 或 R 前缀即可:

使用小写 rpath1 = r"C:\Windows\System32"print(path1)  # 输出: C:\Windows\System32使用大写 R  path2 = R"C:\Program Files\Python"print(path2)  # 输出: C:\Program Files\Python各种引号都可以用str1 = r'这是一个原始字符串'str2 = r"这也是原始字符串"str3 = r'''这还是原始字符串'''

4. 字符串常用方法

4.1 大小写转换

text = "Python Programming"① upper(): 将字符串所有字符转换为大写print(text.upper())        # 输出:PYTHON PROGRAMMING② lower(): 将字符串所有字符转换为小写print(text.lower())        # 输出:python programming③ title(): 将字符串每个单词的首字母大写,其余小写print(text.title())        # 输出:Python Programming④ capitalize(): 将字符串第一个字符大写,其余小写print(text.capitalize())   # 输出:Python programming⑤ swapcase(): 将字符串中大写转换为小写,小写转换为大写print(text.swapcase())     # 输出:pYTHON pROGRAMMING

4.2 查找与替换

sentence = "Python是一种优秀的编程语言,Python简单易学"1、查找① find(): 返回子字符串第一次出现的索引,未找到返回-1print(sentence.find("Python"))      # 输出:0② rfind(): 返回子字符串最后一次出现的索引,未找到返回-1print(sentence.rfind("Python"))     # 输出:17③ index(): 与find()类似,但如果未找到会抛出ValueError异常print(sentence.index("优秀"))        # 输出:9④ count(): 返回子字符串在字符串中出现的次数print(sentence.count("Python"))     # 输出:22、替换⑤ replace(): 将字符串中的子字符串替换为新字符串,可指定替换次数new_sentence = sentence.replace("Python", "Java", 1)print(new_sentence)  # 只替换第一个3、判断开头和结尾filename = "data_analysis.py"⑥ startswith(): 检查字符串是否以指定前缀开头print(filename.startswith("data"))  # 输出:True⑦ endswith(): 检查字符串是否以指定后缀结尾print(filename.endswith(".py"))     # 输出:True

4.3 分割与连接

1、分割字符串csv_data = "苹果,香蕉,橙子,葡萄,西瓜"① split(): 使用指定分隔符将字符串分割为列表fruits = csv_data.split(",")print(fruits)  # 输出:['苹果', '香蕉', '橙子', '葡萄', '西瓜']text_lines = """第一行内容第二行内容第三行内容"""② splitlines(): 按行分割字符串,返回行列表lines = text_lines.splitlines()print(lines)2、连接字符串path_parts = ["home", "user", "documents", "report.txt"]③ join(): 使用指定分隔符连接可迭代对象中的字符串元素file_path = "/".join(path_parts)print(file_path)  # 输出:home/user/documents/report.txt

4.4 去除空白字符

text_with_spaces = "   前后都有空格   "text_with_tabs = "\t\t带制表符的文本\n"print(f"原始文本:'{text_with_spaces}'")① strip(): 去除字符串两端的空白字符(包括空格、制表符、换行符等)print(f"去除两端:'{text_with_spaces.strip()}'")② lstrip(): 去除字符串左端的空白字符print(f"去除左端:'{text_with_spaces.lstrip()}'")③ rstrip(): 去除字符串右端的空白字符print(f"去除右端:'{text_with_spaces.rstrip()}'")print(f"去除所有空白:'{text_with_tabs.strip()}'")

4.5 字符串判断方法

test1 = "Python3"test2 = "12345"test3 = "ABCdef"test4 = "    "test5 = "Hello World"① isalnum(): 检查字符串是否只包含字母和数字print(f"{test1} 是否全为字母数字:{test1.isalnum()}")  # True② isdigit(): 检查字符串是否只包含数字print(f"{test2} 是否全为数字:{test2.isdigit()}")      # True③ isalpha(): 检查字符串是否只包含字母print(f"{test3} 是否全为字母:{test3.isalpha()}")      # True ④ isspace(): 检查字符串是否只包含空白字符print(f"{test4} 是否全为空格:{test4.isspace()}")      # True⑤ istitle(): 检查字符串中每个单词的首字母是否都大写print(f"{test5} 是否每个单词首字母大写:{test5.istitle()}")  # True

5. 字符串编码与字节转换

1、字符串与字节的转换text = "人工智能AI"2、编码为字节utf8_bytes = text.encode("utf-8")gbk_bytes = text.encode("gbk")print(f"UTF-8编码:{utf8_bytes}")print(f"GBK编码:{gbk_bytes}")3、解码为字符串decoded_text = utf8_bytes.decode("utf-8")print(f"解码后:{decoded_text}")4、处理不同编码try:    gbk_decoded = gbk_bytes.decode("utf-8")except UnicodeDecodeError as e:    print(f"编码错误:{e}")

6. 性能考虑与最佳实践

避免使用+进行大量字符串拼接1、不佳的做法:result = ""for i in range(10000):    result += str(i)  # 每次创建新字符串2、推荐的做法:parts = []for i in range(10000):    parts.append(str(i))result = "".join(parts)  # 一次性拼接3、使用in运算符进行成员测试text = "Python是一种解释型语言"if "解释型" in text:    print("包含'解释型'")4、利用字符串不可变性original = "原始字符串"modified = original.replace("原始", "修改后")print(f"原字符串:{original}")print(f"修改后字符串:{modified}")

【微语】人生没有白走的路,每一步都算数。

网虫root

期待你的

分享

点赞

在看

最新文章

随机文章