Python 3.6字符串操作之字符串的截取
bigegpt 2024-10-12 05:23 7 浏览
字符串的截取
字符串的截取是实际应用中经常使用的技术,被截取的部分称为“子串”。Java中使用函数substr()获取子串,C#使用函数substring()获取子串。而Python由于内置了序列,可以通过前面介绍的索引、切片获取子串,也可以使用函数split()来获取。字符串也属于序列。
下面这段代码使用序列的索引获取子串:
# 使用索引截取子串
print('----------# 使用索引截取子串---------')
word = 'world'
print(word[4])
【代码说明】第4行代码,访问字符串第5个字符的值。输出结果为“d”。
【运行结果】
通过切片可以实现对字符串有规律的截取。切片的语法格式如下所示。
string[start : end : step]
【代码说明】其中string表示需要取子串的源字符串变量。[start:end:step]表示从string的第start个索引位置开始到第end个索引之间截取子串,截取的步长是step。即每次截取字符string[start+step],直到第end个索引。索引从0开始计数。
下面这段代码演示了使用切片截取子串的功能:
# 特殊切片截取子串
print('---------# 特殊切片截取子串----------')
str1 = 'hello world'
print(str1[0:3])
print(str1[::2])
print(str1[1::2])
str2 = 'ABCDEFG'
print(str2[:3])
print(str2[3:])
print(str2[::2])
print('-----------------------------------')
【代码说明】
第10行代码,截取字符串中第1个字符到第3个字符之间的部分。
第11行代码,[::2]切片省略了开始和结束字符。从字符串的第1个字符开始,以2为步长逐个截取字符。
第12行代码,切片中的数字1表示从字符串的第2个字符开始取字符,数字2表示以2为步长逐个截取字符。
【运行结果】
如果要同时截取多个子串,可以使用函数split()实现。函数split()的声明如下所示。?
split([char] [,num])
【代码说明】
参数char表示用于分割的字符,默认的分割字符是空格。
参数num表示分割的次数。如果num等于2,将把源字符串分割为3个子串。默认情况下,将根据字符char在字符串中出现的个数来分割子串。
函数的返回值是由子串组成的列表。
代码如下:
# 使用split()获取子串
print('-----------# 使用split()获取子串-----')
sentence = "Tom said: a,b,c,d."
print('使用空格获取子串:', sentence.split())
print('使用逗号获取子串:', sentence.split(','))
print('使用逗号获取3个子串:', sentence.split(',', 2))
sentence1 = 'Uzi tell us : he is king and said : A, B, C, D.'
print('使用空格获取子串:', sentence1.split())
print('使用逗号获取子串:', sentence1.split(','))
print('使用空格获取4个子串:', sentence1.split(' ',3))
print('-----------------------------------')
【代码说明】
第22行代码根据空格来获取子串。字符串sentence中有5个空格,将返回由6个子串组成的列表。
第23行代码根据逗号来获取子串。字符串sentence中有3个空格,将返回由4个子串组成的列表。
第24行代码根据逗号来分割字符串,并把字符串sentence分割为3个子串。
【运行结果】
字符串连接后,Python将分配新的空间给连接后的字符串,源字符串保持不变。
?
# 字符串连接后,Python将分配新的空间给连接后的字符串,源字符串保持不变。
print('字符串连接后,Python将分配新的空间给连接后的字符串,源字符串保持不变。')
str3 = "a"
print(id(str3))
print(id(str3 + "b"))
print('-------------------------------------')
?
【代码说明】
第2行代码输出str1的内部标识。输出结果为“4337916312”。
第3行代码,进行字符串连接,新的字符串将获得新的标识。输出结果为“4337800168”。
【运行结果】
ALL:
运行结果ALL:
-------------------end--------------------
相关推荐
- Linux 命令 ncftp(文件传输)——想玩转linux就请一直看下去
-
我是IT悟道,点击右上方“关注”,每天分享IT、科技、数码方面的干货。Linuxncftp命令Linux命令大全Linuxncftp命令用于传输文件。FTP让用户得以下载存放于服务器主机的文件,...
- 玩转 Linux 之:磁盘分区、挂载知多少?
-
今天来聊聊linux下磁盘分区、挂载的问题,篇幅所限,不会聊的太底层,纯当科普!!1、Linux分区简介1.1主分区vs扩展分区硬盘分区表中最多能存储四个分区,但我们实际使用时一般只分为两...
- 一文带你了解 Linux 文件权限,从基础到高级
-
在Linux中,每个文件和目录都关联了一组权限,定义了不同用户对其的访问能力。权限分为三类:读取(read,r)、写入(write,w)和执行(execute,x),分别用字母r、w、x...
- Linux 使用 socat 让云服务器作为跳板机的方法
-
概念三台机器:客户端A(192.168.1.11)服务器B(192.168.1.88)跳板机C(192.168.1.32)实现A与B的双向数据传输,本该这样:A<...
- Linux启动流程之ROM-CODE(linux启动详解)
-
1.从哪里开始?下图是AM335X核心板和功能框图:AM335X核心板的存储信息如下:AM335X核心板运行linux系统,在这里提出一个问题:上电后指令从哪里开始执行?DDRorEMMC?2....
- 「Linux」——select和epoll详解(linux epoll详解)
-
select和epoll详解select和epoll的区别(面试常考)select一、什么是select1.select函数原型2.参数解释3.参数timeout取值4.返回值5.监控原理二、sele...
- Linux中使用输入输出和错误重定向, 赶紧收藏!
-
Linux中的每个进程都提供三个打开的文件(通常称为文件描述符),分别是标准的输入、输出和错误文件。StandardInput是键盘,抽象为文件,使编写脚本和程序更容易。StandardOut...
- 「正点原子Linux连载」第七十一章Linux 4G通信实验
-
1)实验平台:正点原子Linux开发板2)摘自《正点原子I.MX6U嵌入式Linux驱动开发指南》关注官方微信号公众号,获取更多资料:正点原子第七十一章Linux4G通信实验前面我们学习了如何在Li...
- LSM Oops 内存错误根因分析与解决
-
作者简介:吴文涵,图形算法出身,同时热爱linux内核开发的工程师,喜欢推导并乐于分享。版权声明:本文最先发表于“泰晓科技”微信公众号,欢迎转载,转载时请在文章的开头保留本声明。Oops是...
- 连你家电器的算力都不放过,新发现Linux恶意软件用IoT设备挖矿
-
萧箫发自凹非寺量子位|公众号QbitAI继电脑和手机后,挖矿病毒也盯上了IoT设备。无论是智能冰箱、彩电还是洗衣机,但凡有点算力的(物联网和端侧)设备都可能被这种病毒感染,用于挖掘加密货币等...
- 苹果iOS 26锁屏大升级:更个性更沉浸 有五大亮点
-
【CNMO科技消息】CNMO注意到,苹果近日在iOS26开发者预览版中推出了多项锁屏界面创新功能,可以大幅提升用户个性化设置与操作便捷性。这些更新不仅优化了视觉体验,还通过技术手段增强了交互效率,为...
- 福彩 3D 第 2025178 期:心水407 !大小奇偶双平衡 + 跨度适配,速收藏
-
福彩3D第2025178期:497后和值回落!五维分析+形态调整策略福彩3D2025177期开奖号码497,组六形态,大小比2:1,奇偶比1:2,和值20,跨度5。面对大...
- 一加 Ace5 至尊版手机首发适配和平精英手游
-
7月8日消息,据用户反馈,一加Ace5至尊版手机开启新版本系统推送,升级包大小约6.83MB、版本号为15.0.2.215(CN01),适配了腾讯《和平精英》手游144Hz高刷。IT...
- 外媒称苹果今年秋季将推出超15款新品 远不止iPhone 17
-
【CNMO科技消息】2025年已过半程,有外媒指出苹果计划在今年秋季推出超过15款新产品,涵盖iPhone革新、M5芯片设备迭代、可穿戴设备升级及智能家居布局等。苹果1.iPhone17系列:产品...
- 一周热门
- 最近发表
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- libcrypto.so (74)
- linux安装minio (74)
- ubuntuunzip (67)
- vscode使用技巧 (83)
- secure-file-priv (67)
- vue阻止冒泡 (67)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)