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

news2024/9/19 15:16:02

目录

    • 专栏列表
    • 前言
    • 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 re

pattern = 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 的字符串处理功能。如果你有任何问题或需要进一步的帮助,请随时联系我们。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1952215.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LongAlign:大模型长文本处理能力提升之道

人工智能咨询培训老师叶梓 转载标明出处 大模型(LLMs)在处理长文本时,需要在输入序列上进行指令微调(instruction finetuning),以确保它们能够有效地处理长文本。现有的方法主要集中在上下文扩展&#xff0…

ACC2.【C语言】经验积累 栈区简单剖析

int main() {int i0;int arr[10]{1,2,3,4,5,6,7,8,9,10};for (i0;i<12;i){arr[i]0;printf("A");}return 0; } 执行后无限打印A 在VS2022&#xff0c;X86,Debug环境下&#xff0c;用监视后&#xff0c;原因是arr[12]的地址与i的地址重合&#xff08;数组越界&…

c++语言学习注意事项

当学习C语言时&#xff0c;有几个重要的注意事项可以帮助初学者更有效地掌握这门强大的编程语言&#xff1a; 1. 理解基本概念和语法 C 是一门复杂且功能强大的编程语言&#xff0c;因此理解其基本概念和语法至关重要。初学者应该重点掌握以下几个方面&#xff1a; 基本语法和…

BIO示例代码

一个请求开一个线程 package org.example.demo;import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;/*** author hrui* …

2024年第四届网络通信与信息安全国际学术会议(ICNCIS 2024,8月23-25)

2024年第四届网络通信与信息安全国际学术会议&#xff08;ICNCIS2024&#xff09;将于2024年8月23-25日于杭州召开。 会议围绕网络通信在信息安全领域中的最新研究成果&#xff0c;为来自国内外高等院校、科学研究所、企事业单位的专家、教授、学者、工程师等提供一个分享专业经…

智能化车载视频监控技术的崭新发展与应用

随着国内4G网络的快速建设和发展&#xff0c;智能车载终端监控领域的高清化进程也日益加快。尽管传统的车载终端监控已经在视频录像、GPS定位等基本应用方面取得了一定的成果&#xff0c;但随着视频分析技术的不断进步&#xff0c;普通视频监控已经无法满足日益增长的车载监控新…

基于DMASM镜像的DMDSC共享存储集群部署

DMv8镜像模式共享存储集群部署 环境说明 操作系统&#xff1a;centos7.6 服务器&#xff1a;2台虚拟机 达梦数据库版本&#xff1a;达梦V8 安装前准备工作 参考文档《DM8共享存储集群》-第11、12章节 参考文档《DM8_Linux服务脚本使用手册》 1、系统环境(all nodes) 1…

Hive3:基本介绍

一、概述 Apache Hive是一款分布式SQL计算的工具&#xff0c; 其主要功能是&#xff1a; 将SQL语句翻译成MapReduce程序运行 Hive是单机工具&#xff0c;只需要部署在一台服务器即可。 Hive虽然是单机的&#xff0c;但是它可以提交分布式运行的MapReduce程序运行。 二、基本…

7月23日JavaSE学习笔记

异常&#xff1a; 程序中一些程序处理不了的特殊情况 异常类 Exception 继承自 Throwable 类&#xff08;可抛出的&#xff09; Throwable继承树 Error&#xff1a;错误/事故&#xff0c;Java程序无法处理&#xff0c;如 OOM内存溢出错误、内存泄漏...会导出程序崩溃 常见的…

C++客户端Qt开发——Qt窗口(对话框)

5.对话框 ①对话框介绍 对话框是GUI程序中不可或缺的组成部分。一些不适合在主窗口实现的功能组件可以设置在对话框中。对话框通常是一个顶层窗口&#xff0c;出现在程序最上层&#xff0c;用于实现短期任务或者简洁的用户交互。Qt常用的内置对话框有&#xff1a;QFiledialog…

【NLP自然语言处理】为什么说BERT是bidirectional

首先&#xff0c;来看一下Transformer架构图&#xff1a; 我们知道&#xff0c;Bert设计时主要采用的是Transformer编码器部分&#xff0c;要论述Bert为啥是双向的&#xff0c;我想从编码器和解码器的注意力机制来阐述。 在看这篇博客前&#xff0c;需要对Transformer有一定的…

如何录制电脑内部声音?全方位介绍电脑录音软件:8款在线录音!(2024重新整理)

如何录制电脑内部声音&#xff1f;不管是娱乐圈还是现实生活&#xff0c;【录音】这个功能的重要性不言而喻。而电脑录音已在影视配音、音视频剪辑、会议记录、在线教育等多个领域发光发热&#xff01; 本文将为您推荐8款电脑录音软件&#xff0c;并详细介绍电脑录音的多种方式…

【Windows和Linux校验文件MD5值(详细)】

1、 什么是MD5&#xff1f; 文件的MD5校验是一种常用的文件完整性验证方法。MD5&#xff08;Message Digest Algorithm 5&#xff09;是一种广泛应用的哈希算法&#xff0c;它能够将任意长度的数据转换为固定长度的哈希值。在文件校验中&#xff0c;MD5算法通过计算文件的哈希…

访问所有节点的最短路径

847. 访问所有节点的最短路径 存在一个由 n 个节点组成的无向连通图&#xff0c;图中的节点按从 0 到 n - 1 编号。 给你一个数组 graph 表示这个图。其中&#xff0c;graph[i] 是一个列表&#xff0c;由所有与节点 i 直接相连的节点组成。 返回能够访问所有节点的最短路径的…

【吊打面试官系列-Dubbo面试题】服务调用是阻塞的吗?

大家好&#xff0c;我是锋哥。今天分享关于 【服务调用是阻塞的吗&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 服务调用是阻塞的吗&#xff1f; 默认是阻塞的&#xff0c;可以异步调用&#xff0c;没有返回值的可以这么做。 Dubbo 是基于 NIO 的非阻塞实现…

渗透测试:筑牢网络安全的坚固防线

在当今这个互联网高度发达的时代&#xff0c;网络安全已成为维护社会稳定和经济发展的重要基石。随着互联网的普及&#xff0c;网络攻击手段日益复杂多变&#xff0c;各类安全威胁层出不穷。为了有效应对这些挑战&#xff0c;渗透测试作为一种重要的安全测试与评估方法&#xf…

QT自定义无边框窗口(可移动控制和窗口大小调整)

QT是一个功能强大的跨平台开发框架&#xff0c;它提供了丰富的界面设计工具和组件。在界面开发中&#xff0c;QT窗口自带的标题栏无法满足我们的需求。我们就需要自定义无边框窗口&#xff0c;包括自定义标题栏和窗口大小调整功能。本文将介绍如何在QT中实现这些功能。 一、简…

AI绘画入门实践 | Midjourney:使用 --chaos 给图像风格来点惊喜

在 Midjourney 中&#xff0c;--chaos 影响初始图像网格的多样性&#xff0c;指 MJ 每次出的4张图之间的差异性。 默认值为0&#xff0c;值越高&#xff0c;差异性越大。 使用格式&#xff1a;--chaos 0-100的整数值 使用演示 a lot of flowers --chaos 0 --v 6.0a lot of fl…

基于微信小程序+SpringBoot+Vue的垃圾分类系统(带1w+文档)

基于微信小程序SpringBootVue的垃圾分类系统(带1w文档) 基于微信小程序SpringBootVue的垃圾分类系统(带1w文档) 本垃圾分类小程序也是紧跟科学技术的发展&#xff0c;运用当今一流的软件技术实现软件系统的开发&#xff0c;让环保方面的信息完全通过管理系统实现科学化&#xf…

3.5 查找和排序算法

大纲 算法基础 常用的表示算法的方法 算法的复杂度 查找 顺序查找、二分查找 哈希查找 真题 排序 插入排序 希尔排序 简单选择排序 堆排序 冒泡排序 快速排序 归并排序 基数排序 排序算法总结 真题