字符串高级用法

# 字符串内嵌函数
# 1、eval(str): 将str当成有效的表达式来计算,将计算的结果返回
print(eval("123"))   # 123
print(eval("+123"))   # 123
print(eval("-123"))   # -123
print(eval("1 + 2"))  # 1 + 2    --> 3
print(eval("12 - 3"))  # 12 - 3   --> 9
# print(eval("abc124"))  # 失败
num = eval("123")
print(type(num))  # int

# 2、len(str)  返回字符串的长度  字符串中字符的个数  必须记住
str1 = "123456789"  # 9
len1 = len(str1)
print(len1)

# 3、字母大小写转换   不影响原始字符串
str2 = "heLLo hi Nihao SawaDiKa"
print(str2)
# lower()  将字符串中的字母全部小写
print(str2.lower())
# upper()  将字符串中的字母全部大写
print(str2.upper())
# swapcase()  将字符串中的大写字母转为小写,小写字母转为大写
print(str2.swapcase())
# capitalize()  字符串中的第一个字母大写,其他小写
print(str2.capitalize())
# title()  将字符串中的每隔单词的首字母大写,其他字母小写
print(str2.title())

# 4、返回一个指定长度的字符串   不影响原始字符串
str3 = "pyc"
# str.center(width [,fillchar]) 返回一个指定长度width的字符串,str这个
# 字符串在中间,其他位置用fillchar补全,默认是空格
print(str3.center(15, "*"))
# str.ljust(width [,fillchar]) 返回一个指定长度width的字符串,str这个
# 字符串在左边,其他位置用fillchar补全,默认是空格
print(str3.ljust(15, "*"))
# str.rjust(width [,fillchar]) 返回一个指定长度width的字符串,str这个
# 字符串在右边,其他位置用fillchar补全,默认是空格
print(str3.rjust(15, "*"))
# str.zfill(width) 返回一个指定长度width的字符串,str这个
# 字符串在右边,其他位置用0补全
print(str3.zfill(15))

# 5、string.count(str [,begin, end]) :返回string里面str出现的次数,
# 如果begin与end有值,查找该范围内的次数
str4 = "good very well good good very"
print(str4.count("good"))
print(str4.count("good", 3, 22))

# 6、检测字符串中有没有另一个字符串
# string.find(str [,begin, end]) 检测string中有没有str,如果存在返回
# 第一次出现的下标,如果begin与end有值,查找该范围
# 当找不到时,返回-1
# 从左向右查找
print(str4.find("very"))
print(str4.find("very", 10, 31))
print(str4.find("qwert"))

# # string.rfind(str [,begin, end]) 检测string中有没有str,如果存在返回
# 第一次出现的下标,如果begin与end有值,查找该范围
# 当找不到时,返回-1
# 从右向左查找
print(str4.rfind("very"))

# string.index(str [,begin, end]) 检测string中有没有str,如果存在返回
# 第一次出现的下标,如果begin与end有值,查找该范围
# 当找不到时,返回Error,程序报错
# 从左向右查找
print(str4.index("very"))
# print(str4.index("qwer"))

# string.rindex(str [,begin, end]) 检测string中有没有str,如果存在返回
# 第一次出现的下标,如果begin与end有值,查找该范围
# 当找不到时,返回Error,程序报错
# 从右向左查找
print(str4.rindex("very"))

# 7、截掉字符串指定位置的元素   没有影响原始字符串
str5 = "       MM is Lily        "
str6 = "#######GG is Tomy########"
# string.lstrip([str])  截掉字符串string左边位置的指定的字符串str元素,
# 默认str为空格
print(str5.lstrip())
print(str6.lstrip("#"))
# string.rstrip([str])  截掉字符串string右边位置的指定的字符串str元素,
# 默认str为空格
print(str5.rstrip())
print(str6.rstrip("#"))
# string.strip([str])  截掉字符串string左边及右边位置的指定的字符串
# str元素,默认str为空格
print(str5.strip())
print(str6.strip("#"))
print(str5)
print(str6)
# str6.strip("#")  有返回值 返回更改过后的字符串
# str7 = str6.strip("#")
# print(str7)
# print(str6.strip("#"))
# len(str7)
# len(str6.strip("#"))

# 8、将字符转为asc,将asc转为字符
str7 = 'A'
print(str7)   # A
# ord(str)  将字符转为asc
print(ord(str7))  # 65
# chr(int)  将asc转为字符
str8 = chr(66)
print(str8)  # B
str9 = "我"
print(ord(str9))
print(chr(25105))

# 9、切割字符串
str10 = "MM*GG*TT*HH*QQ"
# string.split(str [,num]) 以str切割string这个字符串,返回一个列表列表
# 类型的数据,列表中的元素为切割后的字符串
# 如果num有值,那么以str切割num次
print(str10.split("*"))  # ['MM', 'GG', 'TT', 'HH', 'QQ'] list 列表
print(str10.split("*", 2))

#string.splitlines([boolean]) 按照行切割(\n  \r  \n\r),返回一个以行为
# 单位的元素列表
# boolean如果为False,不保留换行符;如果为True,保留换行符;默认为False
str11 = "abc\ndef\n123\n789"
# 多行文本
str12 = '''qwe
rty
uio
asd
'''
print(str11)  # 4行
print(str11.splitlines())
print(str11.splitlines(False))
print(str11.splitlines(True))
print(str12)
print(str12.splitlines())

# 10、链接字符串
# string.join(sep)  以指定的string作为连接符,将sep里面的元素拼接到一起
str13 = "*"
list13 = ["hello", "good", "man"]
print(str13.join(list13))

# 11、返回字符中最大的字母或最小的字母
str14 = "aAsdfghjkloiuyt"
# max()  返回字符中最大的字母
print(max(str14))
# min() 返回字符中最小的字母
print(min(str14))

# 12、替换字符串
# string.replace(old, new [, num])将string中的old旧字符串替换成new新
# 字符串,如果num有值,最多替换num次      记住
str15 = "nicegood well good man nice nice good nice man"
print(str15.replace("nice", "handsome"))
print(str15.replace("nice", "handsome", 2))
print(str15)

# str.maketrans() 创建一个字符映射表   了解
# 如果里面写两个参数,第一个参数为字符串,表示即将转换的字符;
# 第二个参数也要为字符串,表示字符转换的目标字符;
# 两个字符串的字符个数一定要一致
t = str.maketrans("abc", "123")
# 如果只有一个参数,参数类型为字典类型,key为即将转换的字符;
# value为字符转换的目标字符
t1 = str.maketrans({"a" : "1", "b" : "5"})
str16 = "qweawwbuucttabjjcd"
# string.translate(t)  根据t给出的映射表,替换string中的字符
print(str16.translate(t))
print(str16.translate(t1))

# 13、用于判断的函数
# str17 = ""
# print(str17.isalpha())
# 13.1、isalpha()  字符串中至少有一个字符,并且所有字符都是字母,
# 返回True,否则返回False   记住
# print("".isalpha())  # F
# print("abc".isalpha())  # T
# print("abc123".isalpha())  # F

# 13.2、isupper()  字符串中至少有一个是区分大小写的字符,并且所有字符都是大写,
# 返回True,否则返回False
print("abc".isupper())  # F
print("ABC".isupper())   # T
print("A123".isupper())   # T
print("abcQWE".isupper())  # F

# 13.3、islower()  字符串中至少有一个是区分大小写的字符,并且所有字符都是小写,
# 返回True,否则返回False
print("abc".islower())  # T
print("Abc".islower())  # F

# 13.4、istitle() 字符串中至少有一个是区分大小写的字符,
# 并且所有字符都是标题化,返回True,否则返回False
print("qer".istitle())   # F
print("Abc sdf".istitle())  # F
print("Abs Sdf".istitle())  # T

# 13.5、isalnum()  字符串中至少有一个字符,并且所有字符都是字母或数字,
# 返回True,否则返回False   记住
print("123abc".isalnum())  # T
print("123".isalnum())  # T
print("abc".isalnum())  # T
print("abc!@$$".isalnum())  # F

# 13.6、isdigit()  字符串中至少有一个字符,并且所有字符都是数字,
# 返回True,否则返回False   记住
print("abc".isdigit())  # F
print("123".isdigit())  # T
print("123abc".isdigit())  # F

# 13.7、isspace() 字符串中至少有一个字符,并且所有字符都是空格,
# 返回True,否则返回False
print("     ".isspace())  # T
print("   abc".isspace())  # F

# 13.8、string.startswith(str [, begin, end])   判断string是否以str开头,是返回True,
# 否则返回False  , begin, end指定范围查找   记住
str20 = "http://www.baidu.com"
print(str20.startswith("ht"))  # T
print(str20.startswith("http://"))  # T
print(str20.startswith("ttp"))  # F
print(str20.startswith("ttp",1, 12))  # T

# 13.9、string.endswith(str [, begin, end])   判断string是否以str开头,是返回True,
# 否则返回False  , begin, end指定范围查找    记住
print(str20.endswith("com"))  # T
print(str20.endswith(".com"))  # T
print(str20.endswith("cn"))  # F
print(str20.endswith("ttp",1, 12))  # F


# 14、编码解码
str21 = "pyc是好人"
print(str21)
# string.encode(encoding)  以encoding指定的格式进行编码
print(str21.encode("utf-8"))
print(str21.encode("GBK"))
# string.decode(encoding)  以encoding指定的格式进行编码
str22 = str21.encode("utf-8")
print(str22.decode("utf-8"))

猜你喜欢

转载自blog.csdn.net/qiushuidongshi/article/details/81507194