1.前言

字符串str是Python中最常用的数据类型。我们可以使用单引号‘’或双引号“”包裹一段字符来创建字符串。

2.字符串创建

  1. str1 = 'hello world'
  2. str2 = 'abcdefg'

3.访问字符串中的值

字符串实际上就是字符的数组,所以我们可以使用下标索引的方式来访问字符串中的每个字符。

如果有字符串:name = 'abcdef',在内存中的实际存储如下:



那么可以通过下标的方法来取出字符串中的每个字符:

如果从头部开始取,索引为正

如果从尾部开始取,索引为负

  1. name = 'abcdef'
  2. print(name[0]) # 输出a
  3. print(name[1]) # 输出b
  4. print(name[2]) # 输出c
  5. print(name[-1]) # 输出f
  6. print(name[-2]) # 输出e
  7. print(name[-3]) # 输出d

4.字符串切片

切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。

语法:[起始:结束:步长]

注意:选取的区间属于左闭右开型,即从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身)。包左不包右

  1. name = 'abcdef'
  2. print(name[0:5]) # 取下标为0—4的字符,输出abcde
  3. print(name[2:]) # 取下标从2开始一直到结束的字符,输出cdef
  4. print(name[1:-1]) # 取下标从1开始到倒数第2个下标之间的字符,输出bcde

5.字符串的常用方法

1.capitalize()

将字符串的第一个字母变成大写,其他字母变小写。

  1. str = 'hello world'
  2. print(str.capitalize())
  3. #输出
  4. 'Hello world'

2.swapcase()

将字符串中大写转换为小写,小写转换为大写

  1. str = 'hello world'
  2. print(str.swapcase())
  3. #输出
  4. 'HELLO WORLD'

3.title()

将字符串中每个单词的首字母变成大写

  1. str = 'hello world'
  2. print(str.title())
  3. #输出
  4. 'Hello World'

4.upper()

将字符串所有字母都变成大写

  1. str = 'hello world'
  2. print(str.upper())
  3. #输出
  4. 'HELLO WORLD'

5.lower()

将字符串所有字母都变成小写

  1. str = 'Hello World'
  2. print(str.lower())
  3. #输出
  4. 'hello world'

6.rjust(width,[, fillchar])、ljust(width[, fillchar])和center(width, fillchar)

  • rjust(width,[, fillchar]):返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串
  • ljust(width[, fillchar]):返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。
  • center(width, fillchar):返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。
  1. str = 'hello'
  2. print(str.rjust(10))
  3. print(str.rjust(10,'*'))
  4. print(str.ljust(10))
  5. print(str.ljust(10,'*'))
  6. print(str.center(10))
  7. print(str.center(10,'*'))
  8. #输出
  9. ' hello'
  10. '*****hello'
  11. 'hello '
  12. 'hello*****'
  13. ' hello '
  14. '**hello***'

7.lstrip()、rstrip()和strip()

  • lstrip():去除字符串左边的空格或指定字符。
  • rstrip():去除字符串右边的空格或指定字符。
  • strip():去除字符串左右两边的空格或指定字符。
  1. str1 = ' hello '
  2. str2 = '*****hello*****'
  3. print(str1.lstrip())
  4. print(str2.lstrip('*'))
  5. print(str1.rstrip())
  6. print(str2.rstrip('*'))
  7. print(str1.strip())
  8. print(str2.strip('*'))
  9. #输出
  10. 'hello '
  11. 'hello*****'
  12. ' hello'
  13. '*****hello'
  14. 'hello'
  15. 'hello'

8.startswith(obj)和endswith(obj)

检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。

  1. str = 'Hello World'
  2. print(str.startswith('Hel'))
  3. print(str.startswith('haha'))
  4. print(str.endswith('rld'))
  5. print(str.endswith('hahaha'))
  6. #输出
  7. True
  8. False
  9. True
  10. False

9.replace(oldstr, newstr)

把字符串中的 old(旧字符串) 替换成 new(新字符串)

  1. str = 'Hello World'
  2. print(str.replace('World', 'China'))
  3. #输出
  4. 'Hello China'

10.split()

将字符串按照括号内的字符分割并组成列表

  1. str = 'China-is-good'
  2. print(str.split('-'))
  3. #输出
  4. ['China', 'is', 'good']

11.count()

返回子字符串在字符串里面出现的次数

  1. str = 'Hello World'
  2. print(str.count('o'))
  3. #输出
  4. 2

12.format()

格式化字符串

  1. #方式一:按位置传参
  2. str1 = '我叫{},今年{}岁'
  3. str2 = '我叫{},今年{}岁'.format('难凉热血',18)
  4. print(str2)
  5. #输出
  6. '我叫难凉热血,今年18岁'
  7. #方式二:按索引传参
  8. str1 = '我叫{0},今年{1}岁,大家都叫我{0}'
  9. str2 = '我叫{0},今年{1}岁,大家都叫我{0}'.format('难凉热血',18)
  10. print(str2)
  11. #输出
  12. '我叫难凉热血,今年18岁,大家都叫我难凉热血'
  13. #方式三:按key传参
  14. str1 = '我叫{name},今年{age}岁'
  15. str2 = '我叫{name},今年{age}岁'.format(age=53,name='难凉热血')
  16. print(str2)
  17. #输出
  18. '我叫难凉热血,今年18岁'

13.find()

在字符串中查找某个子字符串,可以整体找,也可以切片,如果找到,返回匹配到的第一个字母的索引,找不到则返回-1

  1. str = 'Hello World,Hello China'
  2. print(str.find('World'))
  3. print(str.find('Hello'))
  4. print(str.find('xxx'))
  5. print(str.find('World',1,5)) #在第一个索引和第5个索引中寻找
  6. #输出
  7. 6
  8. 0
  9. -1
  10. -1

14.index()

在字符串中查找某个子字符串,可以整体找,也可以切片,如果找到,返回匹配到的第一个字母的索引,找不到直接报错

  1. str = 'Hello World,Hello China'
  2. print(str.index('World'))
  3. print(str.index('xxx'))
  4. print(str.index('World',1,5)) #在第一个索引和第5个索引中寻找
  5. #输出
  6. 6
  7. 报错
  8. 报错

15.join()

用于将序列中的元素以指定的字符连接生成一个新的字符串

  1. str='hello'
  2. res = '-'.join(str)
  3. print(res)
  4. #输出
  5. h-e-l-l-o

python学习之【第三篇】:Python中的字符串及其所具有的方法的更多相关文章

  1. python学习【第三篇】基本数据类型

    Number(数字) int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位系统上,整数的位数为64位,取 ...

  2. Python学习系列(三)Python 入门语法规则1

    一.注释 ''' 多行注释 ''' #单行注释 '''    #example1.1 测试程序  时间:4/17/2017 i1=input("请输入用户名:") i2=input ...

  3. Python学习【第三篇】Python变量

    变量 声明变量 #!/usr/bin/env python name = "Bourbon" 上述代码声明了一个变量,变量名为:name,变量的值为:"Bourbon&q ...

  4. Python学习笔记(三)——文件系统中的常用方法

    OS模块中关于文件/目录常用的函数使用方法 函数名 使用方法 getcwd() 返回当前工作目录 chdir() 改变工作目录 listdir(path='.') 列举指定目录中的文件名('.'表示当 ...

  5. python学习笔记(三)---python关键字及其用法

    转载出处:https://www.cnblogs.com/ECJTUACM-873284962/p/7576959.html 前言 最近在学习Java Sockst的时候遇到了一些麻烦事,我觉得我很有 ...

  6. Python学习笔记(三)Python基本数字类型及其简单操作(1)

    一.数字类型 表示数字或数值的数据类型称为数字类型,Python语言提供3种数字类型:整数.浮点数和复数,分别对应数学中的整数.实数和复数,下面就一起来了解一下他们吧! 1.整数类型 整数类型与数学中 ...

  7. python学习笔记(三)之变量和字符串

    在其他语言中,变量就是有名字的存储区,可以将值存储在变量中,也即内存中.在Python中略有不同,python并不是将值存储在变量中,更像是把名字贴在值上边.所以,有些python程序员会说pytho ...

  8. Python学习日记(三)——Python基本数据类型(运算符、int、str、tuple、dict、range)

    运算符 1.算数运算 2.比较运算 3.赋值运算 4.逻辑运算 5.成员运算 基本数据类型 1.数字 int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2 ...

  9. Python学习笔记之基础篇(-)python介绍与安装

    Python学习笔记之基础篇(-)初识python Python的理念:崇尚优美.清晰.简单,是一个优秀并广泛使用的语言. python的历史: 1989年,为了打发圣诞节假期,作者Guido开始写P ...

  10. python学习心得第三章

    python学习心得第三章 1.三元运算 变量=值1 if 条件 else 值2 由图如果条件成立则赋值1给变量,如果条件不成立则赋值2给变量. 2.数据类型 集合:set() class set(o ...

随机推荐

  1. 【Tomcat】tomcat7 设置成系统服务启动

    1.启动cmd 2.cd C:\Program Files\tomcat7\bin 3.service.bat install 4.打开tomcat7w.exe可以启动管理服务

  2. Python 元组(Tuple)操作详解

    Python的元组与列表类似,不同之处在于元组的元素不能修改,元组使用小括号, 列表使用方括号,元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可 一.创建元组 代码如下: tup1 = (' ...

  3. hihocoder 数论二·Eular质数筛法

    数论二·Eular质数筛法 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho:小Hi,上次我学会了如何检测一个数是否是质数.于是我又有了一个新的问题,我如何去快速得 ...

  4. .NET Core 微信公众号小程序6种获取UnionID方法,你知道哪几种?

    前言 获取UnionID是开发微信公众号/小程序中很有必要的一个环节,特别是针对一个公司拥有多个公众号小程序而推出的机制,实现打通账户一体化,用UnionID来区分多平台的唯一性. 官方的解释:如果开 ...

  5. Python之string模块(详细讲述string常见的所有方法)

    相信不少学习python的程序员都接触过string模块 string模块主要包含关于字符串的处理函数 多说无益,初学python的小伙伴还不赶紧码起来 接下来将会讲到字符串的大小写.判断函数. 以及 ...

  6. Stack Overflow 上 250W 浏览量的一个问题:你对象丢了

    在逛 Stack Overflow 的时候,发现最火的问题竟然是:什么是 NullPointerException(java.lang.NullPointerException),它是由什么原因导致的 ...

  7. 不该背的锅也要背,Gitee.com被停止域名解析

    1.Gitee.com被停止域名解析 今天下午发现码云打不开了,打开是这样的 350万的男性交友平台说挂就挂,简直惨无人道!目前已有超过 350 万的开发者选择码云,不为啥,,就冲这个私有.免费这两个 ...

  8. 安装VMware Tools显示灰色正确解决办法

    首先问题如下: 解决办法如下:1.关闭虚拟机: 2.在虚拟机设置分别设置CD/DVD.CD/DVD2和软盘为自动检测三个步骤: 3.再重启虚拟机,灰色字即点亮. 大功告成,如果解决了你的问题,点个赞鼓 ...

  9. PHP ksort

    1.例子一: <?php /** * 根据 c1 对元素排序 */ $arrays = [ 'b' => [ 'c1' => 10, 'c2' => 5, ], 'a' =&g ...

  10. SpringBoot系列:Spring Boot集成Spring Cache

    一.关于Spring Cache 缓存在现在的应用中越来越重要, Spring从3.1开始定义了org.springframework.cache.Cache和org.springframework. ...