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

目录

 专栏导读 

 一、 字符串常用操作

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.mfbz.cn/a/55152.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

mysql的json处理

写在前面 需要注意,5.7以上版本才支持,但如果是生产环境需要使用的话,尽量使用8.0版本,因为8.0版本对json处理做了比较大的性能优化。你你可以使用select version();来查看版本信息。 本文看下MySQL的json处理。在正式开始让我们先…

HarmonyOS 开发基础(四) 子父组件双向绑定

一、知识点在代码注释里 index.ets // 导出方式直接从文件夹 import MyInput from "../common/commons/myInput" Entry Component /* 组件可以基于struct实现,组件不能有继承关系,struct可以比class更加快速的创建和销毁。*/ struct Index {…

【hive】Install hive using mysql as hive metadata service

文章目录 一. Requirements二. Installing Hive from a Stable Release三. Running Hive四. Running Hive CLI五.Running HiveServer2 and Beeline1. 下载安装mysql2. 下载mysql驱动3. 配置hive-site.xml4. 初始化元数据库5. 通过beeline进行连接 一. Requirements Users are s…

BES 平台 SDK之LED的配置

本文章是基于BES2700 芯片,其他BESxxx 芯片可做参考,如有不当之处,欢迎评论区留言指出。仅供参考学习用! BES 平台 SDK之代码架构讲解二_谢文浩的博客-CSDN博客 关于SDK 系统框架简介可参考上一篇文章。链接如上所示&#xff01…

防火墙监控工具

防火墙监控是跟踪在高效防火墙性能中起着关键作用的重要防火墙指标,防火墙监控通常应包括: 防火墙日志监控防火墙规则监控防火墙配置监控防火墙警报监控 防火墙监控服务的一个重要方面是它应该是主动的。主动识别内部和外部安全威胁有助于在早期阶段识…

Devops系统中jira平台迁移

需求:把aws中的devops系统迁移到华为云中,其中主要是jira系统中的数据迁移,主要方法为在华为云中建立一套 与aws相同的devops平台,再把数据库和文件系统中的数据迁移,最后进行测试。 主要涉及到的服务集群CCE、数据库mysql、弹性文件服务SFS、数据复制DRS、弹性负载均衡ELB。 迁…

你知道HTTP与HTTPS有什么区别吗?

作者:Insist-- 个人主页:insist--个人主页 作者会持续更新网络知识和python基础知识,期待你的关注 目录 一、什么是HTTP? 二、什么是HTTPS? 三、HTTPS 的工作原理 1、客户端发起 HTTPS 请求 2、服务端的配置 3、…

2023年第四届“华数杯”数学建模思路 - 案例:异常检测

文章目录 赛题思路一、简介 -- 关于异常检测异常检测监督学习 二、异常检测算法2. 箱线图分析3. 基于距离/密度4. 基于划分思想 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 一、简介 – 关于异常检测 异常…

Arcgis 分区统计majority参数统计问题

利用Arcgis 进行分区统计时,需要统计不同矢量区域中栅格数据的众数(majority),出现无法统计majority参数问题解决 解决:利用copy raster工具,将原始栅格数据 64bit转为16bit

大数据课程E1——Flume的概述

文章作者邮箱:yugongshiyesina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解Ganglia的概念; ⚪ 了解Ganglia的拓扑结构和执行流程; ⚪ 掌握Ganglia的安装操作; 一、简介 1. 概述 1. Flume原本是由Cloude…

MySQL处理客户端请求

文章目录 一、连接管理二、解析与优化1、查询缓存2、语法解析3、查询优化 简单来说 MySQL 主要分为 Server 层和存储引擎层: Server 层:主要包括连接器、查询缓存、分析器、优化器、执行器等,所有跨存储引擎的功能都在这一层实现&#xff0c…

吃透《西瓜书》第四章 决策树定义与构造、ID3决策树、C4.5决策树、CART决策树

目录 一、基本概念 1.1 什么是信息熵? 1.2 决策树的定义与构造 二、决策树算法 2.1 ID3 决策树 2.2 C4.5 决策树 2.3 CART 决策树 一、基本概念 1.1 什么是信息熵? 信息熵: 熵是度量样本集合纯度最常用的一种指标,代表一个系统中蕴…

Android性能优化—ANR问题分析

一、ANR是什么? ANR(Application Not responding),是指应用程序未响应,Android系统对于一些事件需要在一定的时间范围内完成,如果超过预定时间能未能得到有效响应或者响应时间过长,都会造成ANR。可以简单的理解为应用…

想写几个上位机,是选择学c#还是 c++ qt呢?

C#基本也就上位机开发开发,另外做做日常用的小工具很方便。 结合PLC,以太网做上位机,这个基本上控制这块都比较有需求。 另外我们用C#也做一些工具的二次开发,感觉还行。 C用qt框架其实学习起来可能稍微复杂些,但是…

Vue引入

1. vue引入 第一种方法&#xff1a;在线引入 <script src"https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> 第二种方法&#xff1a;本地引入 2. 语法学习 el用于绑定id&#xff0c;data用于定义数据如下例题 <!DOCTYPE html> <html…

springboot基础--springboot配置说明

一、springboot中的配置文件 1、springboot为什么还需要用配置文件 方便我们修改springboot默认的配置;我们有其他的信息需要保存在配置文件中; 2、springboot中的配置文件有哪些 properties配置文件;yml配置文件; 3、springboot中的配置文件使用中注意事项 文件放入在sr…

数据中台系列2:rabbitMQ 安装使用之 window 篇

RabbitMQ 是一个开源的消息队列系统&#xff0c;是高级消息队列协议&#xff08;AMQP&#xff09;的标准实现&#xff0c;用 erlang 语言开发。 因此安装 RabbitMQ 之前要先安装好 erlang。 1、安装 erlang 到 这里 下载本机能运行的最新版 erlang 安装包。如果本机没有装过 …

eclipse版本与jdk版本对应关系

官网&#xff1a;Eclipse/Installation - Eclipsepedia eclipse历史版本&#xff08;2007-&#xff09;&#xff1a;Older Versions Of Eclipse - Eclipsepedia Eclipse Packaging Project (EPP) Releases | Eclipse Packages

行云管家荣获CFS第十二届财经峰会 “2023产品科技创新奖”

7月26日至27日&#xff0c;CFS第十二届财经峰会暨2023可持续商业大会在京盛大召开。峰会主题为“激活高质量发展澎湃活力”&#xff0c;超1000位政商领袖、专家学者、企业及媒体代表出席了本次盛会&#xff0c;共同分享新技术新产品新趋势、研判全球新挑战与新变局下企业的机遇…

K线与形态基础知识

一、单根K线的涨跌形态 实体&#xff1a;代表当日的股价涨跌幅大小&#xff0c;即波动大小&#xff0c;实体大&#xff0c;波动大。上影线&#xff1a;从实体向上延伸的即为上影线&#xff0c;表示股价上涨的轨迹&#xff0c;也是多方拉升意图的最佳表现&#xff0c;但是最终实…
最新文章