字符串操作

字符串取值: 字符串取单个值

#举例
#从零开始   每个字符对应的索引  h = 0 ,e = 1,l = 3 .......
s = 'hell0,a tong'
print(s[0])
print(s[5])#在这里 ,(符号)也是一个字符
print(s[7])#索引为7  对应的是  空格‘ ’  索引打印出来就是空格
print(s[-1])#倒叙取值 取字符串的最后一位
打印:
h
,g

不能超出索引范围,会报错的。例下:

s = 'hell0,a tong'
print(s[20])
打印:
IndexError: string index out of range
翻译:字符串索引超出范围

IndexError 属于Python的内置异常。 要学会查看报错信息
异常相关知识:https://www.cnblogs.com/nmb-musen/p/10856023.html

当然可以通过获取字符串的长度,避免索引越界的异常出现:
语句:len(字符串) 也可以采取下面方法:

s = 'hell0,a tong'
print(len(s))
打印:12

字符串取值: 字符串取多个值(切片)


举例说明:

1,取出所有字符串

zfc = 'abcdefgh'
#语句  字符串[起始索引:结束索引:步长]  起始索引默认为0 结束索引默认为-1 步长默认是1print(zfc[:])
print(zfc[::])
print(zfc[::1])
打印:
abcdefgh
abcdefgh
abcdefgh

2,取出字符串中指定字符

zfc = 'abcdefgh' #对应的索引  a = 0 b =1 c = 2  d =3
print(zfc[:3])#起始下标为0 结束下标为3  步长为1
print(zfc[2:])#下标从2开始,一直取到最后,也就是从 c = 2开始,默认步长为1
打印:
abc
cdefgh

第一个输出 这里结束下标为3,难道不应该输出 abcd吗?

因为 这里是 字符串的切片 遵循 左闭右开 的策略,包含起始,不包含结束,索引打印的值为abc

2,按照步长为2取出字符串中的字符

zfc = 'abcdefgh'
print(zfc[::1])
print(zfc[::2])  #步长为2 也就是每隔一个字符取下一个字符   从零开始 下标+2
print(zfc[::30])#不管我们步长取多大的值,都是从下标0开始的,除非你设置起始索引
打印:
abcdefgh
aceg
a

3,反向取字符串中的字符。 正向,反向取值取决于步长

zfc = 'abcdefgh'
print(zfc[::-1])#**倒叙  - 反转**
打印:
hgfedcba

下图是字符串其他的一些操作,可以尝试使用。

1,查找字符串

zfc = 'abcdefgh'
print(zfc.find('e'))#  参数就是字符串('e')  ,返回的是你查找字符串的索引值
print(zfc.find("de"))# 只返回查找字符串的第一个下标
print(zfc.find('1'))# '1'不在字符串中   找不到的话返回-1
打印:
4
3
-1

2,返回一个字符的下标

zfc = 'abcdefgh'
print(zfc.index('a'))
打印:
0zfc = 'abcdefgha' #字符串中有两个a字符
print(zfc.index('a'))#返回第一个a,的值#根据上图看出index这个函数的参数是可以设置,start= 和 end= ,我们这里从下标是1开始查找字符a
print(zfc.index('a',1))
打印:
0
8

如果我们查找的字符不在字符串中,就会抛出异常(报错)

zfc = 'abcdefgh'
print(zfc.index('1'))# ‘1’ 不在字符串中打印:
ValueError: substring not found     #没有找到字符串

find 和 index 都是返回字符的索引。那么他们的区别在哪里呢?

find中查找不到字符,返回值为-1.
index中找不到字符时,会报错
只能说是应用场景不同吧,可以使用find做判断,字符没在字符串中就返回-1

2,替换 用新值替换旧值


语句: 字符串.replace(旧值,新值)

zfc = 'abcde:fgh'
print(zfc.replace(':',',,,,'))#用四个逗号,替换:
print(zfc.replace('ss',',,,,'))#ss不存在字符串当中,如果不存在的话,就不做改动,也不会报错
打印:
abcde,,,,fgh
zfc = 'abcde:fgha'
print(zfc.replace('a','111'))#把字符串中所有的'a',都替换为111#只替换字符串中的第一个‘a’字符,有上图可知:count= 为指定替换次数
print(zfc.replace('a','111',1))
打印:
111bcde:fgh111
111bcde:fgha

3,字符串的分割split()

  • 定义:将字符串用分割符分割开,放到列表中去,
  • split()参数为空时,默认通过空格隔开。
s ='狗子 二丫 张三 李四'
b = s.split()#使用逗号将字符串s隔开
打印:
['狗子', '二丫', '张三', '李四']#使用ctrl+鼠标左键   点击split  查看他的源代码
"""def split(self, *args, **kwargs): # real signature unknown"""Return a list of the words in the string, using sep as the delimiter string.sepThe delimiter according which to split the string.None (the default value) means split according to any whitespace,and discard empty strings from the result.maxsplitMaximum number of splits to do.-1 (the default value) means no limit."""pass翻译:使用sep作为分隔符字符串,返回字符串中的单词列表。
9月
用来分割字符串的分隔符。
None(默认值)表示根据空格分割,
并从结果中丢弃空字符串。
maxsplit
要做的最大劈叉次数。
-1(默认值)表示没有限制。
  • 由此看出我们时可以设定分割次数的
s='狗子 二丫 三 四'
c=s.split(' ' , 1)#使用逗号隔开,指定分割一次
s='狗子 二丫 三 四'
b=s.split(' ',2)
print(b)
print(c)打印:
['狗子', '二丫', '三 四']
['狗子', '二丫 三 四']

4,字符串的拼接 join

将一个列表中的字符串拼接成一个字符串。
前提条件:列表的成员都必须是字符串
1,拼接符’ '.join 也必须是字符串类型
2,无规则要求拼接两个字符串用+
3,重复多次使用用*

s=['狗子', '二丫', '三', '四']
b=','.join(s)
print(b)打印:
狗子,二丫,三,四print('-'*20)
打印:
--------------------a ='狗子'
b='三ge'
print(a+b)
打印:
狗子三ge

5,字符串的转义

1,\n 就是换行的意思
print('sss \nsss')#换行
打印:
sss
sss
2,\\  起始就是输出一个单斜杠
print('D:\\录屏软件')#只打印一个\
打印:
D:\录屏软件
3,r  转义符
print(r'D:\录屏软件\程序\应用')#不会像上边\\那么麻烦,比较简介
打印:
D:\录屏软件\程序\应用

以上所有的操作都不会改变字符串的本身,因为字符串是不可修改的,不可变类型。
一旦赋值,就不可修改,所有的操作都是生成新的字符串。

Python字符串地常规操作:取值,切片,查找,替换,分割,拼接,转义相关推荐

  1. Python元组的常规操作

    Python元组的常规操作 一.前言 二.元组的创建和删除 三.访问元组 四.修改元组元素 五.元组推导式 一.前言   元组(tuple)是Python中另一个重要的序列结构,与列表类似,也是由一系 ...

  2. python中bool函数用法_在python中bool函数的取值方法

    bool是Boolean的缩写,只有真(True)和假(False)两种取值 bool函数只有一个参数,并根据这个参数的值返回真或者假. 1.当对数字使用bool函数时,0返回假(False),任何其 ...

  3. python读取文件并按属性取值

    python python读取文件并按属性取值 python读取文件并按属性取值 定义类,使得传入的值后续可以通过属性取出 class sepByAttr: # 自定义的元素def __init__( ...

  4. 数据结构专题(二):2.2单链表与顺序表,求元素个数,取值与查找

    先了解一下头结点: 头结点本身并不存在链表里面的元素信息,我们用头结点的目的是方便以后将所有元素全部找起来. 如下代码分别对应求个数,取值,查找 注意:取值的函数第二个参数是位置 查找的函数第二个参数 ...

  5. php检测txt中重复数据,Python实现检测文件的MD5值来查找重复文件案例

    平时学生交上机作业的时候经常有人相互复制,直接改文件名了事,为了能够简单的检测这种作弊行为,想到了检测文件的MD5值,虽然对于抄袭来说作用不大,但是聊胜于无,以后可以做一个复杂点的. # coding ...

  6. 3.1 Python 字符串类型常用操作及内置方法

    文章目录 1. Str 字符串 1.1 字符串 1.2 反斜杠 1. 字符串跨行书写 2. 转义字符 1.3 打印引号 1. 错误示例 2. 解决方法 1.4 三引号 1.5 原始字符串 1. 正确示 ...

  7. python字符串,列表常用操作

    24天养成一个好习惯,第五天! 一.字符串需要掌握的操作 1.取值(索引取值)需要注意的是只能取,不能改 1 msg = 'hello world' 2 print(msg[4]) 2.切片(顾头不顾 ...

  8. [Python] 字符串类型及其操作

    目录 字符串类型的表示 基本的字符串操作符 内置的字符串处理函数 内置的字符串处理方法 字符串类型的表示 字符串是字符的序列表示,可以由一对单引号(').双引号(")或三引号("' ...

  9. python几种数据类型的取值方式

    今天我们主要来学习下python的几种数据类型的取值方式! 首先我们先来看下python的几种数据类型,python有五个标准的数据类型: number(数字) string(字符串) list(列表 ...

  10. Python字符串类型及操作总结

    1.字符串表示 两种类型四种表示 单行-一对单引号或一对双引号 "python" 'python' 多行-一对三单引号或一对三双引号 '''python''' "&quo ...

最新文章

  1. MITOS|线粒体在线注释网站
  2. AS3汉字sokcet传送编码问题
  3. Windows10下使用darknet和YOLOV3训练自己的数据集
  4. SAP:2019年会有多么不一样?
  5. 今日arXiv精选 | Survey/ICCV/ACM MM/ICML/CIKM/SIGIR/RecSys/IROS
  6. Rolling element bearing diagnostics using the Case Western Reserve University data-学习笔记
  7. Python是一门什么样的语言
  8. (一)Windows环境下汇编编程读书笔记
  9. rabbitmq报错:PRECONDITION_FAILED - parameters for queue ‘test-1‘ in vhost ‘/‘ not equivalent
  10. 大数据的核心价值表现在哪里
  11. R+大地图时代︱ leaflet/leafletCN 动态、交互式绘制地图(遍地代码图)
  12. Dynamics CRM 2015Online Update1 new feature之 通过业务规则清空字段的值
  13. LeetCode 309 Best Time to Buy and Sell Stock with Cooldown 解决方案
  14. Kindle for PC: 优雅的 PDF 阅读器工具
  15. 2016 hitb-facebook-ctf capture-mexico-tls RSA-CRT-Attack
  16. android mapping文件作用,Android打包代码混淆后的Mapping文件路径
  17. 二分类变量相关性分析spss_SPSS-两变量相关性分析
  18. 【五分钟力扣】198题—用python3解决打家劫舍问题
  19. 图片加文字怎么弄?介绍几款不错的电脑图片编辑软件
  20. 开发新产品的三个验证阶段(EVT/DVT/PVT)

热门文章

  1. Word 公式编辑器: 公式居中,编号居右,带章节号自动更新,且可以交叉引用
  2. vue中使用萤石云播放视频
  3. code review流程规范。
  4. 带自动还原魔方游戏源码
  5. mysql .ibd_MySQL单表ibd文件恢复方法详解
  6. NoSQLBooster操作Mongodb的基本使用。
  7. cortex a8 java_ARM Cortex-
  8. 邮箱客户端设置 服务器设置,263邮箱客户端设置
  9. PostgreSQL checksum与Data Corruption
  10. 如何查询网络出口IP