一、字符串的结尾与开头的匹配
Python中的字符串带有许多内置函数,这里我们说两个函数startswith() 、 endswith() 两个函数均是字符串类的一种方法。
str1 = "http://www.baidu.com"
str2 = "ftp:///mnt"
print(str1.startswith(("http","https"))) #字符串str1是不是以 "http"或"https"开头的,是返回True 否则返回False
print(str2.endswith(("cn","mnt"))) #字符串str2是不是以 "cn"或"mnt"开头的,是返回True 否则返回False
二、字符串的判断
1、判断字符串全部是数字字符组成
print("123456".isdigit()) #只有数字字符
输出结果 : True
print("123456 hello word ".isdigit()) #不只有数字字符
输出结果 : Flase
如果字符串只包含数字则返回 True 否则返回 False。
2、判断字符串全部字母
print("AaaiiBsddd".isalpha()) #所有字符都是字母
输出结果:True
print("123AaaiiBsaddd".isalpha()) #所有的字符不都是字母
输出结果:False
如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
3、判断字符串中的字母全部是大写字母
print("AAAAB\tBBBB\n".isupper()) #所有字符都是大写字母
输出结果: True
print("AaaiiBsddd".isupper()) #所有字符都不都是大写
输出结果: False
如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
4、判断字符串中的字母全部是小写字母
print("aaaabbbccc122c".islower()) #所有字母都是小写
输出:True
print("a,aaabbbAAcc".islower()) #不是所有的字母都是小写
输出:False
如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
5、判断字符串全部是数字或字母
如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False print("123iakEDCV".isalnum()) #所有的字符都是数字或字母
输出 : True
print("****123iakEDCV".isalnum()) #不是所有的字符是字母或数字
输出 : False
6、判断字符串全部是否首字母大写
如果字符串中所有的单词拼写首字母是否为大写,且其他字母为小写则返回 True,否则返回 False print("Hello World".istitle()) #所有单词的首字母大写
输出:True
print("Hello world".istitle()) #不是所有单词的首字母大写
输出 False
7、判断字符串全部是否首字母大写
如果字符串中只包含空格,则返回 True,否则返回 False. print(" \n \t ".isspace()) #只包含空格
输出 : True
print(" \n ssss \t ".isspace()) #不只包含空格
输出 : False
二、变量名的合法性的判断
在上一节笔记中我们说了变量名的规则,如下
(1)变量名可以由字母,数字或者下划线;
(2)变量名只能以字母或者下划线组成;
(3)变量名不能是python的关键字: eg: if, elif, else,
注意:中文是可以作为变量名的,但不建议
在这里,我们设计一程序用来判断用户输入的变量名称是否符合规则(默认用户不会输入python的关键字,和中文)
var = input("变量名:")
if var[0].isalpha() or var[0] == "_":
for char in var[1:]:
if not (char.isalnum() or var == "_" ):
print("变量名%s存在不合法字符%s"%(var,char))
break
else :
print("变量名%s合法" % (var))
else:
print("变量名不合法:第一个字符错误!")
三、字符串的搜索与替换
find()函数用于查找字符串中是否含有某个子串,如果有,则将子串的索引值返回,如果没有,则为-1 。replace()函数用于将字符串中的某个子串被全被替换掉,但是不会改变原有的字符串数据
str.find(str,beg,end=len(string))
str --指定检索的字符
beg -- 开始索引的位置 默认为0
end --结束搜索的位置 默认为字符串长度
str = "hell world who are you"
print(str.find("world"))
输出:
str = "hell world who are you"
print(str.find("hello12"))
输出:
str.replace(old, new[, max]) #max 指定最大被替换的次数
str1 = "hell world who are you"
str2 = str1.replace("hell","hello12")
print(str1)
print(str2)
输出:
注意上面没有改变原有字符串数据,字符串中数据不可变
四、字符串中字符清洗
(1)strip([chars])
chars :移除字符串头尾指定的字符
str = "0000hell world who are you0000"
print(str)
print(str.strip("0"))
输出:
(2)lstrip([chars])
#lstrip([chars])
#chars 移除字符串左侧的字符
#该函数会返回移除字符串头指定的字符后新生成的字符串
str = "0000hell world who are you0000"
print(str)
print(str.strip("0"))
(2)rstrip([chars])
#rstrip([chars])
#chars 移除字符串左侧的字符
# 该函数会返回移除字符串尾指定的字符后新生成的字符串
str = "0000hell world who are you0000"
print(str)
print(str.rstrip("0"))
五、字符串的对齐
(1)ljust()
方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串 #ljust(width[,fillchar]) #字符向左对齐
#width -- 指定字符串的长度
#fillchar --填充字符
str = "world who are you "
print(str.ljust(30,'*'))
(2)rjust()
返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串 #rjust(width[,fillchar])
#width --
#fillchar
str = "world who are you"
print(str.rjust(30,'*'))
(3)center
Python center() 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串。默认填充字符为空格#center(width[,fillchar])
#width --
#fillchar
str = "world who are you"
print(str.center(30,'*'))
六、格式化字符串——format
从Python2.6开始,新增了一种格式化字符串的函数str.format(),它增强了字符串格式化的功能,进本语法是通过{}和:来代替以前的 % 。
format 函数可以接受不限个参数,位置可以不按顺序。
str = "{} {}".format("hello","world") #不设置指定位置,按照默认顺讯
print(str)
str = "{1} {0} {1})".format("hello","world") #设置指定位置
print(str)
也可以设置参数
str = "{name},{sex},{age}".format(age=32,sex='male',name = 'zhangsan')
print(str)
format 还具有许多的格式化输出方式参考:点击打开链接 作者的很多东西参考来源也是这里。
七、字符串中指定字符的统计
Python count() 方法用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。#count(sub,start=0,end=len(string))
#sub -- 需要计数的字符
#start -- 开始查找的位置 默认为字符串开头
#end --- 结束查找的位置 默认为字符串结尾
str = '123456654321'
print(str.count('1'))
print(str.count('2',0,6))
输出:
八、字符串的分离与连接
(1)split()
Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则仅分隔 num 个子字符串#split(str='',num=string.count(string))
#str -- 分隔符,默认为所以有的空字符,包括空格、换行(\n),制表符(\t)等
#num -- 分割次数
str = '123.sd ads.555a.fd sf.e.t tew'
print(str.split()) #使用空格进行所有分割
print(str.split('.')) #使用 '.' 进行全部分割
print(str.split('.',2)) #使用'.' 进行两次分割
(2)join()
Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。#str.join(sequence)
#sequence -- 需要被连接的序列
time = ["2018","04","16"]
print("-".join(time))
输出 :