字符串
1、字符串基本操作
字符串中索引字符
str="I Love NCEPU"
print(str[3])
print(str[:6])
输出:
o
I Love
注:空格也算一个字符。
拼接字符串:运用切片的方法插入字符串:
str="I Love NCEPU"
str1=str[:6]+"插入的字符串"+str[6:]
print(str1)
2、字符串各种内置方法
- capitalize:把字符串第一个字符改为大写
str="ncepu"
str1=str.capitalize()
print(str1)
- casefold():将字符串所有字符改为小写
str="NCEPU"
str1=str.casefold()
print(str1)
- center(width)
- count(sub,start,end)
str="abcfefggfed"
n1=str.count("g")
n2=str.count("f",0,3)
n3=str.count("f",0,4)
print(n1)
print(n2)
print(n3)
注意:end的取值。
- encode()
- endswith()
str="abcfefggfed"
print(str.endswith("ed"))
print(str.endswith("e",0,4))
输出为:
True
False
- expandtabs()
str="a\tb\tc\td\t"
print(str.expandtabs())
等…
汇总
语句 | 作用 |
---|---|
capitalize() | 把字符串第一个字符改为大写 |
casefold() | 将字符串所有字符改为小写 |
center(width) | 将字符串居中,并使用空格填充长度至width的新字符串 |
count(sub,start,[end]) | 返回sub在字符串中出现的次数,start,end表示参数范围,可选 |
encode(encoding=‘UTF-8’,errors=‘strict’) | 以encoding指定的编码格式对字符串进行编码 |
endswith(sub,start,end) | 检查字符串是否以sub子字符串结束,如果是,返回True,不是,返回False |
expandtabs() | 把字符串中的tab符号(\t)转换为空格,如不指定参数,默认的空格就是tabsize=8 |
find(sub,start,end) | 检测sub是否包含于字符串中,如果有则返回索引值,否则返回-1 |
index(sub,start,end) | 作用与find类似,但如果字符串中没有指定字符会报错 |
isalnum() | 如果字符串至少有一个字符,并且所有字符都是字母或数字则返回True,否则返回False |
isalpha() | 如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False |
isdecimal() | 检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false |
isdigit() | 如果字符串只包含数字则返回 True 否则返回 False |
islower() | 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False |
isnumeric() | 如果字符串中只包含数字字符,则返回 True,否则返回 False |
isspace() | 如果字符串中只包含空白,则返回 True,否则返回 False |
istitle() | 如果字符串是标题化的(所有单词均是以大写开始,其余字母均小写)则返回 True,否则返回 False |
isupper() | 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False |
join(seq) | 以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串 |
len(string) | 返回字符串长度 |
ljust(width[, fillchar]) | 返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格 |
lower() | 转换字符串中所有大写字符为小写 |
lstrip() | 截掉字符串左边的空格或指定字符 |
maketrans() | 创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标 |
max(str) | 返回字符串 str 中最大的字母 |
min(str) | 返回字符串 str 中最小的字母 |
replace(old, new [, max]) | 把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次 |
rfind(str, beg=0,end=len(string)) | 类似于 find()函数,不过是从右边开始查找 |
rindex( str, beg=0, end=len(string)) | 类似于 index(),不过是从右边开始 |
rjust(width,[, fillchar]) | 返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串 |
rstrip() | 删除字符串字符串末尾的空格 |
split(str="", num=string.count(str)) | num=string.count(str))以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串 |
splitlines([keepends]) | 按照行(’\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符 |
startswith(substr, beg=0,end=len(string)) | 检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查 |
strip([chars]) | 在字符串上执行 lstrip()和 rstrip() |
swapcase() | 将字符串中大写转换为小写,小写转换为大写 |
title() | 返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle()) |
translate(table, deletechars="") | 根据 str 给出的表(包含 256 个字符)转换 string 的字符,要过滤掉的字符放到 deletechars 参数中 |
upper() | 转换字符串中的小写字母为大写 |
zfill (width) | 返回长度为 width 的字符串,原字符串右对齐,前面填充0 |
3、字符串格式化
- format()
str="{0} love {1}".format("I","ncepu")
print(str)
str1="{a} love {b}".format(a="I",b="ncepu")
print(str1)
str2="{0} love {b}".format("I",b="ncepu")
print(str2)
str3="{{0}}".format("不打印")#输出{0}
print(str3)
- 字符串格式化符号及含义
符号 | 说明 |
---|---|
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | %f和%e的简写 |
%G | %f 和 %E 的简写 |
实例:
- %c
str="%c"%97
print(str)
print("%c %c %c"%(97,98,99))#必须有括号
输出为:
a
a b c
- %s、%d
print ("我叫 %s 今年 %d 岁!" % ('小明', 10))
输出:
我叫 小明 今年 10 岁!
等…
序列
列表、元组、字符串的共同特点:
- 都可以通过索引得到每一个元素;
- 默认索引值都是从0开始;
- 可以通过分片的方法得到一个范围内的元素的集合;
- 有很多共同的操作符(重复、拼接、成员关系操作符)。
把他们三个统称为序列。
序列常见BIF:
名称 | 说明 |
---|---|
list() | 把一个可迭代对象转换为列表 |
tuple([iterable]) | 把一个可迭代对象转化为元组 |
len(sub) | 返回sub的长度 |
max() | 返回序列中的最大值 |
min() | 返回序列中的最小值 |
sum(iterable[,start=0]) | 返回序列iterable和可选参数start的总和 |
sorted() | 排序,默认从小到大 |
reversed() | 倒置序列 |
enumerate() | 枚举[(index1,item1),[index2,item2],…] |
zip() | 返回由各个参数的序列组成的元组 |
实例:
a=list()#不加参数返回空列表
print(a)
b="ncepu"
b=list(b)
print(b)
c=(1,2,3)
c=list(c)
print(c)
输出为:
[]
['n', 'c', 'e', 'p', 'u']
[1, 2, 3]
- sum()
numbers=[1,3,38,66,423,55]
print(sum(numbers))
print(sum(numbers,4))
输出为:
586
590
- sorted()
numbers=[1,3,38,-66,423,55]
print(sorted(numbers))
- reversed()
numbers=[1,3,38,-66,423,55]
print(list(reversed(numbers)))
- enumerate()
numbers=[1,3,38,-66,423,55]
print(list(enumerate(numbers)))
输出为:
[(0, 1), (1, 3), (2, 38), (3, -66), (4, 423), (5, 55)]
- zip()
a=[1,2,3,4,5,6,7,8]
b=[4,5,6,7]
print(list(zip(a,b)))
输出:
[(1, 4), (2, 5), (3, 6), (4, 7)]
参考文献
https://www.runoob.com/python3/python3-string.html
https://www.bilibili.com/video/av4050443/?p=17