(18)python字符串的使用
字符串的基本特点
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
>>>
字符串拼接
- ”+“:
两边都是字符串,拼接;
两边都是数字,相加;
两边类型不同,抛出异常。 - 将多个字符串直接放在一起实现拼接。
>>> '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字符串的使用相关推荐
- 18.Python字符串类型及常用内置方法
文章目录 1.字符串 2.字符串的定义 3.打印引号 4.类型转换 5.索引取值 6.遍历 7.长度统计 8.字符串复制与拼接 8.1字符串的复制 8.2加号拼接 8.3join拼接 8.4字符截取拼 ...
- 真香!精心整理了 100+Python 字符串常用操作
来源丨萝卜大杂烩 作者丨周萝卜 字符串作为平时使用最多的数据类型,其常用的操作我们还是很有必要熟记于心的,本文整理了多种字符串的操作的案例,还是非常用心,记得点赞收藏~ 字符串切片操作 test = ...
- Python字符串居然可以这样玩 到底怎么做到的 年薪50w程序员揭晓
Python如何比较字符串?由于字符串是Python中最常用的数据类型,所以我们考虑简化字符串比较操作.在本教程中,我们将介绍如何创建字符串对象,如何使用引号,最重要的是在Python中比较字符串的七 ...
- python字符串出栈方法_python字符串常用方法
1. isalnum() :判断字符串所有的字符都是字母或者数字.返回true和false In [1]: str1='jiangwei520' In [2]: str2='jiang wei' In ...
- python字符串前加r、f、u、l 的区别
f-strings 是指以 f 或 F 开头的字符串,其中以 {} 包含的表达式会进行值替换.(目前支持python3.6版本) 下面看下 f-strings 的使用方法 基本使用(作用:替换值) & ...
- 13-19 Python Number、Python字符串、Python列表(List)、集合的基本操作、元组、字典Dicttionnary、日期和时间
13 Python Number Python Number数据类型用于存储数值. 数据类型是不允许改变的,这就是意味着如果改变Number数据类型的值,将重新分配内存空间. 以下实例在变量赋值时Nu ...
- python字符串常用的方法_python字符串常用方法
1. isalnum() :判断字符串所有的字符都是字母或者数字.返回true和false In [1]: str1='jiangwei520' In [2]: str2='jiang wei' In ...
- python字符串的表示_Python字符串方法总结
Python字符串方法图示: (温馨提示:对图片点右键--在新标签页中打开图片) 1.index() 定义:查找并返回指定str的索引位置,如果没找到则会抛异常(查找的顺序是从左至右)可以指定范围:开 ...
- python string 方法,python字符串的方法与操作大全
一:字符串的方法与操作 *注意:首字母为l的为从左边操作,为r的方法为从右边操作 1.__contains__()判断是否包含 判断指定字符或字符串是否包含在一个字符串内,返回值为true或者fals ...
- python字符串startswith_Python 字符串 startswith() 使用方法及示例
Python 字符串 startswith() 使用方法及示例 如果字符串以指定的前缀(字符串)开头,则startswith()方法将返回True.如果不是,则返回False. startswith( ...
最新文章
- 解决org.apache.jasper.JasperException: Failed to load or instantiate TagLibraryVal
- spring 04-Spring框架依赖注入基本使用
- Kafka中文官方文档
- CHIL-SQL-PRIMARY KEY 约束
- oracle omf管理 and asm omf
- js怎么在一个div中嵌入另一网站_好程序员web前端学习路线分享HTML5常见面试题集锦一...
- MVC里面写html获取不到input,asp.net-mvc – ASP.Net [HiddenInput]数据属性在Razor中用Html.EditorForModel渲染时不起作用?...
- 文件和内建函数 open() 、file()
- 删除一行下方单元格上移_Excel小技巧——局部单元格的添加与删除
- Android完美适配dimens.xml脚本
- 彻底搞懂git rebase命令
- 计算机网络(5.13)运输层- TCP的拥塞控制方法
- 读书感受 之 《心理学入门》
- 【ROS基础】ROS_c++ 语法记录
- 今年的情人节,给心爱的她一个不一样的礼物吧
- 工业机器人常用传感器解析
- [转]解剖PetShop
- 【从零学习openCV】IOS7下的人脸检测
- 无线通信协议wifi、BLE、zigbee
- 史记.(闸北)刀客列传
热门文章
- 在树莓派计算模块CM4 eMMC上安装Ubuntu Desktop 21.04
- 高德地图刷新当前位置_高德地图怎样实现实时定位,得到当前地点的坐标,位置...
- 心灵奇旅最触动我的一段
- c语言切蛋糕题编程,切蛋糕问题.ppt
- 留人间多少爱,迎浮世千重变;和有情人,做快乐事, 别问是劫是缘
- mqtt java教程_MQTT X 使用指南
- 【论文复现】CBAM(2018)
- 如何打开计算机本地组策略编辑器
- DirectX11(二)
- python跳转下一页_用Beautifulsoup转到下一页