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

【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())

0cb721fe86bc4502bc85746a8c67b866.jpeg

2.2.2   lower () 

作用:将单词全部小写 

name = "Lebron James"print(name.lower())

c71f10e453a4442b930ec2cef0e824db.jpeg

2.2.3   upper ()

作用:将单词全部大写 

name = "Lebron James"print(name.upper())

86bab75844e3461a925f203a4626502f.jpeg

2.2.4   rstrip () 

作用:删除字符串尾部空白

        在程序中,额外的空白令人迷惑。对 程序员 说,'Python' 和 'Python ' 看起来几乎没有什么两样,但对 程序 来说,它们却是两个不同的字符串。Python 能够发现 'Python ' 中额外的空白,并认为它意义重大。 

        空白很重要,因为我们经常需要比较两个字符串是否相同。例如:在用户登录网站时,检查其用户名,看看用户有没有误输入空白,如果有,就删除其空白。

language = "Python "print(language)language = language.rstrip()print(language)

98c18da0f7f7421e804ceb6f1d7b2724.jpeg

  • 上图终端中的执行结果看起来一样,实则不一样。打印的第一个 Python 有空格,因为 Python 后面再无字符,所以空格的显现不明显。打印的第二个 Python 没有空格,因为第五行代码的执行,删除了 Python 后面的空格。

2.2.5   lstrip ()

作用:删除字符串开头空白 

language = " Python"print(language)language = language.lstrip()print(language)

e42915d541524abe9d2b8f34ff0c2eea.jpeg

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&#xff1a; 如何导入项目模块 以及 将 Java程序打包 JAR 详细步骤 、 文章目录IDEA&#xff1a; 如何导入项目模块 以及 将 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 什么是算法 目前普遍认可对算法的定义是&#xff1a;算法是解决…...

2021年 第12届 蓝桥杯 Java B组 省赛真题详解及小结【第1场省赛 2021.04.18】

总分&#xff1a;5 一、试题A&#xff1a;ASC 得分&#xff1a;5分 本题总分&#xff1a;5 分 【问题描述】 已知大写字母 A 的 ASCII 码为 65&#xff0c;请问大写字母 L 的 ASCII 码是多少&#xff1f; 【答案提交】 这是一道结果填空的题&#xff0c;你只需要算出结果后提…...

透过等待看数据库

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

中科亿海微FPGA

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

【链表OJ题(三)】链表中倒数第k个结点

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;数据结构 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录链表OJ题(三)1. 链表…...

华为防火墙的学习

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

SPI 接口OLED 模块 - 兼容5V 和3.3V 电平

PCB 布局参考了老王0.8元128x32OLED显示屏转接板&#xff0c;开源项目地址&#xff1a;老王0.8元128x32OLED。 老王家买的屏幕放了快一年了&#xff0c;终于还是决定整个单独的模块&#xff0c;之前一直打算集成到开发板上的&#xff0c;不太灵活。相比那个转接板&#xff0c;主…...

css布局和定位

在Web开发中&#xff0c;CSS布局和定位是非常重要的技能。在这篇博客中&#xff0c;我们将深入探讨CSS布局和定位的概念、基本技术和最佳实践。 **CSS布局基础** ├── 盒模型 │ ├── 内边距 │ │ ├── padding │ │ ├── padding-top │ │ ├── p…...

python -- 批量读取多个文件,并将每个文件中相同变量累加

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

低代码开发流程是怎么样的?

低代码开发流程是怎么样的&#xff1f;现在很多文章都在下功夫宣传what&#xff08;低代码是什么&#xff09;、why&#xff08;为什么要用低代码&#xff09;&#xff0c;但是很少有文章能够系统讨论how&#xff08;怎么用低代码&#xff09;的问题。 所以我花3天的时间准备了…...

任何时候都不要在 for 循环中删除 List 集合元素!!!

首先说结论&#xff1a;无论什么场景&#xff0c;都不要对List使用for循环的同时&#xff0c;删除List集合元素&#xff0c;因为这么做就是不对的。 阿里开发手册也明确说明禁止使用foreach删除、增加List元素。 正确删除元素的方式是使用迭代器&#xff08;Iterator&#xff…...

koa+Vite+vue3+ts+pinia构建项目

一、 初始化构建项目 npm create vite myProject -- --template vue-ts 注&#xff1a;Vite 需要 Node.js 版本 14.18&#xff0c;16。然而&#xff0c;有些模板需要依赖更高的 Node 版本才能正常运行&#xff0c;当你的包管理器发出警告时&#xff0c;请注意升级你的 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 说过一句话&#xff0c;不要通过共享内存来通信&…...

【C++】string OJ练习

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

进程间通信IPC

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

操作系统-页面淘汰算法(下)-软件设计(二十六)

操作系统-PV操作&#xff08;上&#xff09;-软件设计&#xff08;二十五&#xff09;https://blog.csdn.net/ke1ying/article/details/129476031 存储管理-分区存储组织 问&#xff1a;计算机系统内存大小为128k&#xff0c;当前系统分配情况如图&#xff0c;那么作业4再次申…...

23种设计模式-责任链模式(Android开发实际应用场景介绍)

什么是责任链模式 责任链模式是一种行为型设计模式&#xff0c;它的核心思想是将请求从一系列处理者中传递&#xff0c;直到其中一个处理者能够处理它为止。在这个过程中&#xff0c;请求可以被任何一个处理者处理&#xff0c;也可以被拒绝&#xff0c;直到有一个处理者能够处…...

Socket+Select+Epoll笔记

讲到epoll&#xff0c;就必须了解Socket&#xff0c;上篇博客写了Socket的基本使用方法&#xff0c;步骤主要为创建一个socketsocket是进程之间通信的&#xff0c;那么进程通信如何找到这个socket呢&#xff1f;当然是端口号&#xff0c;所以socket就要和端口号进行绑定&#x…...

git查看最近修改的文件

git log --name-status 每次修改的文件列表, 显示状态 git log --name-only 每次修改的文件列表 git log --stat 每次修改的文件列表, 及文件修改的统计 git whatchanged 每次修改的文件列表 git whatchanged --stat 每次修改的文件列表, 及文件修改的统计 git show 显示最…...

【算法基础(四)】堆排序(二)

堆排序&#xff08;二&#xff09; 把数组从零开始连续的一段 完全二叉树 size i 左 son 2*11 i 右 son 2*12 父 (i-1) / 2 堆是完全二叉树&#xff0c;分为大根堆和小根堆 在完全二叉树里&#xff0c;每一棵子数最大的值是头节点的值&#xff0c;就是大根堆 同理&…...

C++类型转换

C语言的转换是在变量前加类型名进行转换的&#xff0c;比如double pi 3.14;int a (int) pi;对于指针也是如此double* dptr &pi;int* iptr (int*)dptr;虽然c兼容了C语言的转型方式&#xff0c;但是也做了很多限制&#xff0c;比如向上类型转换&#xff0c;在c中建议使用…...

Keil MDK6要来了,将嵌入式软件开发水平带到新高度,支持跨平台(2023-03-11)

注&#xff1a;这个是MDK6&#xff0c;不是MDK5 AC6&#xff0c;属于下一代MDK视频版&#xff1a; https://www.bilibili.com/video/BV16s4y157WF Keil MDK6要来了&#xff0c;将嵌入式软件开发水平带到新高度&#xff0c;支持跨平台一年一度的全球顶级嵌入式会展Embedded Wor…...

蓝桥杯刷题第九天

题目描述本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。素数就是不能再进行等分的整数。比如7&#xff0c;11。而 9 不是素数&#xff0c;因为它可以平分为 3 等份。一般认为最小的素数是2&#xff0c;接着是 3&#xff0c;5&…...

a-tree-select 基本使用,下拉框高度和宽度设置、回显时滚动条定位解决。

目录一、基本使用1. 界面效果2. 代码实现3. 问题1&#xff1a;下拉框占满整个屏幕4. 问题4&#xff1a;菜单内容过长时&#xff0c;下拉菜单宽度无限变宽。二、数据回显、滚动条定位1. 界面效果2. 代码实现2.1 获取默认展开节点2.1.1 代码实现2.1.2 说明2.2 设置滚动条定位2.2.…...

【Linux】之nc命令(连接与扫描指定端口、监测服务端口的使用情况)解析、详解实例、邮件告警

&#x1f341;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; 文章目录nc命令简介nc命令的安装nc命令语法格式…...

cdn简单配置

cdn配置域名接入CDN编辑CDN配置本地修改hosts文件&#xff0c;绕过公网解析域名接入CDN 添加CDN域名以及回源配置 编辑CDN配置 默认后端端口是80&#xff0c;如果测试发现无法访问&#xff0c;则可能是443或其它 如果域名在CDN后端有https强制跳转&#xff0c;后端端口一定是44…...

wordpress设置缩略图/搜狗seo刷排名软件

依赖注入(DI)与控制反转(IOC)其本上是一种编码的设计思想&#xff0c;可以理解为一个东西&#xff0c;实现了依赖注入&#xff0c;也就实现了控制反转&#xff0c;其实&#xff0c;我们在编写代码的时候&#xff0c;自已都可以用过了&#xff0c;但是&#xff0c;我们可以不知道…...

wordpress苏醒/推广赚钱的项目

明天没有具体的任务 全员讨论Beta版改进的问题转载于:https://www.cnblogs.com/WWW-Buaa/archive/2012/11/13/2767314.html...

h5网站制作价格/公司网站建设多少钱

1、渐变色彩 CSS3 Gradient 分为线性渐变(linear)和径向渐变(radial)。由于不同的渲染引擎实现渐变的语法不同&#xff0c;这里我们只针对线性渐变的 W3C 标准语法来分析其用法&#xff0c;其余大家可以查阅相关资料。W3C 语法已经得到了 IE10、Firefox19.0、Chrome26.0 和 Op…...

钓鱼网站教程/河南网站建设制作

1.关系型数据库简单的可以理解为二维数据库&#xff0c;表的格式就如Excel&#xff0c;有行有列。常用的关系数据库有Oracle&#xff0c;SqlServer&#xff0c;Informix&#xff0c;MySql&#xff0c;SyBase等。&#xff08;也即是我们平时看到的数据库&#xff0c;都是关系型数…...

有专业做网站的/宁波网络推广产品服务

写在前面 什么是资源呢&#xff1f;最基本的本地磁盘上的一个文件&#xff0c;远端某服务器的一个图片&#xff0c;本地的一个jar包&#xff0c;本地的一个jar包内的内嵌jar包/内嵌class文件/内嵌properties文件&#xff0c;这些都是资源&#xff0c;为了能够满足各种资源的读…...

wordpress展览会/北京搜索引擎推广服务

随着学习的不断深入&#xff0c;我们面对的问题也会越来越复杂&#xff0c;为了更好的解决就需要引入各种模块。本节课将会讲述openpyxl模块和csv模块的使用&#xff0c;同时也是为下节课的练习打基础。 1、什么是模块 我们对于模块并不陌生&#xff0c;之前的课程中我们已经通…...