Python字符串详解

简介: 字符串作用: 名字,性别,国籍,地址等描述信息定义: 在单引号、双引号、三引号内,由一串字符组成优先掌握的操作:按索引取值(正向取+反向取):只能取切片(顾头不顾尾,步长)长度len成员运算in和not in移除空白strip切分split循环strip移除空白name='*egon**'print(name.

字符串

  • 作用: 名字,性别,国籍,地址等描述信息
  • 定义: 在单引号、双引号、三引号内,由一串字符组成

优先掌握的操作:

  • 按索引取值(正向取+反向取):只能取
  • 切片(顾头不顾尾,步长)
  • 长度len
  • 成员运算in和not in
  • 移除空白strip
  • 切分split
  • 循环

strip移除空白

name='*egon**'
print(name.strip('*'))
print(name.lstrip('*'))
print(name.rstrip('*'))

判断指定字符是否在结尾或开对,返回True或False

name='alex_SB'
print(name.endswith('SB'))            #判断字给定字符串是否在结尾,如果在则返回True,不在则为False
------
True
print(name.startswith('alex'))           #判断给定字符串是否在开头,如果在则返回True,不在则为False
----
True

字符串替换replace方法

name='alex say :i have one tesla,my name is alex'
print(name.replace('alex','SB',1))                #替换,把alex替换为SB,1表示只替换匹配到的第一个字符串
-----
SB_SB

自定义格式format的三种玩法

  #format,自定义格式,注意中间的空格。把format后面的字符串放入大括号中。
res='{} {} {}'.format('egon',18,'male')      
print(res)
--------
egon 18 male

#按照输入的位置,按0,1,2,3指定位置排列。
res='{1} {0} {1}'.format('egon',18,'male')    
print(res)
---
18 egon 18

#设置变量,指定变量的位置,format后面的输入顺序就不重要了。
res='{name} {age} {sex}'.format(sex='male',name='egon',age=18)      
print(res)
---
egon 18 male

查找字符串中索引位置find,rfind,index,rindex,count方法

name='egon say hello'
print(name.find('0',1,3))  #查找0,顾头不顾尾,找不到则返回-1不会报错,找到了则显示索引
----
-1

#同上,但是找不到会报错
print(name.index('e',2,4)) 
---
ValueError: substring not found

#顾头不顾尾,如果不指定范围则查找所有
print(name.count('e',1,3))  
---
0

指定分隔符-split,把一串字串切为列表。

name='root:x:0:0::/root:/bin/bash'
print(name.split(':')) #指定冒号为默认分隔符 为空格
---
['root', 'x', '0', '', '/root/', '/bin/bash']            


#只想拿到顶级目录
name='C:/a/b/c/d.txt' 
print(name.split('/',1))
---
['C:', 'a/b/c/d.txt']


#从右开始切分
name='a|b|c'
print(name.rsplit('|',1))   
---
['a|b', 'c']

join

#可迭代对象必须都是字符串,把tag加入到对应的字符串中。
tag='-'
print(tag.join(['egon','say','hello','world'])) 
---
egon-say-hello-world

字符串居中和填充-center

name='egon'
#30为总字符串,让name在30个字符中居中,不够的用-填充。
print(name.center(30,'-'))        
---
#30为总字符串,让name在30个字符中居中,不够的用-填充。

字符串靠左和填充-ljust

#30为总字符串,让name在30个字符中排最左,不够用*填充
name='egon'
print(name.ljust(30,'*'))            
---
egon**************************

字符串靠右和填充-rjust

 #30为总字符串,让name在30个字符中排最右,不够用*填充。
name='egon'
print(name.rjust(30,'*'))           
---
**************************egon

#用0填充-zfill

name='egon'
print(name.zfill(50))   #50个字符,name在最右。
---
0000000000000000000000000000000000000000000000egon

指定制表符的长度-expandtabs

name='egon\thello'        #\t制表符
print(name)                   
---
egon    hello

name='egon\thello'
print(name.expandtabs(1))    #1为指定多少个字隔做为分隔符号。
---
egon hello

大小定替换-lower,upper

 #全替换为小写
name='Egon'
print(name.lower())           
---
egon

#全替换为大写
print(name.upper())            
---
EGON

首字母大写-captalize

name='egon'
print(name.capitalize())    
---
Egon

大小写翻转-swapcase

print(name.swapcase())      
---
eGoN

每个单词的首字母大写-title

msg='egon say hi'
print(msg.title())
---
Egon Say Hi

is数字系列

在python中
num1=b'4' #bytes
num2=u'4' #unicode,python3中无需加u就是unicode
num3='四' #中文数字
num4='IV' #罗马数字

isdigt:bytes,unicode

#isdigit来判断字符串是否为数字
#0-9数字类型返回True
print(num1.isdigit())   #True
print(num2.isdigit())   #True

#非0-9数字类型返回False
print(num3.isdigit())   #False
print(num4.isdigit())   #False

isnumberic:unicode中文数字,罗马数字

#bytes类型无isnumberic方法
print(num2.isnumeric()) #True
print(num3.isnumeric()) #True
print(num4.isnumeric()) #True

三者不能判断浮点数

num5='4.3'
print(num5.isdigit())
print(num5.isdigit())
print(num5.isdigit())

总结:

最常用的isdigit,可以判断bytes和unicode类型,这也是最常见的数字应用场景
如果要判断中文数字或罗马数字,则需要用到isnumeric

is其他

print('===>')
name='egon123'
print(name.isalnum())   #判断字符串是否由字母或数字组成
print(name.isalpha())   #判断字符串是否只由字母组成


print(name.isidentifier())
print(name.islower())
print(name.isupper())
print(name.isspace())
print(name.istitle())
目录
相关文章
|
2天前
|
Python Perl
Python中的字符串分析:判断字符串中是否包含字母
Python中的字符串分析:判断字符串中是否包含字母
8 0
|
2天前
|
C语言 Python
【Python 基础】如何进行字符串插值?
【5月更文挑战第6天】【Python 基础】如何进行字符串插值?
|
2天前
|
存储 监控 Python
python 日期字符串转换为指定格式的日期
python 日期字符串转换为指定格式的日期
13 3
|
2天前
|
数据处理 Python
Python中按指定数量分割列表字符串的方法
Python中按指定数量分割列表字符串的方法
8 1
|
8天前
|
存储 算法 Python
【亮剑】如何在 Python 中查找两个字符串之间的差异位置?
【4月更文挑战第30天】本文探讨了Python中查找两个字符串差异位置的方法。首先,通过内置函数和基本字符串操作,可以逐个字符比较找到第一个不同位置。其次,利用`difflib`库的`SequenceMatcher`能获取更详细的差异信息。最后,通过实现Levenshtein距离算法,可以计算字符串间的最小编辑距离。根据需求选择合适的方法,能提升代码效率和可读性。
|
10天前
|
Go 索引 Python
非常全面的python字符串相关处理方法(二)
非常全面的python字符串相关处理方法(二)
|
10天前
|
存储 索引 Python
非常全面的python字符串相关处理方法(一)
非常全面的python字符串相关处理方法(一)
|
12天前
|
人工智能 索引 Python
Python 字符串格式化输出
Python 字符串格式化输出
8 0
|
13天前
|
Python
Python 字符串格式化指南
本文介绍了Python中的三种字符串格式化方法:1) 使用 `%` 操作符,如 `"%s %d" % (var1, var2)`;2) `str.format()` 方法,如 `"{} {}".format(var1, var2)`;3) Python 3.6+ 的 f-strings,如 `f"{var1} {var2}"`。每种方法都支持变量插入和格式控制,如指定小数位数。选择合适的方法能提升代码可读性和效率。
9 0
|
14天前
|
API Python
[AIGC] Python字符串常用API介绍
[AIGC] Python字符串常用API介绍