字符串的基本特点
python的字符串是不可变的,但是,可以将字符串的一部分复制到新创建的字符串,达到“看起来修改”的效果。
python不支持单字符类型,单字符也是作为一个字符串使用的。
字符串的编码
字符默认为16位的unicode编码。
使用内置的ord()可以把字符转换成对应的unicode码;
使用内置的chr()可以把十进制数字转换成对应的字符。

>>> ord('A')
65
>>> chr(66)
'B'
>>>

引号创建字符串

>>> a="abc"
>>> print(a)
abc
>>> a
'abc'
>>> a="123"
>>> a
'123'
>>> a="I'm a student"
>>> a
"I'm a student"
>>> print(a)
I'm a student
>>> a='my name is "Hero"'
>>> print(a)
my name is "Hero"
>>>

创建多行字符串

>>> resume='''name="Hero"
company="hebut" age="22"'''
>>> print(resume)
name="Hero"
company="hebut" age="22"
>>>

空字符串和len()

>>> a=''
>>> a
''
>>> len(a)
0
>>> len("123木头人你")
7
>>>

字符串拼接

  1. ”+“:
    两边都是字符串,拼接;
    两边都是数字,相加;
    两边类型不同,抛出异常。
  2. 将多个字符串直接放在一起实现拼接。
>>> 'aa'+'bb'
'aabb'
>>> 3+4
7
>>> 'A'+10
Traceback (most recent call last):File "<pyshell#33>", line 1, in <module>'A'+10
TypeError: can only concatenate str (not "int") to str
>>> 'aa''bb'
'aabb'
>>>

字符串复制

>>> a='i love you '*3
>>> print(a)
i love you i love you i love you
>>>

不换行打印

print("a",end='*')
print("b",end='*')
print("c")

控制台读取字符串

>>> myname=input("姓名:")
姓名:Hero
>>> print(myname)
Hero
>>>

str()实现数字转型为字符串

>>> str(5.20)
'5.2'
>>> str(3.14e2)
'314.0'
>>> str(True)
'True'
>>>

使用[]提取字符
[]中指定偏移量,含有正向、反向两种搜索。

>>> a='abcdefghijklmnopqrstuvwxyz'
>>> a[0]
'a'
>>> a[3]
'd'
>>> a[25]
'z'
>>> a[26]
Traceback (most recent call last):File "<pyshell#55>", line 1, in <module>a[26]
IndexError: string index out of range
>>> a[-1]
'z'
>>> a[-26]
'a'
>>> a[-27]
Traceback (most recent call last):File "<pyshell#58>", line 1, in <module>a[-27]
IndexError: string index out of range
>>>

replace()实现字符串的替换
字符串不可改变

>>> a[0]='b'
Traceback (most recent call last):File "<pyshell#59>", line 1, in <module>a[0]='b'
TypeError: 'str' object does not support item assignment
>>>

使用replace()方法

>>> a.replace('a','飞')
'飞bcdefghijklmnopqrstuvwxyz'
>>> a
'abcdefghijklmnopqrstuvwxyz'
>>>

字符串切片slice函数

标准格式[起始偏移量 start:终止偏移量 end:步长 step]
典型操作

操作和说明 示例 结果
[:] “abcdef”[:] “abcdef”
[start:] “abcdef”[2:] “cdef”
[:end] “abcdef”[:2] “ab”
[start:end] “abcdef”[2:4] “cd”
[start: end :step] “abcdef”[1:5:2] “bd”

其他操作

操作 示例 结果
[start:] “abcdef”[-3:] “def”
[start:end] “abcdef”[-5:-3] “bc”(包头不包尾)
[::step] “abcdef”[::-1] “fedcba”
>>> a='abcdef'
>>> a[:]
'abcdef'
>>> a[2:]
'cdef'
>>> a[:2]
'ab'
>>> a[2:4]
'cd'
>>> a[1:5:2]
'bd'
>>> a[-3:]
'def'
>>> a[-5:-3]
'bc'
>>> a[::-1]
'fedcba'
>>>

split()分割和join()合并
split()默认使用空白字符(换行符/口空格/制表符)进行分割后存储到列表中。

>>> a="to be or not to be"
>>> a.split()
['to', 'be', 'or', 'not', 'to', 'be']
>>> a
'to be or not to be'
>>> a.split('be')
['to ', ' or not to ', '']
>>>

join()

>>> a=['to','be','or','not','to','be']
>>> '*'.join(a)
'to*be*or*not*to*be'
>>> a
['to', 'be', 'or', 'not', 'to', 'be']
>>> ''.join(a)
'tobeornottobe'
>>> join(a)
Traceback (most recent call last):File "<pyshell#85>", line 1, in <module>join(a)
NameError: name 'join' is not defined
>>>

举例

import timetime01=time.time()
a=""for i in range(1000000):a+='liu'time02=time.time()
print("耗时:"+str(time02-time01))liu=[]
time03=time.time()
for i in range(1000000):liu.append('liu')a=''.join(liu)
time04=time.time()
print("耗时:"+str(time04-time03))

结果

字符串的驻留机制和字符串比较
对于仅包含下户线、字母和数字的字符串会启用字符串驻留机制。

>>> a="abc_123"
>>> b="abc_123"
>>> a is b
True
>>> c="dd#"
>>> d="dd#"
>>> c is d
False
>>> str="aa"
>>> str1="aa"
>>> str2="bb"
>>> str1+str2 is "aabb"
False
>>> str1+str2 == "aabb"
True
>>> id(str1+str2)
2929293692800
>>> id("aabb")
2929294410896
>>>

字符串的比较和同一性
==、!判断是否有相同字符
is/is not判断两个第对象是否引用自同一个对象
成员操作符
in/not in判断某个子字符串是否存在于字符串中

>>> "abc"in a
True
>>> "abc" not in a
False
>>>

字符串中常用的方法汇总
常用查找方法
a=“我想要读研究生,读书好难啊”

方法和使用示例 结果
len(a) 13
a.startswith(“我想”) True
a.endswith(“难啊”) True
a.find(‘读’) 3
a.rfind('读‘) 8
>>> a="我想要读研究生,读书好难啊"
>>> len(a)
13
>>> a.startswith("我想")
True
>>> a.endswith("难啊")
True
>>> a.find('读')
3
>>> a.rfind('读')
8
>>>

去除首尾信息

>>> a=' abc '
>>> a.strip(' ')
'abc'
>>> a.lstrip(' ')
'abc '
>>> a.rstrip(' ')
' abc'
>>> a.strip()
'abc'
>>>

大小写转换
a=‘love life,love program’

示例 结果
a.capitalize() ‘Love life,love program’
a.title() ‘Love Life,Love Program’
a.upper() ‘LOVE LIFE,LOVE PROGRAM’
a.lower() ‘love life,love program’
a.swapcase() ‘LOVE LIFE,LOVE program’

格式排版

>>> a='life'
>>> a.center(10,'*')
'***life***'
>>> a.center(10)
'   life   '
>>> a.ljust(10,'*')
'life******'
>>> a.rjust(10,'*')
'******life'
>>>

其他方法
a=‘life2019’

示例 结果
a.isalnum() True
a.isalpha() False
a.isdigit() False
a.isupper() False
a.islower() True
a.isspace() False
>>> a='life2019'
>>> a.isalnum()
True
>>> a.isalpha()
False
>>> a.isdigit()
False
>>> a.isupper()
False
>>> a.islower()
True
>>> a.isspace()
False
>>> '\t'.isspace()
True
>>> '\n'.isspace()
True
>>> '\r'.isspace()
True
>>> '\t\r\n'.isspace()
True
>>>

字符串的格式化

>>> a="日期是:{0},天气是:{1}"
>>> a.format(1,'晴')
'日期是:1,天气是:晴'
>>> b="日期是:{day},天气是:{weather}"
>>> b.format(day=1,weather='晴')
'日期是:1,天气是:晴'
>>>

填充和对齐
^、<、>分别是居中、左对齐、右对齐,后面带宽度
:后面带填充的字符,只能是一个字符,不指定的话默认是空格填充

>>> "{:*>8}".format("245")
'*****245'
>>> "日期是:{0},天气是:{1:*^8}".format(1,'晴')
'日期是:1,天气是:***晴****'

数字格式化

>>> a='我是{0},我的存款有{1:.2f}'
>>> a.format("关关雎鸠",12345.67)
'我是关关雎鸠,我的存款有12345.67'
>>>


可变字符串

>>> s='hello world'
>>> sio=io.StringIO(s)
>>> sio
<_io.StringIO object at 0x000002AA07838948>
>>> sio.getvalue()
'hello world'
>>> sio.seek(7)
7
>>> sio.write('g')
1
>>> sio.getvalue()
'hello wgrld'
>>>

(18)python字符串的使用相关推荐

  1. 18.Python字符串类型及常用内置方法

    文章目录 1.字符串 2.字符串的定义 3.打印引号 4.类型转换 5.索引取值 6.遍历 7.长度统计 8.字符串复制与拼接 8.1字符串的复制 8.2加号拼接 8.3join拼接 8.4字符截取拼 ...

  2. 真香!精心整理了 100+Python 字符串常用操作

    来源丨萝卜大杂烩 作者丨周萝卜 字符串作为平时使用最多的数据类型,其常用的操作我们还是很有必要熟记于心的,本文整理了多种字符串的操作的案例,还是非常用心,记得点赞收藏~ 字符串切片操作 test = ...

  3. Python字符串居然可以这样玩 到底怎么做到的 年薪50w程序员揭晓

    Python如何比较字符串?由于字符串是Python中最常用的数据类型,所以我们考虑简化字符串比较操作.在本教程中,我们将介绍如何创建字符串对象,如何使用引号,最重要的是在Python中比较字符串的七 ...

  4. python字符串出栈方法_python字符串常用方法

    1. isalnum() :判断字符串所有的字符都是字母或者数字.返回true和false In [1]: str1='jiangwei520' In [2]: str2='jiang wei' In ...

  5. python字符串前加r、f、u、l 的区别

    f-strings 是指以 f 或 F 开头的字符串,其中以 {} 包含的表达式会进行值替换.(目前支持python3.6版本) 下面看下 f-strings 的使用方法 基本使用(作用:替换值) & ...

  6. 13-19 Python Number、Python字符串、Python列表(List)、集合的基本操作、元组、字典Dicttionnary、日期和时间

    13 Python Number Python Number数据类型用于存储数值. 数据类型是不允许改变的,这就是意味着如果改变Number数据类型的值,将重新分配内存空间. 以下实例在变量赋值时Nu ...

  7. python字符串常用的方法_python字符串常用方法

    1. isalnum() :判断字符串所有的字符都是字母或者数字.返回true和false In [1]: str1='jiangwei520' In [2]: str2='jiang wei' In ...

  8. python字符串的表示_Python字符串方法总结

    Python字符串方法图示: (温馨提示:对图片点右键--在新标签页中打开图片) 1.index() 定义:查找并返回指定str的索引位置,如果没找到则会抛异常(查找的顺序是从左至右)可以指定范围:开 ...

  9. python string 方法,python字符串的方法与操作大全

    一:字符串的方法与操作 *注意:首字母为l的为从左边操作,为r的方法为从右边操作 1.__contains__()判断是否包含 判断指定字符或字符串是否包含在一个字符串内,返回值为true或者fals ...

  10. python字符串startswith_Python 字符串 startswith() 使用方法及示例

    Python 字符串 startswith() 使用方法及示例 如果字符串以指定的前缀(字符串)开头,则startswith()方法将返回True.如果不是,则返回False. startswith( ...

最新文章

  1. 解决org.apache.jasper.JasperException: Failed to load or instantiate TagLibraryVal
  2. spring 04-Spring框架依赖注入基本使用
  3. Kafka中文官方文档
  4. CHIL-SQL-PRIMARY KEY 约束
  5. oracle omf管理 and asm omf
  6. js怎么在一个div中嵌入另一网站_好程序员web前端学习路线分享HTML5常见面试题集锦一...
  7. MVC里面写html获取不到input,asp.net-mvc – ASP.Net [HiddenInput]数据属性在Razor中用Html.EditorForModel渲染时不起作用?...
  8. 文件和内建函数 open() 、file()
  9. 删除一行下方单元格上移_Excel小技巧——局部单元格的添加与删除
  10. Android完美适配dimens.xml脚本
  11. 彻底搞懂git rebase命令
  12. 计算机网络(5.13)运输层- TCP的拥塞控制方法
  13. 读书感受 之 《心理学入门》
  14. 【ROS基础】ROS_c++ 语法记录
  15. 今年的情人节,给心爱的她一个不一样的礼物吧
  16. 工业机器人常用传感器解析
  17. [转]解剖PetShop
  18. 【从零学习openCV】IOS7下的人脸检测
  19. 无线通信协议wifi、BLE、zigbee
  20. 史记.(闸北)刀客列传

热门文章

  1. 在树莓派计算模块CM4 eMMC上安装Ubuntu Desktop 21.04
  2. 高德地图刷新当前位置_高德地图怎样实现实时定位,得到当前地点的坐标,位置...
  3. 心灵奇旅最触动我的一段
  4. c语言切蛋糕题编程,切蛋糕问题.ppt
  5. 留人间多少爱,迎浮世千重变;和有情人,做快乐事, 别问是劫是缘
  6. mqtt java教程_MQTT X 使用指南
  7. 【论文复现】CBAM(2018)
  8. 如何打开计算机本地组策略编辑器
  9. DirectX11(二)
  10. python跳转下一页_用Beautifulsoup转到下一页