【100天精通python】Day22:字符串常用操作大全

news2024/9/21 14:42:58

目录

 专栏导读 

 一、 字符串常用操作

1 拼接字符串

2 计算字符串长度

3 截取字符串

4 分割合并字符串

5 检索字符串

6 字母的大小写转换

7 去除字符串的空格和特殊字符

8 格式化字符串

 二 、字符串编码转换

2.1 使用encode()方法编码

2.2 使用decoder()方法编码


 专栏导读 

专栏订阅地址:https://blog.csdn.net/qq_35831906/category_12375510.html


 一、 字符串常用操作

1 拼接字符串

使用 “ +”运算符将多个字符串拼接在一起。

示例:

string1 = "Hello"
string2 = "World"
result = string1 + " " + string2
print(result)  # Output: "Hello World"

2 计算字符串长度

可以使用len()函数来计算字符串的长度,即其中字符的个数。

string = "Hello, Python!"
length = len(string)
print(length)  # Output: 15

3 截取字符串

使用切片操作截取字符串的一部分。

string = "Hello, Python!"
substring = string[0:5]
print(substring)  # Output: "Hello"

4 分割合并字符串

使用split()方法可以将一个字符串按照指定的分隔符分割成多个部分。使用join()方法可以将多个字符串合并成一个。

string = "apple,orange,banana"
fruits_list = string.split(",")
print(fruits_list)  # Output: ['apple', 'orange', 'banana']

fruits = "-".join(fruits_list)
print(fruits)  # Output: "apple-orange-banana"

5 检索字符串

使用find()方法或index()方法来检索子字符串在原字符串中的位置。

find()方法会返回第一次出现的位置,如果没有找到则返回-1;而index()方法会在找不到子字符串时抛出异常。

string = "Hello, Python!"
position1 = string.find("Python")
print(position1)  # Output: 7

position2 = string.index("World")  # Raises ValueError: substring not found

6 字母的大小写转换

 Python中有几个方法可以实现字母的大小写转换。upper()方法将所有字母转换为大写,lower()方法将所有字母转换为小写,capitalize()方法将首字母转换为大写。

string = "Hello, Python!"
upper_string = string.upper()
lower_string = string.lower()
capitalized_string = string.capitalize()

print(upper_string)  # Output: "HELLO, PYTHON!"
print(lower_string)  # Output: "hello, python!"
print(capitalized_string)  # Output: "Hello, python!"

7 去除字符串的空格和特殊字符

        可以使用strip()方法去除字符串两端的空格(包括换行符等空白字符)。

        如果想去除指定字符,可以使用strip()方法的参数指定要去除的字符。

string = "   Hello, Python!   "
trimmed_string = string.strip()
print(trimmed_string)  # Output: "Hello, Python!"

string_with_special_chars = "!@#$Hello, Python!%^&*"
cleaned_string = string_with_special_chars.strip("!@#$%^&*") #去除指定字符
print(cleaned_string)  # Output: "Hello, Python!"

8 格式化字符串

        在Python中,你可以使用多种方式来格式化字符串。其中一种常用的方式是使用format()方法,它允许将变量的值插入到字符串中的占位符位置。

name = "Alice"
age = 30

# 使用位置参数插入
formatted_string1 = "My name is {} and I am {} years old.".format(name, age)

# 使用关键字参数插入
formatted_string2 = "My name is {n} and I am {a} years old.".format(n=name, a=age)

print(formatted_string1)  # Output: "My name is Alice and I am 30 years old."
print(formatted_string2)  # Output: "My name is Alice and I am 30 years old."

此外,还有一种更简洁的方式是使用f-string(格式化字符串字面值)。

示例:

name = "Alice"
age = 30

# 使用f-string
formatted_string = f"My name is {name} and I am {age} years old."

print(formatted_string)  # Output: "My name is Alice and I am 30 years old."

 二 、字符串编码转换

        在Python中,字符串编码转换涉及将字符串从一种字符编码格式转换为另一种字符编码格式。常见的字符编码格式包括UTF-8、ASCII、ISO-8859-1等。

2.1 使用encode()方法编码

        在Python中,字符串对象有一个encode()方法,可以将字符串转换为指定的字符编码格式。该方法返回一个字节对象(bytes类型)。

original_string = "Hello, 你好!"

# 将字符串编码为UTF-8格式
encoded_bytes = original_string.encode('utf-8')
print(encoded_bytes)  # Output: b'Hello, \xe4\xbd\xa0\xe5\xa5\xbd!'

# 将字符串编码为ASCII格式
encoded_bytes_ascii = original_string.encode('ascii', errors='ignore')
print(encoded_bytes_ascii)  # Output: b'Hello, !'

2.2 使用decoder()方法编码

        对于已经编码为字节对象(bytes类型)的字符串,我们可以使用decode()方法将其解码为指定的字符编码格式。

encoded_bytes = b'Hello, \xe4\xbd\xa0\xe5\xa5\xbd!'

# 将字节对象解码为UTF-8格式
decoded_string = encoded_bytes.decode('utf-8')
print(decoded_string)  # Output: "Hello, 你好!"

# 将字节对象解码为ASCII格式
decoded_string_ascii = encoded_bytes.decode('ascii', errors='ignore')
print(decoded_string_ascii)  # Output: "Hello, !"

         需要注意的是,在进行编码和解码时,要确保目标编码格式能够表示原始字符串中的所有字符,否则会出现异常。

        在使用encode()decode()方法时,可以指定一个errors参数来处理编码和解码过程中的错误。常见的errors参数值有:

  • 'strict'(默认值):如果出现非法字符,抛出UnicodeEncodeError(编码)或UnicodeDecodeError(解码)异常。
  • 'ignore':忽略非法字符,直接忽略它们。
  • 'replace':用Unicode Replacement Character(U+FFFD)替代非法字符。
  • 'xmlcharrefreplace':用XML字符引用替代非法字符。

要确保正确地处理不同编码之间的转换,需要了解原始字符串的编码格式以及目标编码格式,并根据需要选择合适的转换方式。通常情况下,推荐使用UTF-8编码,因为它能够表示几乎所有的字符,而且在多平台和多语言环境中广泛使用。


下一篇介绍正则表达式

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

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

相关文章

深度学习笔记-暂退法(Drop out)

背景 在机器学习的模型中,如果模型的参数太多,而训练样本又太少,训练出来的模型很容易产生过拟合的现象。在训练神经网络的时候经常会遇到过拟合的问题,过拟合具体表现在:模型在训练数据上损失函数较小,预…

Grandle安装配置(8.2.1)-windows环境

一、官网地址 https://gradle.org/releases/ 下载链接: https://downloads.gradle.org/distributions/gradle-8.2.1-bin.zip 下载后解压到指定文件夹,实例安装目录为: D:\ProgramFiles\gradle-8.2.1 二、配置环境变量 示例中配置的目录为&#xff1a…

二十一章:PUZZLE-CAM:通过匹配局部和全局特征来改进定位

0.摘要 弱监督语义分割(WSSS)被引入来缩小从像素级监督到图像级监督的语义分割性能差距。大多数先进的方法是基于类激活图(CAM)来生成伪标签以训练分割网络。WSSS的主要局限性在于从使用图像分类器的CAM生成伪标签的过程主要集中在…

【测试设计】基于正交法的测试用例设计工具--PICT

目录 前言 下载安装 用例生成 使用示例 具体操作: 资料获取方法 前言 我们都知道成对组合覆盖是一种非常有效的测试用例设计方法,但是实际工作过程中当成对组合量太大,我们往往很难做到有效的用例覆盖。 PICT是微软公司出品的一款成对…

spark-sql数据重复之File Output Committer问题

前言 我们先来回顾下之前介绍过的三种Committer:FileOutputCommitter V1、FileOutputCommitter V2、S3A Committer,其基本代表了整体的演进趋势。 核心代码讲解详细参照:Spark CommitCoordinator 保证数据一致性 OutputCommitter commitTask…

集群部署dolphinscheduler踩坑

本文主要总结一下最新版dolphinscheduler3.1.5的安装过程中遇到的坑。 dolphinscheduler启动报错 Exception in thread "Master-Server" org.springframework.beans.factory.BeanCreationException: Error creating bean with name masterServer: Invocation of in…

先进先出法与加权平均法的比较

加权平均法 加权平均的成本核算方法在计算销货成本和期末库存价值时使用每个库存物料的平均成本。企业将使用以下公式计算每个库存单位(在特定会计期间内)的平均成本: 平均库存成本 (所有采购商品的总成本)/&#xff…

Matlab Optimization Toolbox中的遗传算法工具包(GA)

matlab optimization 中使用了GA求解器 默认的是小于等于 找到GA 工具包 找到 APP选择 Optimization Tool 选择Solver ga - Genetic Algorithm 应用GA solver 定义适应度函数(Fitness function)与问题约束(Constraints) example one 优化函数 sin(x) 2 * cos(x)极其重要的…

【原创】IPTVC2实现方案(文末有demo)

前言: 名词解释: IPTVC2, 全称: 央视国际节目定价发布接口规范,标准版本当前最新为2.7.12 附赠资源链接,侵删:规范 规范中提供的样例,实现基于axis1.4(2006的时代宠物) 基于axis1版本的实现参考: Spring boot 集成Axis1.4 ,使用wsdd文件发…

C语言每日一题:12《数据结构》相交链表。

题目: 题目链接 思路一: 1.如果最后一个节点相同说明一定有交点。 2.使用两个循环获取一下长度,同时可以获取到尾节点。 3。注意初始化lenA和lenB为1,判断下一个节点是空是可以保留尾节点的。长度会少一个,尾节点没有…

【C++修炼之路】多态

👑作者主页:安 度 因 🏠学习社区:StackFrame 📖专栏链接:C修炼之路 文章目录 一、概念二、定义和实现1、虚函数2、虚函数的重写3、多态的构成条件4、重写的例外5、C11 override 和 final6、不能被继承的类7…

RxJava异步编程初探

RxJava 其实就是提供一套异步编程的 API,这套 API 是基于观察者模式的,而且是链式调用的,所以使用 RxJava 编写的代码的逻辑会非常简洁。 RxJava 有以下三个基本的元素: 被观察者(Observable)观察者&…

prometheus+grafana进行服务器资源监控

在性能测试中,服务器资源是值得关注一项内容,目前,市面上已经有很多的服务器资 源监控方法和各种不同的监控工具,方便在各个项目中使用。 但是,在性能测试中,究竟哪些指标值得被关注呢? 监控有…

SqlSugar、Freesql、Dos.ORM、EF、四种ORM框架的对比

SqlSugar、Freesql、Dos.ORM、EF、四种ORM框架的对比 一、默认情况下,导航属性是延迟查询; 答:ORM(Object-relational mapping)即对象关系映射,是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。也就是说,ORM是通过使用描述对象和数据库之间映射的元数据…

线程状态

从卖包子的案例学习进程间的通信 public class Test {public static void main(String[] args) {Object objnew Object();Thread th1new Thread(){Overridepublic void run() {synchronized (obj){System.out.println("来三个包子!");try {obj.wait(); /…

IDEA删除本地git仓库、创建本地git仓库、关联其他仓库并上传

IDEA删除本地git仓库、创建本地git仓库、关联其他仓库并上传 删除本地Git仓库 创建本地Git仓库 关联其他仓库并上传 要在IntelliJ IDEA中删除本地Git仓库并创建新的本地Git仓库,以及关联其他仓库并上传,请按照以下步骤进行操作: 删除本地G…

【笔记】数据结构与算法 python-03-列表查找

列表查找 在一个数据结构中,通过一定的方法找出与给定关键字相同的数据元素的过程。 列表查找(线性表查找):从列表(一种线性数据结构,元素按照一定的顺序存储,每个元素都有一个唯一的位置索引…

网络出口技术中的单一出口网络结构,你会用吗?

我们在设计一个园区网络的时候,园区网络的出口需要和运营商的网络进行对接,从而提供internet服务。 在和运营商网络对接的时候,一般采用如下3终方式: 单一出口网络结构 1、网络拓扑 终端用户接入到交换机,交换机直…

干货 ,ChatGPT 4.0插件Review Reader,秒杀一切选品神器

Hi! 大家好,我是专注于AI项目实战的赤辰,今天继续跟大家介绍另外一款GPT4.0插件Review Reader(评论阅读器)。 做电商领域的小伙伴们,都知道选品分析至关重要,可以说选品决定成败,它直接关系到产…

MySQL用通配符过滤数据

简单的不使用通配符过滤数据的方式使用的值都是已知的,但是当搜索产品名中包含ashui的所有产品时,用简单的比较操作符肯定不行,必须使用通配符。利用通配符可以创建比较特定数据的搜索模式。 通配符:用来匹配值的一部分的特殊字符…