什么是字符串?
字符串是单引号或双引号括起来的任意文本
注:字符串不可变
1、创建字符串
str1 = “sunck is a good man”
2、字符串运算
2.1、字符串连接:
str3 = str2 + str1
2.2、输出重复字符串:
str7 = "good"
str8 = str7 * 3
print("str8 =",str8)
3、访问字符串中的某个字符
通过索引下标查找字符,索引从0开始
str9 = "lidan is a good girl"
print(str9[1])
#str9[1] = "a" #字符串不可变
#print("str9 =",str9)
4、截取字符串
str10 = str9[0:6] #从0取到6之前
str11 = str9[:6] #同上
print("str10 =",str10)
5、判断字符串被不被变量包含(in)
print("good " in str9)
6、判断字符串不被变量包含(not in)
print("good1" not in str9)
7、格式化输出
num1 = 10
str12 = "hello world"
f = 10.1234
# %d,%s,%f都是占位符%.2f表示保留两位小数
print("num = %d,str = %s,f = %.2f" % (num1,str12,f))
8、转义字符
8.1、\n、\\
print("lili is a good\n girl")
print("lili is a 'good' girl")
print('lili is a \'good\' girl')
print("lili is a \"good\" girl")
8.2、多个换行
print("good\nnice\npretty")
print('''
good
nice
pretty
''')
8.3、\t 制表符
print("good\tman")
8.4、不进行转义,字符串前使用r
print("c:\\a\\a1")
print(r"c:\a\a1")
9、常用的函数
9.1、eval(str):将字符串str当成有效的表达式来求值并返回计算结果(整型)
num2 = eval("123")
print(num2)
print(type(num2))
print(eval("+123"))
print(eval("-123"))
print(eval("12+3"))
print(eval("12-3"))
9.2、len(str):返回字符串的长度
print(len("lidan is a good girl"))
9.3、lower(str):转换字符串中的大写为小写
str13 = "LIDAN is a good girl"
print(str13.lower())
print("str13 = %s" % (str13)) #字符串是不发生改变的
9.4、upper(str):转换字符串中的小写为大写
print(str13.upper())
print("lidan".upper())
9.5、swapcase():转换字符串中大写位小写,小写为大写
print(str13.swapcase())
9.6、capitalize():只有首字母大写,其余小写
str14 = "LIDAN is a good girl"
print(str14.capitalize())
9.7、title():每个单词的首字母大写
print(str14.title())
9.10、center(width[, fillchar]) [ ]不填默认为空格:返回一个指定宽度的居中字符串,fillchar为填充字符
str15 = "hello"
print(str15.center(9,"#"))
9.11、ljust(width[, fillchar]):返回一个指定宽度的左对齐字符串
print(str15.ljust(40))
9.12、rjust(width[, fillchar]):返回一个指定宽度的右对齐字符串
print(str15.rjust(40))
9.13、zfill(width):返回一个指定宽度的字符串,原字符串右对齐,前面补0
print(str15.zfill(40))
9.14、count(strc[, start][, end]):返回字符串中strc出现的次数,可以指定一个范围,默认从头到尾
str16 = "lidan is a very very good girl"
print(str16.count("very", 15, len(str16)))
9.15、find(str[, start][, end]):从左到右检测str字符串是否包含在字符串中,可以指定范围,默认从头到尾,得到的是第一次出现开始的下标,没有匹配上返回-1
print(str16.find("very"))
9.16、rfind(str[, start][, end]):从右到左检测
print(str16.rfind("very"))
9.17、index(strc[, start=0][, end=len(strc)]):跟find()一样,只不过如果strc不存在的时候会报一个异常
print(str16.index("very"))
9.18、rindex(strc[, start=0][, end=len(strc)]):跟rfind()一样,只不过如果strc不存在的时候会报一个异常
print(str16.rindex("very"))
9.19、lstrip():截掉字符串左侧指定的字符,默认为空格
str17 = " lidan is a nice girl**"
print(str17.lstrip())
9.20、rstrip():截掉字符串右侧指定的字符,默认为空格
print(str17.rstrip("*"))
9.21、strip():截取字符串左右两侧的指定字符,默认为空格
str18 = "***happy***"
print(str18.strip("*"))
9.22、ASCII码转换,转成ASCII--> ord(),转成字符-->chr()
str17 = "a"
print(ord(str17))
str18 = 97
print(chr(str18))
9.23、split(str=""[, num]):以str为分隔符截取字符串,指定mun,则仅截取num个字符串,放入列表中
str38 = "sunck**is****a***good**man"
#print(str38.split("*"))
list39 = str38.split("*")
print(list39)
c = 0
for s in list39:
if len(s) > 0:
c += 1
print(c) #统计有几个单词
9.24、splitlines([keepends]):按照('\r','\r\n',’\n‘)分割,返回列表
#keepends == True 会保留换行符
str40 = '''
sunck is a good man!
sunck is a nice man!
sunck is handsome man!
'''
print(str40.splitlines())
9.25、join(seq):以指定的字符串分隔符,将seq中的所有元素组合成一个字符
list41 = ['sunck', 'is', 'a', 'good', 'man']
str42 = " #".join(list41)
print(str42)
9.26、max()、min()
str43 = "sunck is a good man!z"
print(max(str43))
print("*"+min(str43)+"*")
9.27、replace(oldstr, newstr, count):用newstr替换oldstr,默认是全部替换,如果指定了count,只替换前count个
str44 = "sunck is a good good good man"
str45 = str44.replace("good", "nice", 1)
print(str44)
print(str45)
9.28、创建一个字符串映射表
t46 = str.maketrans("ao","5i")
#将a用5替换,将o用i替换
str47 = "sunck is a good good good man"
str48 = str47.translate(t46)
print(str48)
9.29、startswith(str, start=0, end=len(str)):在给定的范围内判断是否是以给定的字符串开头,如果没有指定范围,默认整个字符串
str49 = "sunck is a good man"
print(str49.startswith("sunck",5,16))
9.30、endswith(str, start=0, end=len(str)):在给定范围内判断是否是以给定的字符串结尾,如果没有指定范围,默认整个字符串
str50 = "sunck is a nice man"
print(str50.endswith("man"))
9.31、编码和解码
#encode(encoding="utf-8",error="strict")
str51 = "sunck is a good man开"
data52 = str51.encode("utf-8","ignore")
#ignore 忽略错误
print(data52)
print(type(data52))
#解码 注意:要与编码是的编码格式一致
str53 = data52.decode("gbk","ignore")
print(str53)
9.32、isalpha():如果字符串中至少有一个字符且所有的字符都是字母返回True,否则返回False
str54 = "sunckisagoodan"
print(str54.isalpha())
9.33、isalnum():如果字符串中至少有一个字符且所有的字符都是字母或数字返回True,否则返回False
str55 = "1a2b3"
print(str55.isalnum())
9.34、issupper():如果字符串中至少有一个英文字符且所有的字符都是大写英文字母返回True,否则返回False
print("ABC".isupper())
print("ABCa".isupper())
print("1".isupper())
print("ABC#".isupper())
9.35、islower():如果字符串中至少有一个英文字符且所有的字符都是小写英文字母返回True,否则返回False
print("abc".islower())
print("abaA".islower())
print("1".islower())
print("abc2".islower())
print("abc,".islower())
9.36、istitle():如果字符串是标题的话返回True,否则返回False
print("Sunck Is".istitle())
print("Sunck is".istitle())
print("sunck is".istitle())
9.37、isdigit():如果字符串中只包含数字字符返回True,否则返回False
print("123".isdigit())
print("123a".isdigit())
9.38、snumeric() :同上
print("123".isnumeric())
print("234a".isnumeric())
9.39、isdecimal():字符串只包含十进制字符
print("123".isdecimal())
print("123a".isdecimal())
9.40、isspace():如果字符串中只包含空格则返回True,否则返回False
print(" ".isspace())
print(" ".isspace())
print("\t".isspace())
print("\n".isspace())
print("\r".isspace())