美文网首页
Day4——str

Day4——str

作者: Devil灬 | 来源:发表于2018-12-27 21:05 被阅读0次

一、访问字符串中的值

Python中的字符串用单引号(')或双引号(")括起来,同时使用反斜杠“\”转义特殊字符。

获取单个字符语法:

字符串变量[下标]

# 获取第一个字符
print(var[0])
    
# 获取最后一个字符
print(var[-1])
字符串切片语法:

字符串[头下标:尾下标:步长]

注:
1、从头下标开始,获取到尾下标前为止,每次下标值加上步长
2、头下标,为下标,步长都可随需省略
3、下标都可越界

示例:

str = 'hello python!'
print('结果1:', str[0:-1:2])         # 从前往后取
print('结果2:', str[-1:0:-2])        # 从后往前取
print('结果3:', str[100: -100: -1])  # 下标越界

结果:

结果1: hlopto
结果2: !otpol
结果3: !nohtyp olleh

省略头下标:
字符串[:尾下标:步长]
当步长是正数,从字符串的第一个字符开始取到结束下标前为止;
当步长是负数,从字符串的最后一个字符开始取到结束下标前为止.
省略尾下标:
字符串[头下标::步长]
当步长是正数,从开始下标开始取到字符串最后一个字符为止;
当步长是负数,从开始下标开始取到字符串的第一个字符为止.

示例:

str = 'when i was young!'
print('结果4:', str[:6])      # 省略头下标
print('结果5:', str[:6:-1])   # 省略头下标,步长为负
print('结果6:', str[2:])      # 省略尾下标
print('结果7:', str[2::-1])   # 省略尾下标,步长为负
print('结果8:', str[:])       # 全部省略
print('结果9:', str[::-1])    # 让字符串倒序

结果:

结果4: when i
结果5: !gnuoy saw
结果6: en i was young!
结果7: ehw
结果8: when i was young!
结果9: !gnuoy saw i nehw

二、格式字符串

语法:

包含占位符的字符串 % (值1,值2,值3……)

占位符:

符号 描述
%c 格式化字符及其ASCII码
%s 格式化字符串
%d 格式化整数
%u 格式化无符号整型
%o 格式化无符号八进制数
%x 格式化无符号十六进制数
%X 格式化无符号十六进制数(大写)
%f 格式化浮点数字,可指定小数点后的精度
%e 用科学计数法格式化浮点数
%E 作用同%e,用科学计数法格式化浮点数
%g %f和%e的简写
%G %f 和 %E 的简写

三、字符串内建函数

序号 方法 描述
1 capitalize() 将字符串的第一个字符转换为大写
str = "goog is a good man!"
print(str.capitalize())

结果:
Goog is a good man!
序号 方法 描述
2 title() 返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
str = "goog is a good man!"
print(str.title())

结果:
Goog Is A Good Man!

序号 方法 描述
3 upper() 转换字符串中的小写字母为大写
str = "goog IS a good man!"
print(str.upper())

结果:
GOOG IS A GOOD MAN!

序号 方法 描述
4 lower() 转换字符串中所有大写字符为小写
str = "goog IS a good MAN!"
print(str.lower())

结果:
goog is a good man!

序号 方法 描述
5 swapcase() 将字符串中大写转换为小写,小写转换为大写
str = "goog IS a good MAN!"
print(str.swapcase())

结果:
GOOG is A GOOD man!

序号 方法 描述
6 len(str) 返回字符串长度
str = "goog is a good man!"
print(len(str))

结果:
19

序号 方法 描述
7 eval(str) 将字符串str当成有效的表达式来求值并返回计算结果
str = '12+3'
print(eval(str))

结果:
15

序号 方法 描述
8 max(str) 返回字符串 str 中最大的字母
str = "man"
print(max(str))

结果:
n

序号 方法 描述
9 min(str) 返回字符串 str 中最小的字母
str = "man"
print(min(str))

结果:
a

序号 方法 描述
10 center(width[, fillchar]) 返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格
str = "goog is a good man!"
print(str.center(30, '*'))

结果:
*****goog is a good man!******

序号 方法 描述
11 ljust(width[, fillchar]) 返回一个指定的宽度 width 左对齐的字符串,fillchar 为填充的字符,默认为空格
str = "goog is a good man!"
print(str.ljust(30, '*'))

结果:
goog is a good man!***********

序号 方法 描述
12 rjust(width[, fillchar]) 返回一个指定的宽度 width 右对齐的字符串,fillchar 为填充的字符,默认为空格
str = "goog is a good man!"
print(str.rjust(30, '*'))

结果:
***********goog is a good man!

序号 方法 描述
13 zfill (width) 返回长度为 width 的字符串,原字符串右对齐,前面填充0
str = "goog is a good man!"
print(str.zfill(30))

结果:
00000000000goog is a good man!

序号 方法 描述
14 count(str[, start][, end]) 返回 str 在 string 里面出现的次数,可以指定一个范围,默认从头到尾
str = "goog is a good man!"
print(str.count('g'))
print(str.count('g', 5, len(str)))

结果:
3
1

序号 方法 描述
15 lstrip() 删除字符串左边的空格或指定字符
str = "******goog is a good man!**"
print(str.lstrip('*'))

结果:
goog is a good man!**

序号 方法 描述
16 rstrip() 删除字符串右边的空格或指定字符
str = "******goog is a good man!**"
print(str.rstrip('*'))

结果:
******goog is a good man!

序号 方法 描述
17 strip() 删除字符串两边的空格或指定字符(且字符不分先后顺序)
str = "******goog is a good man!**"
print(str.strip('*'))

结果:
goog is a good man!

序号 方法 描述
18 join(seq) 以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
str1 = "goog is a good man!"
str2 = ["goog", "is", "a", "good", "man"]
print('*'.join(str1))
print("-".join(str2))

结果:
g*o*o*g* *i*s* *a* *g*o*o*d* *m*a*n*!
goog-is-a-good-man

序号 方法 描述
19 find(str[, start][, end]) 从左向右检测str是否包含在字符串中,可以指定范围,默认从头到尾。如果包含返回开始的索引值,否则返回-1
str = "goog is a good man!"
print(str.find("goo"))
print(str.find("goo", 15, len(str)))

结果:
0
-1

序号 方法 描述
20 rfind(str[, start][, end]) 类似于 find()函数,不过是从右边开始查找
str = "goog is a good man!"
print(str.rfind("goo"))
print(str.rfind("goo", 15, len(str)))

结果:
10
-1

序号 方法 描述
21 index(str[, start][, end]) 跟find()方法一样,只不过如果str不在字符串中会报一个异常
str = "goog is a good man!"
print(str.index("goo", 3, len(str)))

结果:
10

序号 方法 描述
22 rindex(str[, start][, end]) 类似于 index(),不过是从右边开始
str = "goog is a good man!"
print(str.rindex("goo", 3, len(str)))

结果:
10

序号 方法 描述
23 split(str="", num=string.count(str)) num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num 个子字符串
str = "goog**is***a*good**man"
print(str.split("*"))
print(str.split("*", 2))

结果:
['goog', '', 'is', '', '', 'a', 'good', '', 'man']
['goog', '', 'is***a*good**man']

序号 方法 描述
24 splitlines([keepends]) 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,参数 keepends 默认为 False,不包含换行符,如果为 True,则保留换行符
str = '''goog is a good man
goog is a nice man
goog is a handsome man
'''
print(str.splitlines())
print(str.splitlines(True))

结果:
['goog is a good man', 'goog is a nice man', 'goog is a handsome man']
['goog is a good man\n', 'goog is a nice man\n', 'goog is a handsome man\n']

序号 方法 描述
25 replace(oldstr,newstr[,count]) 用newstr替换oldstr,默认是全部替换。如果指定了count,那么只替换前count个
str = "goog is a good good good man"
print(str.replace("good", "nice"))
print(str.replace("good", "nice", 2))

结果:
goog is a nice nice nice man
goog is a nice nice good man

序号 方法 描述
26 maketrans() 创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
27 translate(table, deletechars="") 根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中
table = str.maketrans("gn", "26")       #g——>2   n——>6
str = "goog is a  good good man".translate(table)
print(str)

结果:
2oo2 is a  2ood 2ood ma6

序号 方法 描述
28 startswith(str[, start=0][,end=len(string)]) 检查字符串是否是以 str开头,是则返回 True,否则返回 False。如果 start 和 end 指定值,则在指定范围内检查
str= "goog is a good man"
print(str.startswith("goog"))
print(str.startswith("goog", 1, 16))

结果:
True
False

序号 方法 描述
29 endswith(str[, start=0][,end=len(string)]) 检查字符串是否以 str结束,如果 start 或者 end 指定则检查指定的范围内是否以 str 结束,如果是返回 True,否则返回 False
str = "goog is a good man"
print(str.endswith("man"))
print(str.endswith("man", 2, 15))

结果:
True
False

序号 方法 描述
30 isalpha() 如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False
print("goog is a good man".isalpha())
print("googisagoodman".isalpha())

结果:
False
True

序号 方法 描述
31 isalnum() 如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False
print("123b".isalnum())
print("123%".isalnum())

结果:
True
False

序号 方法 描述
32 isupper() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
print("ABC".isupper())
print("ABC1".isupper())
print("ABC%$".isupper())
print("ABC%$旭".isupper())
print("ABC%$a".isupper())
print("%$旭".isupper())

结果:
True
True
True
True
False
False

序号 方法 描述
33 islower() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
print("abc1@旭".islower())

结果:
True

序号 方法 描述
34 isdigit() 如果字符串只包含数字字符则返回 True 否则返回 False
print("123".isdigit())
print("123一二".isdigit())

结果:
True
False

序号 方法 描述
35 isnumeric() 如果字符串中只包含数字字符,则返回 True,否则返回 False(中文数字也可以)
print("1234一二".isnumeric())

结果:
True

序号 方法 描述
36 isdecimal() 检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false
print("123".isdecimal())
print("123a".isdecimal())

结果:
True
False

序号 方法 描述
37 isspace() 如果字符串中只包含空白,则返回 True,否则返回 False
print(" ".isspace())
print("\n".isspace())

结果:
True
True

序号 方法 描述
38 istitle() 如果字符串是标题化的(见 title())则返回 True,否则返回 False
print("Goog Is".istitle())
print("Goog is".istitle())

结果:
True
False
序号 方法 描述
4 bytes.decode(encoding="utf-8", errors="strict") Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。
5 encode(encoding='UTF-8',errors='strict') 以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'
7 expandtabs(tabsize=8) 把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8

相关文章

网友评论

      本文标题:Day4——str

      本文链接:https://www.haomeiwen.com/subject/wsollqtx.html