Python语法-基本数据类型-字符串
- 字符串赋值
- 截取字符串或的子字符串
- 字符串的基础使用方法(常用的以*开头标注)
字符串赋值
单引号赋值
a = 'this is a string'
print(a) # this is a string```
双引号赋值
a = "this is a string"
print(a) # this is a string
三引号字符串赋值给变量(多行)
会保留字符串的换行格式
# 三单形式
a = '''this is
a string'''
print(a)
# this is
# a string
#三双形式
a = """this is
a string"""
print(a)
# this is
# a string
截取字符串或的子字符串
字符串的截取可以类似列表的方式进行根据索引进行获取,索引从0开始
截取指定位置(索引)的字符
a = "this is a string"
print(a[0]) # 截取字符串a的第0位 "t"
获取指定位置(索引)后面的所有字符
a = "this is a string"
print(a[1:]) # 获取字符串a索引为1及1之后的所有字符 "his is a string"
截取指定位置(索引)前面的所有字符
a = "this is a string"
print(a[:2]) # 获取字符串a索引为2但不包含2之前的所有字符 "th"
获取所有的字符
a = "this is a string"
print(a[:]) # 获取字符串a的所有字符 相当于print(a)
获取指定位置(索引区间)内的字符
a = "this is a string"
print(a[1:3]) # 获取字符串a索引从1到3(此处区间为闭后开区间)的所有字符 "hi"
获取逆向位置(索引)的单个字符
字符串索引从左往右从0开始,从右往左从-1开始
a = "this is a string"
print(a[-1]) # 获取字符串a索引为-1的字符串 "g"
获取逆向位置(索引)前面的所有字符
a = "this is a string"
print(a[:-1]) # 获取字符串a索引为-1外的其他所有索引下的字符 "this is a strin"
获取逆向位置(索引区间)内的所有字符
a = "this is a string"
print(a[-3:-1]) # 获取字符串a索引为-3 到-2内的所有字符,逆向一样遵循前闭后开区间原则 "in"
字符串的基础使用方法(常用的以*开头标注)
*strip()
删除开头和结尾的空格的空白字符
a = " this is a string "
print(a.strip())
#结果为"this is a string" 前后空格被去除
lstrip()
删除开头(左侧)的空白字符 (可以记忆为left + strip => lstrip)
a = " this is a string "
print(a.lstrip())
#结果为"this is a string " 开头(字符串左侧)空格被去除
rstrip()
删除结尾(右侧)的空白字符 (可以记忆为right + strip => rstrip)
a = " this is a string "
print(a.rstrip())
#结果为" this is a string" 结尾(字符串右侧)空格被去除
lower()
字符串转小写
a = "This is a String"
print(a.lower())
#结果为"this is a string" 字符串全部转为小写
upper()
字符串转大写
a = "This is a String"
print(a.upper())
#结果为"THIS IS A STRING" 字符串全部转为大写
capitalize()
将字符串的首字符转大写
a = "this is a string"
print(a.capitalize())
#结果为"This is a string"
title()
将字符串的每个单词的首字母转换为大写
a = "this is a string"
print(a.title())
#结果为"This Is A String"
*index()
- index(str):获取指定字符在字符串内的首次出现的索引
- index(str,start,end):获取指定字符在字符串内的指定索引区间首次出现的索引
a = "this is a string"
print(a.index("h"))
#结果为1, "h" 在字符串a中只有一个,索引为1
print(a.index("i"))
#结果为2, "i" 在字符串a中有三个,但是index()方法返回第一次出现的索引
print(a.index("k"))
#当使用index()方法查找一个字符不存在于原字符串中时,方法会报错
print(a.index("i",0,6))
#结果为2, "i" 在a的索引区间[0,6)内有两个,但是index()方法返回指定区间内最后第一次出现的索引
*rindex()
index方法操作相似,不过返回的是最后一个匹配的字符串的索引
a = "this is a string"
print(a.rindex("i"))
#结果为13, "i" 在字符串a中有三个,最后一个索引为13
print(a.rindex("i",0,6))
#结果为5, "i" 在字符串a的[0,6)区间中有两个,指定区间内最后最后一个索引为5
print(a.rindex("k"))
#当使用rindex()方法查找一个字符不存在于原字符串中时,方法会报错
*find()
find方法和index方法基本相同,
唯一区别的是,index查找不到会出现报错
a = "this is a string"
print(a.find("h"))
#结果为1, "h" 在字符串a中只有一个,索引为1
print(a.find("i"))
#结果为2, "i" 在字符串a中有三个,但是find()方法返回第一次出现的索引
print(a.find("k"))
#当使用find()方法查找一个字符不存在于原字符串中时,方法不会报错,返回值为-1
print(a.find("i",0,6))
#结果为2, "i" 在a的索引区间[0,6)内有两个,但是find()方法返回指定区间内最后第一次出现的索引
*rfind()
返回的字符串最后出现的位置,如果没有匹配则返回为-1
a = "this is a string"
print(a.rfind("i"))
#结果为13, "i" 在字符串a中只有三个,最后一个索引为13
print(a.rfind("k"))
#当使用rfind()方法查找一个字符不存在于原字符串中时,方法不会报错,返回值为-1
print(a.rfind("i",0,6))
#结果为5, "i" 在a的索引区间[0,6)内有两个,但是rfind()方法返回指定区间内最后出现的索引
*split()
将字符串根据指定的分隔符进行分割,返回列表类型
a = "this is a string"
print(a.split(" "))
#将字符串a按照空格拆分,结果为['this', 'is', 'a', 'string']
print(a.split("k"))
# 如果拆分的字符串不存在于原字符串中,组返回的列表中只有一个元素,就是a
# 结果为 ['this is a string']
*replace()
将字符串中的某个字符全部替换为指定字符
a = 'this is a string'
print(a.replace("i","k"))
#结果为 "thks ks a strkng"
print(a.replace("k","f"))
# 当想要替换的字符不存在于原字符串中,则原字符串不变
# 结果为 this is a string
*count()
计算字符串中指定字符串出现的次数
a = 'this is a string'
print(a.count("i"))
# 结果为3 "i"在a中出现3次
print(a.count("k"))
# 当指定的字符不存在于原字符串中时,返回出现0次 结果为0
center()
使用指定的字符【默认空格】,进行居中对齐,
center(num,str):
num为对齐后字符总长度
str为指定的对齐字符
a = 'china'
a1 = a.center(50)
#结果为: china
a2 = a.center(50,'*')
#结果为:**********************china***********************
*endswith()
判断字符串是否以指定的字符结尾,是则返回为true,默认为false
a = "this is a string"
print(a.endswith("g"))
# 结果为 True
print(a.endswith("ing"))
# 结果为 True
print(a.endswith("a"))
# 结果为 False
print(a.endswith("k"))
# 结果为 False
*startswith()
判断字符串是否以指定的字符进行开头,是则返回为True,默认返回False
a = "this is a string"
print(a.endswith("t"))
# 结果为 True
print(a.endswith("th"))
# 结果为 True
print(a.endswith("a"))
# 结果为 False
print(a.endswith("k"))
# 结果为 False
*isalnum()
判断字符串中的所有字符是否都是字母数字,是则返回为True,默认返回False
a = "this is a string"
print(a.isalnum())
# 结果为 True
a = "this is a string123"
print(a.isalnum())
# 结果为 True
a = "this - is a string"
print(a.isalnum())
# 结果为 False
*isalpha()
判断字符不能为空,并且所有字符都是字母,是则返回为True,默认返回False
a = "this is a string"
print(a.isalpha())
# 结果为 True
a = "this is a string123"
print(a.isalpha())
# 结果为 False
*isdigit()
判断字符串是否只包含数字,是则返回为True,否则返回为False
a = "123456"
print(a.isdigit())
#结果为True
a = "123 456"
# 结果为 False 包含空格
*isnumeric()
判断字符串是否只包含数字字符,是则返回为True,否则返回为False
a = "123"
print(a.isnumeric())
# 结果为 True
a = "1.23"
print(a.isnumeric())
# 结果为 False 存在字符"."(点)
istitle()
判断字符串是否是title格式,是则返回为True,否则返回为False
(单词首字符是否大写)
a = "This Is A String"
print(a.istitle())
# 结果为 True
a = "this Is A String"
print(a.istitle())
# 结果为 False
*islower()
判断是否全部小写,是则返回为True,否则返回为False
a = "this is a string"
print(a.islower())
# 结果为 True
a = "this Is A String"
print(a.islower())
# 结果为 False
isupper()
判断字符串是否全部大写,是则返回为True,否则返回为False
a = "THIS IS A STRING"
print(a.islower())
# 结果为 True
a = "this Is A String"
print(a.islower())
# 结果为 False
isspace()
判断字符串中是否只包含空格,是则返回为True,否则返回为False
a = " "
print(a.isspace())
# 结果为 True
a = "1 2 "
print(a.isspace())
# 结果为 False
a = ""
print(a.isspace())
# 结果为 False
*len(str)
获取字符串的长度
a = "this is a string"
print(len(a))
# 结果为16
*join()
将一个有序的列表,按指定的字符进行合并成一个新的字符串
a = ["this","is","a","string"]
print(" ".join(a))
#结果为 "this is a string"
print("#".join(a))
#结果为 "this#is#a#string"
max()
获取字符串中最大的字母
a = 'abcdfefdga'
print(max(a))
# 结果为"g"
min()
获取字符串中最小的字母
a = 'abcdfefdga'
print(min(a))
# 结果为"a"
zfill()
返回指定长度的字符串,原字符串向右对其,前面补充0
a = "1"
print(a.zfill(3))
#结果为 "001"
*format()
字符串格式化
输出
a = "178.5"
print("My height is {0}cm".format(a))
# 结果为 "My height is 178.5cm"
‘{:.2f}’.format()
保留两位小数
a = 178.5
print("My height is %scm" % '{:.2f}'.format(a))
#结果为 My height is 178.50cm
‘{:+.2f}’.format()
带符号保留两位小数
a = -178.5
print("length is %s" % '{:+.2f}'.format(a))
#结果为 length is -178.50
‘{:.0f}’.format()
不保留小数
a = 178.5
print("My height is %scm" % '{:.0f}'.format(a))
#结果为 My height is 178cm
‘{:x>5d}’.format()
左边填充,5为填充后总长度,0为填充字符,支持自定义
a = '{:0>5d}'.format(123)
print(a)
#结果为 "00123"
‘{:x<5d}’.format()
右边填充,5为填充后总长度,0为填充字符,支持自定义
a = '{:0<5d}'.format(123)
print(a)
#结果为 "12300"
‘{:,}’.format()
以逗号作为分隔符,常用于金额千分位的表达
a = '{:,}'.format(123456789)
print(a)
#结果为 "123,456,789"
‘{:.2%}’.format()
百分比格式
a = 0.123
print('{:.2%}'.format(a))
# 结果为 "12.30%"
a = 0.12345
print('{:.2%}'.format(a))
# 结果为 "12.35%" 会四舍五入
a = 0.12345
print('{:.3%}'.format(a))
# 结果为 "12.345%"
‘{:>10d}’.format()
右对齐.10则为对齐后总长度
a = '{:>10d}'.format(12)
print(a)
# 结果为" 12"
‘{:<10d}’.format()
左对齐.10则为对齐后总长度
a = '{:<10d}'.format(12)
print(a)
# 结果为"12 "
‘{:^10d}’.format()
中间对齐.10则为对齐后总长度
a = '{:^10d}'.format(12)
print(a)
# 结果为" 12 "
字符串遍历
使用for循环遍历字符串中的每一个字符
a = 'this is a string'
for s in a:
print(s)
#结果为:
t
h
i
s
i
s
a
s
t
r
i
n
g