码迷,mamicode.com
首页 > 编程语言 > 详细

Python 基本字符串操作

时间:2019-07-28 20:06:41      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:字符串拼接   format   exp   name   module   width   --   size   def   

一、字符串拼接

str.join(sequence) 将序列(sequence)中的元素以指定的字符(_)连接生成一个新的字符串

a = ‘123‘
b = ‘abc‘
c = ‘ABC‘
str1 = ‘_‘.join([a, b, c])
print(str1)

运行结果:

123_abc_ABC

 

二、Python自定义方法

1、str.center(width[, fillchar]) 返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格(且只能是单个字符)

str1 = hello world!
str_center = str1.center(50, -)
print(str_center)

运行结果:

-------------------hello world!-------------------

 

2、tr.endswith(suffix[, start[, end]]) 用于判断字符串是否以指定后缀(suffix 可以是一个字符串或者是一个元素)结尾,如果以指定后缀结尾返回True,否则返回False。可选参数"start"与"end"为检索字符串的开始与结束位置

str1 = ‘hello world!‘
print(str1.endswith(‘ld!‘)) # 判断str1是否以‘ld!‘结尾
print(str1.endswith(‘lo‘, 2, 5)) # 判断str1中第2位开始到第5位结束的截取字符串(‘llo‘)是否以lo结尾

运行结果:

True
True

 

3、str.startswith(str, beg=0,end=len(string)) 用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查。

str1 = ‘hello world!‘
print(str1.startswith(‘hel‘)) # 判断字符串(‘hello world!‘)是否以(‘hel‘)开头
print(str1.startswith(‘llo‘, 2, 8)) # 判断字符串(‘llo wo‘)是否以(‘llo‘)开头
print(str1.startswith(‘llo‘, 3, 8)) # 判断字符串(‘lo wor‘)是否以(‘llo‘)开头

运行结果:

True
True
False

 

4、str.expandtabs(tabsize=8) 把字符串中的 tab 符号(‘\t‘)转为空格,tab 符号(‘\t‘)默认的空格数是 8

str1 = hello\tworld!
print(str1.expandtabs(20))          # 制定制表符\t的宽度为20

运行结果:

hello               world!

 

5、str.find(str, beg=0, end=len(string)) 检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1

str1 = hello world!
print(str1.find(w))                       # 查找指定的元素(‘w‘)的第一个索引值并返回
print(str1.find(g))                       # 查找的元素不存在返回-1

运行结果:

6
-1

 

6、str.format() Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。

基本语法是通过 {} 和 : 来代替以前的 %;可以接受不限个参数,位置可以不按顺序

str1 = hello world, {name} is {age}
print(str1.format(name=Quincy, age=29))   # 格式化输出
dic1 = {"name": "Python", "age": "15"}
print(str1.format(**dic1))                  # 通过字典设置参数

运行结果:

hello world, Quincy is 29
hello world, Python is 15

 

7、str.index(str, beg=0, end=len(string)) 检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常

str1 = ‘hello world!‘
print("‘el‘在字符串str1中的位置是:%d" % str1.index(‘el‘))

运行结果:

el在字符串str1中的位置是:1

查询索引失败报异常:

str1 = hello world!
print(str1.index(gg))
Traceback (most recent call last):
  File "C:/Python_Learning/PyFullStack/Week2/Day1/String_1.py", line 43, in <module>
    print(str1.index(‘gg‘))
ValueError: substring not found

 

8、str.isalnum() 检测字符串是否由字母和数字组成

str2 = "abc1234"
str3 = "abc_1234"
print(str2.isalnum())          # 判断是否为字母或数字
print(str3.isalnum())

运行结果:

True
False

 

9、str.isdecimal() 检查字符串是否只包含十进制字符。这种方法只存在于unicode对象(注意:定义一个十进制字符串,只需要在字符串前添加 ‘u‘ 前缀即可),

如果字符串是否只包含十进制字符返回True,否则返回False。

str4 = u"12345"
str5 = u"12345abc"
print(str4.isdecimal())             # 判断是否为十进制数字
print(str5.isdecimal())

运行结果:

True
False

 

10、str.isalpha() 检测字符串是否只由字母组成,如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False

str6 = "PythonIsFun"
str7 = "Python Is Fun"
str8 = "Python3"
print(str6.isalpha()) # 检测字符串是否只由字母组
print(str7.isalpha())
print(str8.isalpha())
print("".isalpha())

运行结果:

True
False
False
False

 

11、str.isidentifier() 用于判断字符串是否是有效的 Python 标识符,可用来判断变量名是否合法,如果字符串是有效的 Python 标识符返回 True,否则返回 False

# 判断字符串是否是有效的 Python 标识符,可用来判断变量名是否合法
print("if".isidentifier())          # True
print("def".isidentifier())         # True
print("class".isidentifier())       # True
print("_a".isidentifier())          # True
print("中国123a".isidentifier())    # True
print("123".isidentifier())         # False
print("3a".isidentifier())          # False
print("".isidentifier())            # False

运行结果:

True
True
True
True
True
False
False
False

 

12、str.islower() 检测字符串是否由小写字母组成,如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False

print(‘abc‘.islower())
print(‘Abc‘.islower())
print(‘123bc‘.islower())

运行结果:

True
False
True

 

13、str.isupper() 检测字符串中所有的字母是否都为大写,如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False

print(ABC.isupper())
print(Abc.isupper())
print(A123.isupper())

运行结果:

True
False
True

 

14、str.isspace() 检测字符串是否只由空格组成,如果字符串中只包含空格,则返回 True,否则返回 False

print(    .isspace())             # 判断字符串是否为空格
print(This is a test.isspace())   # 判断字符串是否为空格

运行结果:

True
False

 

15、str.istitle() 检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写,如果字符串中所有的单词拼写首字母为大写,且其他字母为小写则返回 True,否则返回 False

str1 = "This Is String Example"
str2 = "This is String example"
print(str1.istitle())              # 检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写
print(str2.istitle())              # 检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写

运行结果:

True
False

 

16、str.isnumeric() 检测字符串是否只由数字组成。这种方法是只针对unicode对象(注:定义一个字符串为Unicode,只需要在字符串前添加 ‘u‘ 前缀即可)

str1 = u"this2009"
str2 = u"20090728"
print(str1.isnumeric())            # 检测字符串是否只由数字组成。这种方法是只针对unicode对象
print(str2.isnumeric())            # 检测字符串是否只由数字组成。这种方法是只针对unicode对象

运行结果:

False
True

 

17、str.lower() 转换字符串中所有大写字符为小写

str1 = "THIS IS STRING EXAMPLE"
str2 = "This is String example"
print(str1.lower())
print(str2.lower())

运行结果:

this is string example
this is string example

 

18、str.upper() 将字符串中的小写字母转为大写字母

str1 = "this is string example"
str2 = "This Is String Example"
print(str1.upper())
print(str2.upper())

运行结果:

THIS IS STRING EXAMPLE
THIS IS STRING EXAMPLE

 

19、str.swapcase() 用于对字符串的大小写字母进行转换

str1 = "this is string example"
str2 = "This Is String Example"
print(str1.swapcase())          # 大小写反转
print(str2.swapcase())          # 大小写反转

运行结果:

THIS IS STRING EXAMPLE
tHIS iS sTRING eXAMPLE

 

20、str.ljust(width[, fillchar]) 返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串

print(Progress:80% .ljust(80, *))

运行结果:

Progress:80% *******************************************************************

 

21、str.rjust(width[, fillchar]) 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串

print(Progress:80%.rjust(80, -)) 

运行结果:

--------------------------------------------------------------------Progress:80%

 

22、str.strip([chars]) 用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列(注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符)

str1 = ‘ymy lovely\tbaby girl  y‘
print(str1.strip(‘y‘)) # 用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列

运行结果:

my lovely baby girl 

 

23、str.lstrip([chars]) 用于截掉字符串左边的空格或指定字符

  str.rstrip([chars]) 删除 string 字符串末尾的指定字符(默认为空格)

str1 = ymy lovely\tbaby girl  y
print(str1.lstrip(y))                  # 用于截掉字符串左边的空格或指定字符
print(str1.rstrip(y))                  # 用于截掉字符串末尾的空格或指定字符

运行结果:

my lovely    baby girl  y
ymy lovely    baby girl 

 

24、str.split(str="", num=string.count(str)) 通过指定分隔符对字符串进行切片,如果参数 num(分割次数。默认为 -1, 即分隔所有)有指定值,则分隔 num+1 个子字符串(str默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等)

str1 = Hello, This is a string test.
print(str1.split())                         # 以默认空格符进行分割
print(str1.split( , 2))                   # 以空格符进行分割2+1次
print(str1.split(,))                      # 以制定字符‘,‘进行分割

运行结果:

[Hello,, This, is, a, string, test.]
[Hello,, This, is a string test.]
[Hello,  This is a string test.]

 

25、str.rsplit(str="", num=string.count(str)) 类似于split,区别是从字符串最后面开始分割

str1 = ‘Hello, This is a string test, I like Python.‘
print(str1.rsplit()) # 以默认空格符从最后面开始进行分割
print(str1.rsplit(‘ ‘, 2)) # 以空格符从最后面开始进行分割2+1次
print(str1.rsplit(‘,‘, 1)) # 以制定字符‘,‘从最后面开始进行分割

运行结果:

[Hello,, This, is, a, string, test,, I, like, Python.]
[Hello, This is a string test, I, like, Python.]
[Hello, This is a string test,  I like Python.]

 

26、str.rfind(str, beg=0 end=len(string)) 返回字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回-1

str1 = This is a string test
print(str1.rfind(s))     # 返回字符串最后一次出现s的位置(从右向左查询),如果没有匹配项则返回-1

运行结果:

19

 

27、str.title() 返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())

str1 = this is a string test
print(str1.title())                   # 字符串首字母大写

运行结果:

This Is A String Test

 

Python 基本字符串操作

标签:字符串拼接   format   exp   name   module   width   --   size   def   

原文地址:https://www.cnblogs.com/quinc1201/p/11260349.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!