当前位置: 首页 > news >正文

Python 教程(三):字符串特性大全

目录

    • 专栏列表
    • 前言
    • 1. 字符串基础
    • 2. 字符串方法
      • 字符串查询
      • 字符串修改
      • 字符串切片
    • 3. 字符串格式化
      • 旧式格式化(`%` 操作符)
      • `str.format()` 方法
      • f-string(Python 3.6+)
    • 4. 字符串编码
    • 5. Unicode 和 ASCII
    • 6. 正则表达式
    • 7. 字符串比较
    • 8. 字符串连接
    • 9. 字符串不可变性
    • 10. 字符串的内存视图
    • 总结

在前两篇教程中,我们学习了 Python 的基本语法和数据结构。本篇教程,我们将深入探讨 Python 中的字符串特性大全

专栏列表

  • Python教程(一):环境搭建及PyCharm安装
  • Python 教程(二):语法与数据结构
  • Python 教程(三):字符串特性大全

在这里插入图片描述

正文开始如果觉得文章对您有帮助,请帮我三连+订阅,谢谢💖💖💖


前言

Python 3 中的字符串处理功能非常强大,提供了丰富的方法和操作来处理文本数据。下面我们将介绍 字符串的 基本操作、字符串方法、格式化、编码等等功能。

1. 字符串基础

字符串是 Python 中的一种不可变数据类型,用于存储文本数据。

  • 创建字符串:可以使用单引号或双引号来创建字符串。
  • 访问字符:通过索引访问字符串中的字符,索引从 0 开始。
s = "Hello, World!"
print(s[0])  # 输出: H
print(s[7])  # 输出: W

在这里插入图片描述

2. 字符串方法

Python 字符串对象提供了许多有用的方法,用于字符串的查询、修改和处理。

字符串查询

  • str.find(sub):返回子字符串 sub 在字符串中首次出现的索引。
  • str.index(sub):类似于 find(),但如果子字符串不存在则抛出 ValueError
  • str.count(sub):返回子字符串在字符串中出现的次数。
  • str.startswith(prefix):检查字符串是否以指定的前缀开始。
  • str.endswith(suffix):检查字符串是否以指定的后缀结束。

s = "Hello, World!"print(s.find('o'))
print(s.index('o'))
print(s.count('o'))
print(s.startswith('o'))
print(s.endswith('o'))

在这里插入图片描述

字符串修改

  • str.upper():将字符串中的所有字符转换为大写。
  • str.lower():将字符串中的所有字符转换为小写。
  • str.strip():移除字符串两端的空白字符。
  • str.replace(old, new):替换字符串中的旧子字符串为新子字符串。
s = "Hello, World!"print(s.upper())
print(s.lower())
print(s.strip())
print(s.replace('o','K'))

在这里插入图片描述

字符串切片

  • str[start:end]:获取字符串从索引 startend-1 的子字符串。
  • str[start:]:获取字符串从索引 start 到末尾的子字符串。
  • str[:end]:获取字符串从开始到索引 end-1 的子字符串。
s = "Hello, World!"print(s[1:2])
print(s[1:])
print(s[:2])

在这里插入图片描述

3. 字符串格式化

Python 3 提供了多种字符串格式化的方法。

旧式格式化(% 操作符)

name = "张胜男"
age = 30
print("Hello, %s. You are %d years old." % (name, age))
# Hello, 张胜男. You are 30 years old.

str.format() 方法

name = "张胜男"
age = 30
print("Hello, {}. You are {} years old.".format(name, age))

f-string(Python 3.6+)

name = "张胜男"
age = 30
print(f"Hello, {name}. You are {age} years old.")

4. 字符串编码

字符串可以编码为字节序列,反之亦然。

  • str.encode(encoding='utf-8'):将字符串编码为字节序列。
  • bytes.decode(encoding='utf-8'):将字节序列解码为字符串。
s = "Hello, World!"
encoded = s.encode('utf-8')
print(encoded)  # 输出: b'Hello, World!'decoded = encoded.decode('utf-8')
print(decoded)  # 输出: Hello, World!

5. Unicode 和 ASCII

Python 3 默认使用 Unicode,可以处理多种语言的字符。

  • ord(char):获取单个字符的 Unicode 编码。
  • chr(i):将 Unicode 编码转换为对应的字符。
print(ord('A'))  # 输出: 65
print(chr(65))  # 输出: A

6. 正则表达式

Python 的 re 模块提供了正则表达式的支持,用于复杂的字符串匹配和处理。

import repattern = r"\d+"
result = re.findall(pattern, "有123个苹果和456个橙子")
print(result)  # 输出: ['123', '456']

7. 字符串比较

字符串比较是大小写敏感的。

s1 = "hello"
s2 = "Hello"
print(s1 == s2)  # 输出: False

8. 字符串连接

可以使用 + 操作符连接字符串。

s1 = "Hello, "
s2 = "World!"
s3 = s1 + s2
print(s3)  # 输出: Hello, World!

9. 字符串不可变性

字符串是不可变的数据类型,这意味着一旦创建就不能更改。

s = "Hello"
s[0] = "h"  # TypeError: 'str' object does not support item assignment

10. 字符串的内存视图

可以使用 bytesbytearray 来处理二进制数据。

b = bytes([72, 101, 108, 108, 111])  # 等价于 b'Hello'
ba = bytearray(b)
ba[0] = 104  # 修改第一个字符为 'h'
print(ba)  # 输出: bytearray(b'helli')

总结

Python 3 提供了非常丰富的字符串处理功能,从基本的字符串操作到复杂的字符串格式化和正则表达式处理。掌握这些字符串处理技巧可以极大地提高你的编程效率和灵活性。希望这个梳理能帮助你更好地理解和使用 Python 3 的字符串处理功能。如果你有任何问题或需要进一步的帮助,请随时联系我们。

相关文章:

  • ATF-541M4全解析(一)
  • 展馆导览系统架构解析,从需求分析到上线运维
  • json数据格式 继续学习
  • web学习笔记(八十三)git
  • C#基础——类、构造函数和静态成员
  • Java内存模型之JMM
  • 谷粒商城实战笔记-62-商品服务-API-品牌管理-OSS整合测试
  • 永劫无间手游攻略:玉玲珑怎么玩?云手机全自动操作!
  • kafka源码阅读-ReplicaStateMachine(副本状态机)解析
  • JupyterNotebook快捷键 自用
  • springboot整合pgsql
  • 回调函数简易笔记
  • 计科录取75人!常州大学计算机考研考情分析!
  • 数字货币交易接口实现(含源代码)
  • 大模型深度神经网络(Deep Neural Network, DNN)
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • cookie和session
  • CSS居中完全指南——构建CSS居中决策树
  • ES6简单总结(搭配简单的讲解和小案例)
  • javascript面向对象之创建对象
  • JS数组方法汇总
  • Python学习之路13-记分
  • 双管齐下,VMware的容器新战略
  • 算法---两个栈实现一个队列
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 线性表及其算法(java实现)
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • UI设计初学者应该如何入门?
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • # 数据结构
  • #、%和$符号在OGNL表达式中经常出现
  • #单片机(TB6600驱动42步进电机)
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (Matlab)使用竞争神经网络实现数据聚类
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (SpringBoot)第七章:SpringBoot日志文件
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (多级缓存)缓存同步
  • (力扣)1314.矩阵区域和
  • (四)activit5.23.0修复跟踪高亮显示BUG
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (五)Python 垃圾回收机制
  • (一)WLAN定义和基本架构转
  • (转)visual stdio 书签功能介绍
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • (转载)深入super,看Python如何解决钻石继承难题
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .Net - 类的介绍
  • .net core控制台应用程序初识
  • .NET HttpWebRequest、WebClient、HttpClient
  • .net 提取注释生成API文档 帮助文档