当前位置: 首页 > 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再次申…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

C++:多态机制详解

目录 一. 多态的概念 1.静态多态&#xff08;编译时多态&#xff09; 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1&#xff09;.协变 2&#xff09;.析构函数的重写 5.override 和 final关键字 1&#…...

探索Selenium:自动化测试的神奇钥匙

目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解

进来是需要留言的&#xff0c;先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码&#xff0c;输入的<>当成字符串处理回显到页面中&#xff0c;看来只是把用户输…...

STL 2迭代器

文章目录 1.迭代器2.输入迭代器3.输出迭代器1.插入迭代器 4.前向迭代器5.双向迭代器6.随机访问迭代器7.不同容器返回的迭代器类型1.输入 / 输出迭代器2.前向迭代器3.双向迭代器4.随机访问迭代器5.特殊迭代器适配器6.为什么 unordered_set 只提供前向迭代器&#xff1f; 1.迭代器…...

VSCode 没有添加Windows右键菜单

关键字&#xff1a;VSCode&#xff1b;Windows右键菜单&#xff1b;注册表。 文章目录 前言一、工程环境二、配置流程1.右键文件打开2.右键文件夹打开3.右键空白处打开文件夹 三、测试总结 前言 安装 VSCode 时没有注意&#xff0c;实际使用的时候发现 VSCode 在 Windows 菜单栏…...

20250609在荣品的PRO-RK3566开发板的Android13下解决串口可以执行命令但是脚本执行命令异常的问题

20250609在荣品的PRO-RK3566开发板的Android13下解决串口可以执行命令但是脚本执行命令异常的问题 2025/6/9 20:54 缘起&#xff0c;为了跨网段推流&#xff0c;千辛万苦配置好了网络参数。 但是命令iptables -t filter -F tetherctrl_FORWARD可以在调试串口/DEBUG口正确执行。…...