【Python】字符串 - 集大成篇
目录
1. 不同语言的字符串比较
1.1 C 语言
1.2 C ++ 语言
1.2.1 C 风格字符串
1.2.2 C ++ 风格字符串
1.3 JAVA
1.4 Python
2. Python 字符串
2.1 方法
2.2.1 title ()
2.2.2 lower ()
2.2.3 upper ()
2.2.4 rstrip ()
2.2.5 lstrip ()
2.2.6 strip ()
2.2.7 center()
2.2.8 split()
2.2.9 replace()
2.2.10 join()
2.2.11 find()
3. f 字符串
4. 总结
1. 不同语言的字符串比较
程序 收集并定义 某种数据,然后使用他们来做一些有意义的事情。有鉴于此,对数据进行分类大有裨益。
有一种数据,叫做字符串型数据。字符串是字符的集合,不同的编程语言对于字符串的处理并不相同。在 C 语言中,一个字符串指的是 由字符构成的数组;在 C++ 中,字符串既可以指 由字符构成的数组,也可以指一种名叫 string 的数据类型;在 Java 中,字符串是一种名叫 string 的数据类型;同样的,在 Python 中,字符串也是一种 string 数据类型。
接下来分别比较,在不同编程语言中是怎样处理字符串的。
1.1 C 语言
char 变量名[ ] = " 字符串值 "
char arr1[] = "Hello, C !!";printf("%s\n", arr1);
1.2 C ++ 语言
1.2.1 C 风格字符串
一种由字符构成的数组
char 变量名[ ] = " 字符串值 "
char arr[] = " Hello C++ ! ! ";cout << arr << endl;
1.2.2 C ++ 风格字符串
一种数据类型
string 变量名 = " 字符串值"
string arr = " Hello C++ ! ! ";cout << arr << endl;
1.3 JAVA
String 变量名 = " 字符串值 "
String arr = "Hello Java ! !";System.out.println(arr);
1.4 Python
变量名 = " 字符串值 "
name = "aperion"
注:Python 与众不同的一点在于,不用人为的定义变量的数据类型,这些都是由 Python 自动完成。
2. Python 字符串
在 Python 中,字符串也是一种 string 数据类型,用引号括起的都是字符串,其中的引号可以是 单引号,也可以是 双引号。在其他语言中,单引号括起的是字符,双引号阔起的是字符串,这一点区别于 Python 语言。
2.1 方法
字符串的方法太多了,这里只介绍一些最有用的。
2.2.1 title ()
作用:将单词首字母改为大写
name = "lebron james"print(name.title())
2.2.2 lower ()
作用:将单词全部小写
name = "Lebron James"print(name.lower())
2.2.3 upper ()
作用:将单词全部大写
name = "Lebron James"print(name.upper())
2.2.4 rstrip ()
作用:删除字符串尾部空白
在程序中,额外的空白令人迷惑。对 程序员 说,'Python' 和 'Python ' 看起来几乎没有什么两样,但对 程序 来说,它们却是两个不同的字符串。Python 能够发现 'Python ' 中额外的空白,并认为它意义重大。
空白很重要,因为我们经常需要比较两个字符串是否相同。例如:在用户登录网站时,检查其用户名,看看用户有没有误输入空白,如果有,就删除其空白。
language = "Python "print(language)language = language.rstrip()print(language)
- 上图终端中的执行结果看起来一样,实则不一样。打印的第一个 Python 有空格,因为 Python 后面再无字符,所以空格的显现不明显。打印的第二个 Python 没有空格,因为第五行代码的执行,删除了 Python 后面的空格。
2.2.5 lstrip ()
作用:删除字符串开头空白
language = " Python"print(language)language = language.lstrip()print(language)
2.2.6 strip ()
作用:删除字符串两边的空格 (但不包括中间的空白)
text = ' Hello Python !! 'print(text)new_text = text.strip()print(new_text)
2.2.7 center()
作用:通过在两边添加填充字符串(默认为空格)让字符串居中
在 Python 中,center() 方法是一个内置的字符串方法,它允许我们把一个字符串用指定的宽度让字符串居中。center() 方法 返回一个新的字符串,这个新的字符串被指定的字符所填充(默认为空格),同时它也被指定的宽度使得字符串居中。center() 方法的语法如下:
string.center( width [, fillchar] )
语法中的 string 是要居中的字符串,width 得到的是居中字符串的宽度,fillchar 是要使用可选填充的字符。如果未指定 fillchar ,默认情况下使用 空格字符。
# 原始字符串
text = 'Hello Python !'# 居中字符串
centered_text = text.center(20,'-')print(text)print(centered_text)
- 在本例中,原始字符串“Hello,Python!”在 20个字符的宽度内居中,两边用破折号(-)填充。
2.2.8 split()
作用:将字符串拆分为列表
① 分隔符 '+'
text = '1+2+3+4+5+6'new_text = text.split('+')
print(new_text)
② 分隔符 '/'
text = '/usr/bin/env'new_text = text.split('/')
print(new_text)
③ 没有指定分隔符
text = 'usring the default'new_text = text.split()
print(new_text)
- 如果没有指定参数,将默认在单个或多个连续的空白字符(空格、制表符、换行符等)处进行拆分。
2.2.9 replace()
作用:将指定字符子串都替换为另一个字符串,并返回替换后的结果,即查找并替换
text = 'This is C programming langugaes'print(text)new_text = text.replace('C','Python')
print(new_text)
2.2.10 join()
作用:用于合并列表的元素
seq = ['1','2','3','4','5']sep = '+'new_seq = sep.join(seq)
print(new_seq)
dirs = '','usr','bin','env'print('/'.join(dirs))
dirs = '','usr','bin','env'print('C:'+'\\'.join(dirs))
2.2.11 find()
作用:在字符串中查找子串,如果找到,就返回子串的 第一个字符的索引,否则返回 -1。
text = 'With a moo-moo here,and a moo-moo there'print(text.find('moo'))
title = "Monty Python's Flying Circus"print(title.find('Monty'))
print(title.find('Python'))
print(title.find('Flying'))
print(title.find('Zirquss'))
还可指定搜索的起点和终点(它们都是可选的)
subject = '$$$ Get rich now!!! $$$'print(subject.find('$$$'))# 只指定起点
print(subject.find('$$$',1))print(subject.find('!!!'))# 同时指定起点和终点
print(subject.find('!!!',0,16))
3. f 字符串
f 字符串在 python 3.6 版本中引入,该方法使得在字符串中使用变量值简单许多。如果你使用的是 python 3.5 或更早的版本,需要使用 format() 方法,而非这种 f 语法。
作用:在字符串中使用变量
要在字符串中插入变量的值,可在前引号前加上字母 f ,再将要插入的变量放在花括号内。这样,当 Python 显示字符串时,将把每个变量都替换为其值。所以这种字符串名为 f 字符串,f 是 format(设置格式)的简写。
first_name = 'ada'last_name = 'lovelace'full_name = f'{first_name} {last_name}'print(f'Hello, {full_name.title()}')
4. 总结
这篇文章主要讲解了 Python 字符串和其他语言字符串的比较,以及 Python 字符串常用的方法等,如果想要了解更多的 Python 字符串方法,可以参官方文档。这期的分享总结就到这里了,如果有疑问的小伙伴,我们评论区交流嗷~,笔者必回,我们下期再见啦!!
相关文章:

【Python】字符串 - 集大成篇
目录 1. 不同语言的字符串比较 1.1 C 语言 1.2 C 语言 1.2.1 C 风格字符串 1.2.2 C 风格字符串 1.3 JAVA 1.4 Python 2. Python 字符串 2.1 方法 2.2.1 title () 2.2.2 lower () 2.2.3 upper () 2.2.4 rstrip () 2.2.5 lstrip …...

IDEA: 如何导入项目模块 以及 将 Java程序打包 JAR 详细步骤
IDEA: 如何导入项目模块 以及 将 Java程序打包 JAR 详细步骤 、 文章目录IDEA: 如何导入项目模块 以及 将 Java程序打包 JAR 详细步骤IDEA 导入项目模块 Module一. 创建一个空项目二. 导入 Module三. 将 Module 与 当前项目关联上IDEA 将 Java程序打包成…...

算法的效率——时间复杂度和空间复杂度
文章目录1. 算法效率1.1 什么是算法1.2 算法的好坏2. 时间复杂度2.1 什么是时间复杂度2.2 时间复杂度的计算方法2.3 大O的渐进表示法2.4 常见时间复杂度计算举例3. 空间复杂度4. 常见复杂度对比1. 算法效率 1.1 什么是算法 目前普遍认可对算法的定义是:算法是解决…...

2021年 第12届 蓝桥杯 Java B组 省赛真题详解及小结【第1场省赛 2021.04.18】
总分:5 一、试题A:ASC 得分:5分 本题总分:5 分 【问题描述】 已知大写字母 A 的 ASCII 码为 65,请问大写字母 L 的 ASCII 码是多少? 【答案提交】 这是一道结果填空的题,你只需要算出结果后提…...

透过等待看数据库
等待分类与解决基本流程步骤1.定位问题系统等待往往能直观的反映出系统问题。通过一些常见的等待类型,同样可以找到系统瓶颈,结合性能计数器往往定位更准确。如:系统中存在大量IO类等待,那么可能表示你的磁盘或内存是语句运行缓慢…...

中科亿海微FPGA
国产FPGA中,紫光、安路、高云称得上是三小龙,其他的半斤八两,中科亿海微也算是其中之一。 其产品为亿海神针系列,如下: 可见其最小规模也有9.2KLUT,最大竟有136K之多了,对比其他国产࿰…...

【链表OJ题(三)】链表中倒数第k个结点
📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:数据结构 🎯长路漫漫浩浩,万事皆有期待 文章目录链表OJ题(三)1. 链表…...

华为防火墙的学习
防火墙 - 含义和定义 什么是防火墙? 防火墙的工作原理 防火墙的区域: 包过滤防火墙----访问控制列表技术---三层技术 代理防火墙----中间人技术---应用层 状态防火墙---会话追踪技术---三层、四层 UTM---深度包检查技术----应用层 下一代防火墙 防火墙的…...

SPI 接口OLED 模块 - 兼容5V 和3.3V 电平
PCB 布局参考了老王0.8元128x32OLED显示屏转接板,开源项目地址:老王0.8元128x32OLED。 老王家买的屏幕放了快一年了,终于还是决定整个单独的模块,之前一直打算集成到开发板上的,不太灵活。相比那个转接板,主…...
css布局和定位
在Web开发中,CSS布局和定位是非常重要的技能。在这篇博客中,我们将深入探讨CSS布局和定位的概念、基本技术和最佳实践。 **CSS布局基础** ├── 盒模型 │ ├── 内边距 │ │ ├── padding │ │ ├── padding-top │ │ ├── p…...

python -- 批量读取多个文件,并将每个文件中相同变量累加
python – 批量读取多个文件,并将每个文件中相同变量累加 情况描述 现有多个nc文件,位于同一个文件夹中,如下所示每个文件中都有相同的变量,想要读取每个文件中的变量然后将其加起来意思就是说: 文件1中的变量文件2中…...

低代码开发流程是怎么样的?
低代码开发流程是怎么样的?现在很多文章都在下功夫宣传what(低代码是什么)、why(为什么要用低代码),但是很少有文章能够系统讨论how(怎么用低代码)的问题。 所以我花3天的时间准备了…...
任何时候都不要在 for 循环中删除 List 集合元素!!!
首先说结论:无论什么场景,都不要对List使用for循环的同时,删除List集合元素,因为这么做就是不对的。 阿里开发手册也明确说明禁止使用foreach删除、增加List元素。 正确删除元素的方式是使用迭代器(Iteratorÿ…...
koa+Vite+vue3+ts+pinia构建项目
一、 初始化构建项目 npm create vite myProject -- --template vue-ts 注:Vite 需要 Node.js 版本 14.18,16。然而,有些模板需要依赖更高的 Node 版本才能正常运行,当你的包管理器发出警告时,请注意升级你的 Node 版…...

k8s-yaml文件
文章目录一、K8S支持的文件格式1、yaml和json的主要区别2、YAML语言格式二、YAML1、查看 API 资源版本标签2、编写资源配置清单2.1 编写 nginx-test.yaml 资源配置清单2.2 创建资源对象2.3 查看创建的pod资源3、创建service服务对外提供访问并测试3.1 编写nginx-svc-test.yaml文…...

存储引擎
目录 ❤ MySQL存储引擎 什么是存储引擎? MySQL支持哪个存储引擎? ❤ 各种存储引擎的特性 概述 各种存储引擎的特性 各种搜索引擎介绍 ❤ 常用存储引擎及适用场景 ❤ 存储引擎在mysql中的使用 存储引擎相关sql语句 指定存储引擎建表 在建表时指定 在配置文件中…...

Go中 channel的使用
文章目录背景channel 简介使用说明声明发送和接受数据关闭channel使用示例背景 使用 sync 包和 context 包的工具可以实现多个协程之间互相协作, 但是没有一种很好的方式解决多个协程之间通信的问题. golang 作者 Rob Pike 说过一句话,不要通过共享内存来通信&…...

【C++】string OJ练习
文章目录1. 仅仅反转字母思路分析代码实现2. 字符串中的第一个唯一字符题目分析代码实现3. 《剑指offer》——替换空格解法一:寻找替换思路分析代码实现优化解法二:空间换时间思路分析代码实现4.字符串最后一个单词的长度思路分析代码实现5. 字符串相加思…...

进程间通信IPC
进程间通信IPC (InterProcess Communication) 一、进程间通信的概念 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据…...

操作系统-页面淘汰算法(下)-软件设计(二十六)
操作系统-PV操作(上)-软件设计(二十五)https://blog.csdn.net/ke1ying/article/details/129476031 存储管理-分区存储组织 问:计算机系统内存大小为128k,当前系统分配情况如图,那么作业4再次申…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...

苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...