Python字符串函数

字符串函数

一、字符串操作函数
1.      upper
2.      lower
3.      title
4.      swapcase
5.      capitalize
6.      count('x')
7.      len(string)
8.      find
9.      index
10.     center
11.     ljust
12.     rjust
13.     zfill
14.     strip
15.     rstrip
16.     lstrip
17.     repalce
18.     join
19.     split
20.     splitlines 
21.     eval
二、字符串判断函数
1.      startswith
2.      endswith
3.      isupper
4.      islower
5.      isalnum
6.      isalpha
7.      isdigit
8.      isnumeric
9.      isdecimal
10.     isspace
11.     istitle
三、str模块函数
1.      映射表 (str不用导入,直接用)
        1.  str.maketrans
        2.  translate
四、string模块

import string

1.  string.whitespace
2.  string.ascii_letters
3.  string.ascii_uppercase
4.  string.ascii_lowercase
5.  string.digits
6.  string.octdigits
7.  string.hexdigits
8.  string.printable
9.  string.punctuation

一、字符串操作函数

eval(expression[,globals[,locals]])

功能:将字符串当成有效的表达式来求值,并返回结果

参数:
    expression: -- 字符串类型的表达式
    globals: --变量作用域,全局命名空间,如果被提供,则必须是一个字典**对象**
    locals: --变量作用域,局部命名空间,如果被提供,可以是任何映射**对象**
返回值:
    表达式的结果

expression字符串的使用

string1 = "[1,'213',{12:'sdf'},'2324']"
result  = eval(string1)
print(result,type(result))
[1, '213', {12: 'sdf'}, '2324'] 

globals参数的使用

globals1 = {'ac':1,'b':2}
#注意字典里的变量a和b都是字符串!
string2 = 'ac+b'
result1 = eval(string2,globals1)
print(result1,type(result1))
3 

locals参数的使用

globals3 = {'var1':23,'var2':34}
locals3 = {'t':878,'u':97}
string3 = 'var1-var2 +t/u'
results = eval(string3,globals3,locals3)
print(results,type(results))
#自我感觉globals,locals就是引入变量的作用域
-1.9484536082474229 

upper()

    功能:将字符串小写字母变为大写
    返回值:大写字符串
var1 = 'i dream my painting,and then i paint my dream.'
result = var1.upper()
###注意是在字符串后面添加upper()函数,不是在upper()函数里面添加字符串。
print(result)
I DREAM MY PAINTING,AND THEN I PAINT MY DREAM.

lower()

      功能:将字符串大写字母变为小写
      返回值:小写字符串
str1 = 'WHEN I WAS YOUNG,NOSTALGIA WAS A TINY,TINY STAMP'
result = str1.lower()
print(result)
when i was young,nostalgia was a tiny,tiny stamp

title()

    功能:将字符串语句里的单词开头字母大写
    返回值:单词开头字母大写的字符串
str1 = "Dont't you feel any compunction?"
result = str1.title()
print(result)
Dont'T You Feel Any Compunction?

swapcase()

    功能:将字符串大小写互换
    返回值:大小写互换之后字符串
str1 = "Life's like a movie,write your own ending,Keep believing,keep pretending."
results = str1.swapcase()
print(results)
lIFE'S LIKE A MOVIE,WRITE YOUR OWN ENDING,kEEP BELIEVING,KEEP PRETENDING.

capitalize

    功能:将段落的一个字母大写
print("love doesn't end,just because we dont't see each other.".capitalize())
Love doesn't end,just because we dont't see each other.

count()

    功能:统计某个字符或字符串出现的次数
str1 = 'sdfsdgsdgsdgdsgdsgd'
print(str1.count('s'))
6

len(string)

    功能:统计字符串的长度   
str1 = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
print(len(str1))
#注意字符串放在len()函数里进行计算。
38

find(‘x’)

    功能:查找某个字符或字符串的索引
    返回值:查询到返回索引值 ,查询不到返回-1.不会报错。
str1 = 'abcdefghijhlmnopqrstuvwxyz'
result = str1.find('d')
print(result)
result1 = str1.find('4')
print(result1)
3
-1

index(‘x’)

    功能:查找某个字符或者字符串的索引
    返回值:查询到返回值,查询不到报错。find()查询不到不报错。
str1 = 'abcdefghijhlmnopqrstuvwxyz'
result = str1.index('d')
print(result)
result1 = str1.index('4')
print(result1)
3



---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

 in ()
      2 result = str1.index('d')
      3 print(result)
----> 4 result1 = str1.index('4')
      5 print(result1)


ValueError: substring not found

center(未来字符宽度,空白填充字符)

    功能:指定字符串长度,并居中,空余指定长度超过字符长度时,可以指定用某个字符代替
    参数:center(未来字符宽度,空白填充字符),字符宽度必须指定,空白填充字符没有时,默认用空格代替
str1 = '   sefs  dsfd gs dg d gsdg    dsgsdgsdg'
result = str1.center(100,'*')
result1 = str1.center(100)
print(result)
print(result1)
******************************   sefs  dsfd gs dg d gsdg    dsgsdgsdg*******************************
                                 sefs  dsfd gs dg d gsdg    dsgsdgsdg                               

ljust(未来字符宽度,空白填充字符)

    功能:向左对齐
    参数:ljust(未来字符宽度,空白填充字符),字符宽度必须指定,空白填充字符没有时,默认用空格代替
str1 = 'sdfjds fsdklskdg iid gskjdgd doijg dsgsd g   dg'
result = str1.ljust(100,'$')
print(result)
sdfjds fsdklskdg iid gskjdgd doijg dsgsd g   dg$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

rjust(未来字符宽度,空白填充字符)

    功能:向右对齐
    参数:rjust(未来字符宽度,空白填充字符),字符宽度必须指定,空白填充字符没有时,默认用空格代替
str1 = 'sdsglsjdgljsdgjosd jgsd'
result = str1.rjust(50)
print(result)
                           sdsglsjdgljsdgjosd jgsd

zfill(未来字符宽度)

    功能:用0填充空白位置
str1 = 'sfsdjflsdjg dsg'
print(str1.zfill(100))
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000sfsdjflsdjg dsg

strip() rstrip() lstrip()

    功能:strip()---去除字符串左右两侧的空白
          rstrip()---去除字符串右侧的空白
          lstrip()---去除字符串左侧的空白
str1 = '                        dsgdgs sdgsd                       '
result = str1.strip()
print(result)
restlt1 = str1.rstrip()
print(result1)
result2 = str1.lstrip()
print(result2)
dsgdgs sdgsd
                                 sefs  dsfd gs dg d gsdg    dsgsdgsdg                               
dsgdgs sdgsd                       

replace()

    功能:使用指定字符或字符串,替换原字符串中的字符或字符串/
    参数:replace(old,new),old:被替换的字符串,new:替换字符串。
str1 = 'abcdefghrjklmnopqistuvwxyz'
result = str1.replace('a','1')
print(result)
1bcdefghrjklmnopqistuvwxyz

join()

    功能:使用指定字符或字符串,拼接由字符串组成的数组,返回字符串
list1 = ['sdgsdg','sxdgd','lioncj']
result = '**'.join(list1)
print(result)
sdgsdg**sxdgd**lioncj
dict1 = {'sdg':'sdgd','sdgl':'lijog','oigon':'oidn'}
result = '&&'.join(dict1)
print(result)
sdg&&sdgl&&oigon
set1 = {'sdjg','dgsdg','pojgo'}
result = '%%'.join(set1)
print(result)
sdjg%%dgsdg%%pojgo

split()

    功能:使用指定字符或字符串将原字符串切割
    返回值:由切割后的字符串组成的列表。
str1 = 'sligne234in kdghu98 ifdsighdsalgajdngdglkajdnghasdgahds'
result = str1.split('s')
print(result)
str2 = 'sdlgaaingdksgoiaalonlknaaoonmgdoaaaoidngfs'
result1 = str2.split('aa')
print(result1)
['', 'ligne234in kdghu98 ifd', 'ighd', 'algajdngdglkajdngha', 'dgahd', '']
['sdlg', 'ingdksgoi', 'lonlkn', 'oonmgdo', 'aoidngfs']

splitlines([keepends])

    功能:将字符串按照行分割
    参数:keepends -- 在输出结果里是否去掉换行符('\r', '\r\n', \n'),默认为 False,不包含换行符,如果为 True,则保留换行符。
    返回值:返回一个包含各行作为元素的列表
    ####对文件读取后处理数据很有用。
str1 = 'skdjigaaiogjsna\noaooignaao\r\ngiriii\rladiiaaijngslkdnjaasdifnmd'
result= str1.splitlines()
print(result)
result = str1.splitlines(True)
print(result)
['skdjigaaiogjsna', 'oaooignaao', 'giriii', 'ladiiaaijngslkdnjaasdifnmd']
['skdjigaaiogjsna\n', 'oaooignaao\r\n', 'giriii\r', 'ladiiaaijngslkdnjaasdifnmd']

二、字符串判断函数

startswith()

    功能:判断字符串是否由指定字符开头
aa = 'abdcda'
print(aa.startswith('a'))
True

endswith()

    功能:判断字符串是否由指定字符结尾
bb = 'sdhguidgnuh'
print(bb.endswith('h'))
True

isupper() \ islower()

    功能:判断字符串是否都是大写或者小写
cc = 'ldigndssdf'
print(cc.isupper())
print(cc.islower())
dd = 'IDUGFSK'
print(dd.isupper())
print(dd.islower())
False
True
True
False

isalnum()

  功能:判断字符串是否都是由数字、字母或汉字构成的
asd = 'sduidenhgfsidgiideg凯斯厄了848487942'
print(asd.isalnum())
ss = '29438yw984eyth'
print(ss.isalnum())
True
True

isalpha()

    功能:判断字符串是否全是由字母或汉字构成
dd = 'sdhugiksdinbgnsg8987.。--*&…………¥¥#'
print(dd.isalpha())
ee = 'sieghjdhgisdh'
print(ee.isalpha())
hh = 'isdnginside是'
print(hh.isalpha())
False
True
True

isdigit() \ isnumeric()

    功能:判断字符串是否都是由数字构成
uu = '284755'
print(uu.isdigit())
print(uu.isnumeric())
uu1 = 'iudg98766656565'
print(uu1.isdigit())
print(uu1.isnumeric())
True
True
False
False

isdecimal()

    功能:检查字符串是否只包含十进制字符。这种方法只存在于unicode对象。
    注意:定义一个十进制字符串,只需要在字符串前添加 'u' 前缀即可。
aa = u'25356457385'
print(aa.isdecimal())
bb = '7454866'
print(bb.isdecimal())
True
True

isspace()

    功能:判断字符串是否都是由空白字符构成,如空格,回车。
aa = '     '
print(aa.isspace())
True

istitle()

    功能:如果字符串中所有的单词拼写首字母是否为大写,且其他字母为小写则返回 True,否则返回 False.
str1 = 'Ading SDGd Eindgf EG'
print(str1.istitle())
str1 = 'Ading Edinfg Dinfd'
print(str1.istitle())
False
True

str模块函数

映射表(str不用导入,直接用)

str.maketrans()

            str也可以用''代替。
            功能:制作映射表
            参数:一个参数时,必须为字典格式;
                  两个参数时:第一个--要被替换的字符,第二个--替换字符;
                  三个参数时:第三个参数表示要删除的字符。

translate

            功能:应用映射表
    理解:str.maketrans()只能用于单个字符的替换操作,优势是可以一次替换多个字符。(只能替换单个字符)
            而replace()方法一次只能替换一种字符或字符串,优势是可以替换长字符串(长度大于2的)
table = str.maketrans('abcdefg','1234567')
str1 = 'seisnadksndadfisnfghgosndfgasiesdkfadewefr'
result = str1.translate(table)
print(result)
s5isn14ksn4146isn67h7osn4671si5s4k6145w56r
table = str.maketrans('abcdefg','1234567','as')
#第三个参数是要删除的字符
str1 = 'hhhseisnadksndadfisnfghhhhgosndfgasiesdkfadewefrjjhhj'
result = str1.translate(table)
print(result)
hhh5in4kn446in67hhhh7on467i54k645w56rjjhhj
table1 = ''.maketrans({'a':'111','b':'222','c':'333'})
#字典格式时,key的长度必须为1.
str1 = 'lisgaaaigslbbblingsccclsidn'
result = str1.translate(table1)
print(result)
lisg111111111igsl222222222lings333333333lsidn

string 模块相关函数

string.whitespace

    功能:获取所有的空白字符
import string
print(string.whitespace)


string.ascii_letteres

    功能:获取ascii码中的所有字母表
import string 
print(string.ascii_letters)
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

string.ascii_uppercase

    功能:获取ascii码中的所有大写字母
import string
print(string.ascii_uppercase)
ABCDEFGHIJKLMNOPQRSTUVWXYZ

string.ascii_lowercase

    功能:获取ascii码中的所有小写字母
import string
print(string.ascii_lowercase)
abcdefghijklmnopqrstuvwxyz

string.digits

    功能:获取ascii码中所有10进制数字字符
import string
print(string.digits)
0123456789

string.octdigits

    功能:获取八进制所有数字字符
import string
print(string.octdigits)
01234567

string.hexdigits

    功能:获取十六进制的所有数字字符
import string
print(string.hexdigits)
0123456789abcdefABCDEF

string.printable

    获取所有可见字符
import string
print(string.printable)
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~    


string.punctuation

    功能:获取所有标点符号
import string
print(string.punctuation)
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

你可能感兴趣的:(python基础)