字符串的操作方法
字符串的方法:
name = "egon" # name = str("egon") print(type(name))
我们可以使用一些方法来实现不同的高大上的功能
strip()方法就是去掉你所输入的空格或者特殊字符:
移除字符串头尾指定的字符序列。 strip只能移除一个字符串的开头或者结尾的内容
#strip 方法 这个是必须要掌握的 # msg = ' hello' # print(msg) # print(msg.strip()) #这个调用了strip方法后就把打印的变量的空格给去除了 #移除‘*’ # msg = '*****helloworld******' # print(msg) # print(msg.strip('*')) #这个就是把要打印的变量的*给去除了但是你的方法中的*必须要用‘’给引起来 #移除左边的 # msg = ' helloworld ' # print(msg) # print(msg.lstrip())
用处 因为比如在你格式化输出的时候你输入人名字的时候不知道什么时候就突然多了一个空格 那当打印的时候程序就会报错的
split切分 分割 以特定的标志来分割的: (把字符串转化为列表的专用方法)
比如你的字符串有以大小写或者空格的 你可以用split但是如果你是全部都一样的没有特殊的标志的就不行的
# info = 'root:x:0:0::/root/bin/bash' # print(info[0]+info[1]+info[2]+info[3]) # user_1 = info.split(':') # 括号内的就是你以什么来区分的 里面是以分号来切割的 # print(user_1) # # msg = 'hello world egon say hahaha' # print(msg.split()) #默认是以空格为分隔符的 # cmd = 'download|xhp.mov|3000' # cmd_1 = cmd.split('|') # print(cmd_1) # print(cmd_1[1]) #这个是找到以|为区分点的第一个元素 # print(cmd_1[0]) # print(cmd.split('|',1) #最后面的数字是你分割几次的定义 # print(cmd.split('|',2))
把字符串的首字母变成大写 capitalize(): 它和title() 还是有点区别的 title可以把一个字符串内分开的元素 的开头字母全部大写 而 capitalize() 只能把第一个的一个元素的首字母改为大写
>>> s = 'nishi yige da meinv' >>> m = s.capitalize()#运用caitalize()方法来对字符串的首字母大写 >>> print(m) #大家看看字符串的变化 Nishi yige da meinv >>> #大家可以看到字符串只是第一个元素的首字母大写了 其他的并没有大写 >>> >>> #再看看title() 的显示 >>> s = 'nishi yige da meinv' >>> n = s.title() >>> print(n) Nishi Yige Da Meinv >>> #大家应该看到了 字符串的每一个元素的开头都大写了的 这就是title()方法比capitalize()方法多的功能
name = 'laowang' egon = 'hello world' print(name.capitalize()) print(egon.capitalize())
全部大写 upper() 全部小写lower() 这个很重要需要必须掌握:
name = 'nimadan' today = 'MONDAY' print(name.upper())#把字符串的内容全部转化为大写的 print(today.lower()) #把 字符串的内容全部转化为小写的输出 code = 'adQu' your_code=input(">>") if your_code.lower() == code.lower( ) : print("666")
居中方法 center():
s = 'laonanhai' s4 = s.center(60) #括号内写的是居中的位置 print(s4) s5 = s.center(6) print(s5) #也可以设置填充物 你居中的时候前面和后面都是空的 我们可以填充一些物品进行补充空格 s6 = s.center(60,'*') print(s6)
title方法把每个单词的首字母大小写 如果由特殊字符或者数字隔开的也是算一个单词也要大写:
s = 'alex wusir*laonanhai2taibai' s6 = s.title() print(s6)
swapcase 大小写反转 :
把字符串中的所有小写换成大写 大写换成小写
>>> s = 'nishi yige da meinv' >>> l = s.swapcase() >>> print(l) NISHI YIGE DA MEINV >>> #以上可以看到 swpcase()是把字符串内的所有元素全部小写 变成大写 >>> >>> a = 'I love You' >>> b= a.swapcase() >>> print(b) i LOVE yOU >>>
s = 'llAa' print(s.swapcase())
find 从前往后依次寻找,找到就返回位置,找不到则返回-1.
s = 'asdfgh' s1='ssddgg' print(s.find('f',1)) #find 后面的下标 就是从第几位后面开始查找 print(s1.find('g',1))
Python rfind() 返回字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回-1。
s = 'nihaogghhgg' print(s.rfind('h')) print(s.rfind('w'))
find是从左开始查找 然后你可以找到你要找的元素然后把你找的元素给输下标,rfind是从右边往左查找 找到你所找的元素的最后一个下标
index 从前往后依次寻找,找到就返回位置,找不到则报错:
s = 'nihaogghhgg' print(s.index('g'))
replace 全部替换字符串中的某些元素: replace(old,new,count)
replace('old', 'new', count) old: 要替换的字符 new :替换后的字符 count : 替换的个数,就是一个字符串中如果有多个被替换字符,可以选择要替换几个
sTwo = "ww AQQQasaQQsaasaEWW" print(sTwo.replace("Q", "L", 1)) #替换一个字符, ww ALQQasaQQsaasaEWW print(sTwo.replace('Q', 'L', 3)) # 替换3个字符,ww ALLLasaQQsaasaEWW
>>> m = s.replace('a','n') >>> print(s) name m >>> print(m) nnme m >>>
s = "明天要下雨明天不下啊" print(s.replace('明天','666'))
count 寻找元素出现的个数
s = 'sdfahasdf' print(s.count('s'))
split 分割 可以将字符串分割成列表 str----->list(如果括号中没指定元素,默认是空格)
s = 'rinima' print(s.split()) print(s.split('i')) #以i为分割点转化点 输入的元素就是分割点
split后面可以加元素然后再加次数次数 就是依照 选定的元素分割几次
>>> s = 'nihoanishishuinizaina'
>>> n= s.split('n',2)
>>> print(n)
['', 'ihoa', 'ishishuinizaina'] #大家可以看只是分割到第二个n就不分割了 只是分割了两次
>>>
>>> m = 'shuonhmhk'
>>> k = m.split('h',2)
>>> print(k)
['s', 'uon', 'mhk'] #这个和上面一样也是分割了两次
>>>
startswith and endswith 用于判断以什么为开头,以什么为结尾(startswith是判断以什么什么开头,endswith()判断以什么什么结尾)
>>> s = 'nihao' >>> m = s.startswith('n') #判断以什么什么开头返回的是T 和False >>> print(m) True >>> n = s.startswith('l') >>> print(n) False >>>
>>> s='nihao' >>> m = s.endswith('o') >>> print(m) True >>> n = s.endswhit('a') Traceback (most recent call last): File "<pyshell#8>", line 1, in <module> n = s.endswhit('a') AttributeError: 'str' object has no attribute 'endswhit' >>> #endswith()满足救返回T不满足报错 你们应该看到了
isalnum :判断字符串是否由字母和数字组成 (主要是判断字符串是不是包含特殊字符):
>>> a= 'numnum' >>> m = s.isalnum() >>> print(m) True >>> q= a.isalnum() >>> print(q) True >>> i = "*num" >>> j = i.isalnum() >>> print(j) False >>>
isalpha:字符串只由字母组成 如果是只有字母组成那么就返回True 否则就返回false:
>>> s ='nihaoa' >>> m = s.isalpha() >>> print(m) True >>> n = 'ni123ni' >>> a=n.isalpha() >>> print(a) False >>>
判断字符串内是不是纯数字用isdigit()
s = "134567" if s.isdigit() #如果满足就执行下面的代码 pass
isspace()判断是不是空格:
统计:
s = "nishiyigedfas hubi0" # l = print(s.split("i")) # ['n', 'sh', 'y', 'gedfas hub', '0'] # print(s.strip("b")) print(s.capitalize()) # 首字母大写 Nishiyigedfas hubi0 print(s.title()) # 每一个单词的首字母大写 Nishiyigedfas Hubi0 print(s.upper()) # 全部大写 NISHIYIGEDFAS HUBI0 print(s.lower()) # 全部小写 nishiyigedfas hubi0 print(s.center(30)) print(s.center(30, "=")) # 居中 并且可以选择填充=====nishiyigedfas hubi0====== print(s.swapcase()) # 大小写翻转 print(s.find("g", 1)) # 查找从左向右查找 后面的数字是从第几位开始查找 print(s.rfind("g")) # 从右边开始查找 print(s.index("g")) # 返回g出现的下标 print(s.replace("n", "a")) # 替换 前面是你的要替换的内容后面是替换的值 aishiyigedfas hubi0 print(s.count("n")) # 统计个数 print(s.startswith("n")) # 判断开头并且返回的是布尔值 True print(s.endswith("i")) # False print(s.isalnum()) # 判断是否由数字字母组合,里面可以包含特殊符号 False print(s.isalpha()) # 判断字符串是否只有数字字母组合不能有特殊符号 #false 因为有空格所以是false m = " " print(m.isspace()) # True
format的使用 也是属于占位符就是能更加灵活的使用起来不像%那样使用的太呆板
第一种:
s = '我叫:{},今年:{},我喜欢:{}'.format('MT',18,'跳舞') print(s)
第二种: 指定下标去进行输入
s = '我叫:{0},多大:{1},爱:{2},一直:{1}'.format('桑塔纳',17,'跑') print(s)
第三种:
为它指定到确切的键
s = '我叫:{name},年龄:{age},爱好:{hobby}'.format(name = '刘能',age=50 , hobby = '吃') print(s)