记住,字符串是不可变的。和Java一样哈哈。

字符串格式化

使用字符串格式化操作符(%)来实现:

>>> format = "Hello %s,nice to meet you!"
>>> print format % 'Jack'
Hello Jack,nice to meet you!
>>> format = "Hello %s,nice to meet %s!"
>>> print format % ('Rose','me')
Hello Rose,nice to meet me!

格式化多个值可以使用元组或字典。%后面的s表示格式化为字符串,还有其他的如下:
[外链图片转存失败(img-WVixAKPP-1562849770959)(index_files/c0691a19-c112-482a-bf83-093cb0d60a5e.jpg)]

模板字符串
string提供了另一种格式化值的方法:

>>> from string import Template
>>> s = Template("$x,glorious $x!")
>>> s.substitute(x='jack') # 替换
'jack,glorious jack!'

还可以使用字典变量提供值/名称对:

>>> s = Template("A $thing must never $action.")
>>> d = {}
>>> d['thing'] = 'gentleman'
>>> d['action'] = 'show his socks'
>>> s.substitute(d)
'A gentleman must never show his socks.'

格式化操作符的右操作数可以是任意类型,如果是元组或字典,那么字符串格式化将会有所不同。

若右操作数是元组,则其中每个元素都会被单独格式化,每个值都需要一个对应的转换说明符。

>>> '%s + %s = %s' % (1,1,2)
'1 + 1 = 2'>>> '%s + %s = %s' % 1,1,2 # 缺少括号
Traceback (most recent call last):File "<stdin>", line 1, in <module>
TypeError: not enough arguments for format string

基本的转换说明符

  • %字符: 标记转换说明符的开始
  • 转换标志(可选):- 表示左对齐;+ 表示再转换值之前要加上正负号;""(空白符)表示正数之前保留空格;0表示转换值若位数不够则用0填充
  • 最小字段宽度(可选):转换后的字符串至少应该具有该值指定的宽度。
  • 点(.)后跟精度值(可选):如果转换的是实数,精度值表示出现在小数点后面的位数。如果转换的是字符串,那么该数字表示最大字段宽度。

字符串方法

find

类似于java中的indexOf。在字符串中查找子串。返回子串第一次出现在字符串中的索引,没找到返回-1。

>>> s = "hello,it's me me"
>>> s.find('me')
11

还记得没,in没找到的话就会抛异常

find还可以接收可选的起始点和结束点:

>>> s = "hello,it's me me"
>>> s.find('me')
11
>>> s.find('me',12) #提供了起点
14

split

用于将字符串分割成序列

>>> '1+2+3+4+5'.split('+')
['1', '2', '3', '4', '5']
>>> "nice to meet you".split() #不提供参数则以所有空格(包括制表和换行)作为分隔符
['nice', 'to', 'meet', 'you']

join

join方法是split的逆方法,用来连接序列中的元素:

>>> seq = [1,2,3,4,5]
>>> sep = '+'
>>> sep.join(seq)
Traceback (most recent call last):File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected string, int found
>>> seq = list('12345')
>>> seq
['1', '2', '3', '4', '5']
>>> sep.join(seq)
'1+2+3+4+5'

注意是参数是序列,且需要连接的序列元素都必须是字符串。

lower

>>> 'Trondheim Hammer Dance'.lower()
'trondheim hammer dance'

replace

用来替换字符串,返回某字符串的所有匹配项被替换之后的字符串:

>>> 'This is a test'.replace('is','eez')
'Theez eez a test'

split

join的逆方法,用来分割字符串,得到一个列表:

>>> '1+2+3+4+5'.split('+')
['1', '2', '3', '4', '5']

strip

类似java中的trim方法。用来去掉字符串的两侧空格

>>> ' yeah I love her        '.strip()
'yeah I love her'

也可以指定需要去除的字符,但是也只是去除两侧的字符:

>>> "*** Mother fu*k ,fu*k you!***".strip('*!')
' Mother fu*k ,fu*k you' #参数里面没有指定空格,因此左边还有一个空格

translate

这个方法类似replace方法,但是translate方法只处理单个字符,优势在于可以同时进行多个替换,有时候效率比replace高的多。

Python字符串中常用的方法相关推荐

  1. python 字符串中常用的方法

    目录 1.strip() 2.replace() 3.split() 4.join() ​编辑 5.字母的操作 1.strip() strip 去除字符串两端的空格.只是去除两端的!!! test_s ...

  2. python学习笔记:去掉python字符串中空格的方法总结

    去掉python字符串中空格的方法总结 在python的字符串处理过程中,有一个很常见的操作的是去掉字符串中的空格,python提供了以下四个函数来实现该操作: (1) lstrip()函数 (2) ...

  3. python字符串split_「干货」Python字符串中的split方法

    前面的文章我们有简单的介绍过什么是字符串.Python字符串的输入方式.Python字符串的拼接方法等今天我们主要分享一下Python字符串中split方法! Python字符串中的方法有很多种,其中 ...

  4. oracle split函数用法_「干货」Python字符串中的split方法

    前面的文章我们有简单的介绍过什么是字符串.Python字符串的输入方式.Python字符串的拼接方法等今天我们主要分享一下Python字符串中split方法! Python字符串中的方法有很多种,其中 ...

  5. Python:字符串中的方法--strip()

    Python:字符串中的方法–strip()(超详细版) 前言 今天突然意识到,我学习爬虫到今天一直很少用到Python基础的东西,就比如说是字符串的一些方法,索性就带着大家一起复习一下Python字 ...

  6. python编程中常用的12种基础知识总结

    python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出,进 ...

  7. python编程基础知识点总结_【转载】Python编程中常用的12种基础知识总结

    Python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出,进 ...

  8. Python 编程中常用的12种基础知识总结

    Python 编程中常用的12 种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出 ...

  9. python中的换行符是哪个键_对Python字符串中的换行符和制表符介绍

    对Python字符串中的换行符和制表符介绍 有关换行的问题 首先提一个问题,如下. python程序代码如下: print("I'm Bob. What's your name?" ...

  10. org.apache.commons.lang.StringUtils中常用的方法

    org.apache.commons.lang.StringUtils中常用的方法,这里主要列举String中没有,且比较有用的方法: 1. 检查字符串是否为空: static boolean isB ...

最新文章

  1. Intent 的Flag属性(Activity在栈位置的主宰者)
  2. Sql Server中两个表之间数据备份和导入
  3. 【干货】专注用户体验,用最小代价验证你想法的可执行性
  4. EV3 直接命令 - 第 2 课 让你的 EV3 做点什么
  5. 是前端类库还是前端框架?
  6. 2015年C语言组混搭 C/C++
  7. 2019.2.4时GitHub超过15个粉丝就可以领取3000元啦!
  8. Meteor:快到飞起来的全栈JavaScript开发平台
  9. 开源监控系统------Zabbix
  10. 职场这样发邮件,你死定了!
  11. CentOS 6 x86里交叉编译libxml2
  12. word中如何插入参考文献
  13. 2003- cant connect to MYSQL server on localhost(10061)
  14. 北京大学自然辩证法概论知识点总结(2021)
  15. oracle vm 介绍,Oracle VM 概述
  16. 基于stm32无线充电器设计
  17. 牛客网C语言题目练习
  18. u盘无法格式化怎么办?数据丢失这样恢复
  19. cookie是什么?有什么用?
  20. 服务器遇到攻击了,有什么好的安全解决方案

热门文章

  1. 阿里云CDN+OSS完成图片加速
  2. LSTMs和递归神经网络的初学者指南
  3. 安装10gR2的硬件要求
  4. MyBatis -- 对表进行增删改查(基于注解的实现)
  5. C#对称加密(3des)和非对称加密(rsa)算法
  6. ArcGIS for Android地图控件的5大常见操作
  7. In-Stream Big Data Processing
  8. HDU-1069 Monkey and Banana 动态规划
  9. Linux操作系统中awk语言常见用法
  10. react页面内嵌微信二维码 和 自定义样式 以及 微信网页共用unionId问题