Python基础—数据类型字符串

定义:有序的字符集合

注意:字符串的单引号和双引号都无法取消特殊字符的含义,如果想让引号内所有字符均取消特殊意义,在引号前面加r,如name=r’l\thf’

字符串的格式化输出

#占位符%s 表示字符串,%d 表示整数 ,%f 表示浮点数
srt = "name = %s,age = %d,job = %s,salary = %f" % ("name", 20, "job", 200.0)
#format函数
srt1 = "name = {**0},age = {1},job = {2},salary = {3}".format("hk", 20, "hk", 200)

字符串的拼接

s1 = "Python "
s2 = "iS Funny"
使用+拼接字符串
s3 = s1 + s2
print(s3)              		# Python iS Funny

字符串拼接数字

s1 = "这是数字: "
p = 99.8
#字符串直接拼接数值,程序报错
print(s1 + p)
#使用str()将数值转换成字符串
print(s1 + str(p))
使用 join()方法拼接字符串

语法 :newstr = str.join(iterable)
newstr:表示拼接后生成的新字符串;
str:用于指定拼接时的分隔符;
iterable:可迭代对象(序列),如列表、元组、字符串等

将列表中的字符串拼接为新字符串

list = ['www','luffycity','com']
newstr =  '.'.join(list)
print(newstr)                               # www.luffycity.com

将元组中的字符串拼接为新字符串

tuple = ('www','luffycity','com')
newstr =  '.'.join(tuple)
print(newstr)                               # www.luffycity.com

将字符串中的字符隔开

str = "Python"
newstr =  '-'.join(str)
print(newstr)                              			 # P-y-t-h-o-n

== 注意:如果序列中的元素字符串类型,就会报错(int类型不能与字符串直接拼接)

str = (1,2,3)
newstr =  '-'.join(str)
print(newstr)                               # TypeError: sequence item 0: expected str instance, int found

字符串的切片

语法格式:string[start : end : step] (顾头不顾尾)
string:要截取的字符串;
start:表示要截取的第一个字符所在的索引(截取时包含该字符)。如果不指定,默认为 0,也就是从字符串的开头截取;
end:表示要截取的最后一个字符所在的索引(截取时不包含该字符)。如果不指定,默认为字符串的长度
step:指的是从 start 索引处的字符开始,每 step 个距离获取一个字符,直至 end 索引出的字符。为负数时表示反向截取输出

s = "luffyisverygood"
# 获取s中索引2处的字符
print(s[2])                 # 输出f
# 获取s中从右边开始,索引4处的字符
print(s[-4])                # 输出g
# 获取s中从索引3处到索引5处(不包含)的子串
print(s[3: 5])              # 输出 fy
# 获取s中从索引3处到倒数第5个字符的子串
print(s[3: -5])             # 输出fyisver
# 获取s中从倒数第6个字符到倒数第3个字符的子串
print(s[-6: -3])            # 输出ryg
#每隔 1 个,取一个字符
print(s[::2])               # 输出 lfyseyod
# 获取s中从索引5处到结束的子串
print(s[5: ])               # 输出isverygood
# 获取s中从倒数第6个字符到结束的子串
print(s[-6: ])              # 输出rygood
# 获取s中从开始到索引5处的子串
print(s[: 5])               # 输出luffy
# 获取s中从开始到倒数第6个字符的子串
print(s[: -6])              # 输出luffyisve
# 获取反向字符串
print(s[::-1])              # doogyrevsiyfful
# 获取s中第5位元素左边的字串
print(s[5::-1])             # iyfful

字符串in判断是否包含某个字串

print("dfk" in "412390dfkla")  # True

字符串的分割

语法:str.split(sep,maxsplit)
sep:用于指定分隔符,可以包含多个字符。此参数默认为 None,表示所有空字符,包括空格、换行符“\n”、制表符“\t”等。
maxsplit:可选参数,用于指定分割的次数,最后列表中子串的个数最多为 maxsplit+1

s = "www. luffycity. com"
# 采用默认分隔符进行分割
print(s.split())            # ['www.', 'luffycity.', 'com']
# 采用多个字符进行分割
print(s.split("ycity."))    # ['www. luff', ' com']
# 采用.进行分割
print(s.split("."))         # ['www', ' luffycity', ' com']
# 采用w进行分割,最多分割2次
print(s.split("w",2))         # ['', '', 'w. luffycity. com']

字符串常用内建方法

string = "luFfy is veRy goOd"
# 把字符串的第一个字符大写,其余小写
print(string.capitalize())      # Luffy is very good
# 返回一个原字符串居中,并使用-填充至长度 20 的新字符串
print(string.center(20,"-"))    # -luFfy is veRy goOd-
# 返回 str 在 string 里面指定范围出现的次数出现的次数,
print(string.count("y",0,4))    # 0
# 检查字符串是否在指定检查的范围内是以y结束,如果是,返回 True,否则返回 False;startwith()
print(string.endswith("y", 0, 5))       # True
# 把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8。
print(string.expandtabs(tabsize=8))     # luFfy is veRy goOd
# 检测 str 是否是否包含在指定范围内,如果是返回开始的索引值,否则返回-1;string.rfind(str, beg=0,end=len(string))
print(string.find("fy", 0, len(string)))  # 3
# 返回索引值,如果str不在 string中会报一个异常
# string.index(str, beg=0, end=len(string));反之string.rindex( str, beg=0,end=len(string))
print(string.index("fy", 0, len(string))) # 3
# 如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
print(string.isalnum()) # False
# 如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
print(string.isalpha()) # False
# 如果 string 只包含十进制数字则返回 True 否则返回 False.
print(string.isdecimal()) # False
# 如果 string 只包含数字则返回 True 否则返回 False.
print(string.isdigit()) # False
# 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
print(string.islower()) # False
# 如果 string 中只包含数字字符,则返回 True,否则返回 False
print(string.isnumeric()) # False
 # 如果 string 中只包含空格,则返回 True,否则返回 False.
print(string.isspace()) # False
# 如果 string 是标题化的(单词首字符都是大写)则返回 True,否则返回 False
print(string.istitle())# False
# 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
print(string.isupper())# False
# 转换 string 中所有大写字符为小写
print(string.lower())
# 返回字符串 str 中最大的字母
print(max(string))
# 返回字符串 str 中最小的字母。
print(min(string))
# 从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组 (string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string.
# 类似于 partition()函数,不过是从右边开始查找,string.rpartition(str)
print(string.partition("fy"))#('luF', 'fy', ' is veRy goOd')
# 把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次,string.replace(str1, str2,  num=string.count(str1))
print(string.replace("is","aa", 1))   #luFfy aa veRy goOd
# 返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写
print(string.title())   #Luffy Is Very Good
# 转换 string 中的小写字母为大写
print(string.upper())   #LUFFY IS VERY GOOD
# 移除头尾中在序列"sdasda"中存在的字符
print(string.strip("lsda")) #uFfy is veRy goO

你可能感兴趣的:(Python学习)