字符串
作用:用来表示文字信息
-如何表示
-单引号
-双引号
-三引号(三个单引号或者三个双引号)
-能够扩起多行信息
-单引号交错使用
-单双引号一定是配对的,单对单,双对双
1、字符串赋值
is即判断是否是同一个对象,相同则返回Ture,不同则False
执行下面赋值语句 :
a = 'banana'
b = 'banana'
a is b
Ture
#表示a和b具有相同的值,Python只创建了一个对象,a和b都指向它
2、字符串的序号
一段字符串有正向递增序号(0—n)和反向递减序号(-1—-(n+1))
3、转义字符
转义字符表达特定字符的本意
"这里有一个双引号(\")" 结果为
这里有个双引号(")
-所以反双斜杠\表示
-转义符形成一些组合,表示一些不可打印的含义
-"\b"回退 "\n"换行(光标移到下行首) "\r"回车(光标移动到本行首)
-同时不同系统换行不同
- windows:\n
-Linux: \r\n
4、字符串的格式法
把字符串按照一定格式打印或者填充
格式化由两种方法
利用百分号(%)
利用format函数
-利用百分号格式化
%d: 此处应该放入一个整数
%s: 表示此处应该放入一个字符串
-例1:
x = "I love %s"
print(x)
print( x%"you")
I love %s
I love you
-例2:
x = "I am %d years old"
print(x)
print(x%18)
I am %d years old
I am 18 years old
-例3:
x = "I am %s, i am %d years old"
print(x)
print(x%("ant", 18))
I am %s, i am %d years old
I am ant, i am 18 years old
5、format函数格式化字符串*
1、直接用format函数进行格式化
推荐使用这种方法
-槽{ }
-字符串中槽{ }默认的顺序为(0—n),对应后面format( )中各字符串
-例:
print("{:}:计算机{:}的CPU占用率为{:}%".format("2018-9-23","C","10"))
2018-9-23:计算机C的CPU占用率为10%
-也可自己编号对号入座
print("{1:}:计算机{0:}的CPU占用率为{2:}%".format("2018-9-23","C","10"))
C:计算机2018-9-23的CPU占用率为10%
2、format()方法的格式控制
{位次:填充字符对齐宽度}
引导符号
填充,用于填充的字符
对齐,<左对齐,>右对齐,^居中对齐
宽度:槽设定的输出宽度
例:
print("{0:=^20}".format("PYTHON"))
print("{0:*>20}".format("PYTHON"))
print("{0: 10}".format("PYTHON"))
=======PYTHON=======
**************PYTHON
PYTHON
数字的千位分隔符< , >
浮点数小数精度或字符串最大输出长度< .精度>
整数类型 二进制b,c,整数d,八进制o,十六进制x,X
浮点数类型十次方e,E,f,%
例:
print("{0:,.2f}".format(12345.6789))
print("{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425))
print("{0:e},{0:E},{0:f},{0:%}".format(3.14))
12,345.68
110101001,Ʃ,425,651,1a9,1A9
3.140000e+00,3.140000E+00,3.140000,314.000000%
注:{次序:千位分隔符.精度数字类型}
填充格式在数字格式之前,并且数字格式,只针对数字型处理,需要用到eval()函数等
6、字符串切片
使用<字符串>[M:N:K]根据步长K对字符串切片
表示字符串M位置到N-1位置(即N位置的前一个位置),注意字符串正向0开头
<字符串>[M:N:K],M缺失表示至开头,N缺失表示至结尾,K缺失表示默认步长为1,步长为-1时,即倒序输出
例:
print("〇一二三四五六七八九十"[:3])
print("〇一二三四五六七八九十"[1:8:2])
print("〇一二三四五六七八九十"[::-1])
print("〇一二三四五六七八九十"[10:0:-1])
〇一二
一三五七
十九八七六五四三二一〇
十九八七六五四三二一
7、字符串操作符
x + y 连接两个字符串x和y
n * x或x * n 复制n次字符串x
x in s 如果x 是s的子串,返回Ture,否则返回False
-字符串处理函数
-len(x) 长度,返回字符串x的长度
len("一二三456")
# 6
-str(x) 返回任意类型x所对应的字符串形式
str(1.23)
# '1.23'
str([1,2])
# '[1, 2]'
-oct(x) 或hex(x)整数x的八进制或十六进制小写形式字符串
hex(425)
# '0x1a9'
oct(425)
# '0o651'
-chr(u) u为Unicode编码,返回其对应的字符
chr(65)
# 'A'
-ord(x) x为单字符(多个字符则出错),返回其对应的Unicode编码
ord("A")
# 65
8、字符串处理方法
1、str.lower()返回字符串的副本,全部字符小写
"AbCdEfGh".lower()
# 'abcdefgh'
2、str.upper()返回字符串的副本,全部字符大写
"AbCdEfGh". upper()
# 'ABCDEFGH'
3、str.split(str="", num=string.count(str))
其中str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
- num – 分割次数。通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num+1 个子字符串。
- 最后返回分割后的字符串列表,并且各字符串由空格(形式上看上去是逗号)隔开。
例1:
"A,B,C".split()
['A,B,C'] #前面的字符串中没空格即未找到分隔符,这被当做一个字符串返回字符串列表
例2:
"A B C".split()
['A', 'B', 'C'] #分隔符默认为空格,这遇见空格就删除,然后分隔出来作为单个字符串,最后每个字符串用空格隔开
例3:
str = "this is string example....wow!!!"
print (str.split('i',1))
print (str.split('w'))
['th', 's is string example....wow!!!']
['this is string example....', 'o', '!!!']
4、str.count(sub)返回子串sub在str中出现的次数
"a apple a day".count("a")
# 4
5、str.replace(old,new)返回字符串str副本,所有old子串被替换为new
"python".replace("n","n123,io")
# 'python123,io'
6、str.center(width[,fillchar])字符串str根据宽度width居中,fillchar可选,无fillchar即默认为空格填充
"python".center(20,"=")
'=======python======='
7、str.strip(chars)从str中去掉在其从最左侧和最右侧数起char中列出的字符,如果其最左最右侧没char中列出的字符,则该侧就不去掉字符,即使str中间包含有char列出的字符
例1:
"= python= ".strip(" =np")
# 'ytho'
例2:
"= python= ".strip("=")
# ' python= '
例3:
"= python= ".strip("p")
# '= python= '
8、str.rstrip([chars])删除 str字符串末尾的指定字符(默认为空格,返回删除 str 字符串末尾的指定字符chars(默认为空格)后生成的新字符串。
例1:
str = " this is string example....wow!!! "
str.rstrip()
this is string example....wow!!!
例2:
str = "88888888this is string example....wow!!!8888888"
str.rstrip(8)
88888888this is string example....wow!!!
9、str.join(iter)在iter变量除最后元素外每个元素后增加一个str
"#".join("12345")
'1#2#3#4#5'
10、str.startswith(s, beg=0,end=len(str)) 用于检查字符串str是否是以指定子字符串s开头,如果是则返回 True,否则返回 False。
- str检测的字符串。
- beg可选参数用于设置字符串检测的起始位置,
- end可选参数用于设置字符串检测的结束位置。如果参数 beg 和 end 指定值,则在指定范围内检查。
-例:
str = "this is string example....wow!!!"
print (str.startswith( 'this' ))
print (str.startswith( 'string', 8 ))
print (str.startswith( 'this', 2, 4 ))
True
True
False