python学习_4——字符串str

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/WCanGER/article/details/83239761

字符串 str

1、作用与构造函数:

作用
用来记录文字(文本)信息
字符串构造(创建)函数:
str(obj) 将对象转换为字符串
示例:

'123' + 456  # 出错
'123' + str(456)  # 结果 '123456'

2、表示方法:

在非注释中凡是用引号括起来的部分都是字符串

'   单引号
"   双引号
''' 三单引号
""" 三双引号

空字符串的字面值表达方法

''  ""  ''''''   """"""

非空字符串的字面值的表达方法

  'hello'  "hello"  '''hello'''  """hello"""

单引号和双引号的区别
单引号内的双引号不算结束符
双引号内的单引号不算结束符
示例

“I'm a student"
'the word "python"'

三引号字符串的作用:
三引号字符串可以包含单引号和双引号
三引号字符串中的换行会自动转换为换行符’\n’
示例

print("""这里时可以换行输入的
就像这样""")
#这里时可以换行输入的
#就像这样

隐式字符串字面值拼接
示例:

 s = "I'm a teacher."   'my name is "Tarena"'
 print(s)  # I'm a teacher.my name is "Tarena

用转义序列代表特殊字符
字符串字面值中用字符反斜杠 \ 后跟一些字符代表特殊的一个字符,如:

转字格式     		含义
  \'  			 代表一个单引号
  \"   			 代表一个双引号
  \\   			 代表一个反斜杠
  \n   			 换行
  \r             返回光标至行首
  \f  			 换页
  \t    		 水平制表符
  \v   			 垂直制表符
  \b      		 倒退
  \0             空字符(字符值为0)
  \0oo           oo为两位八进制表示的字符
  \xXX           XX为两位十六进制表示的字符
  \uXXXX  		 四位十六进制表示的Unicode 16字符
  \UXXXXXXXX  	 八位十六进制表示的Unicode 32字符

ASCII编码表
在linux终端输入

   $ man ascii<回车>

常用的ASCII编码

 字符    十进制    十六进制
  '0'      48       0x30
  'A'      65       0x41
  'a'      97       0x61

3、序列的概念

字符串是序列(有序排列)
所有的序列都能用len(x) 函数求其长度

len(x) 函数
返回字符串中字符的个数

示例:
用交互模式验证如下字符串有几个字符

1. len('1234abcd')   # 8个
2. len('5\'4"')      # 4个
3. len('\"A\x34\056')# 4个 
4. len('\a\bc\td\n') # 6个 

4、raw 字符串(原始字符串)

格式:

r'字符串内容'
r"字符串内容"
r'''字符串内容'''
r"""字符串内容"""

作用:
让转义符号反斜杠 \ 无效
示例:

>>> a = 'C:\newfile\test.py'
>>> print(a)
C:
ewfile	est.py
>>> print(len(a))
16
>>> a = r'C:\newfile\test.py'
>>> print(a)
C:\newfile\test.py
>>> print(len(a))
18

5、字符串的运算:

1)算术运算符:

+   +=    *    *= 

“+”加号运算符用于拼接字符串

 x = "ABCD"
 y = "123"
 z = x + y
 print(z)  # ABCD123

“+=” 用于原字符串和右侧字符串拼接,再用变量绑定新的字符串

x = 'ABC'
y = '123'
x += y
print(x)  # ABC123

“ * ”运算符生成重复的字符串

x = "ABC" * 3
print(x)  # ABCABCABC
#注:  字符串只能和整数相乘

“ *= ” 生成重复的字符串,再用原变量绑定

 x = '123'
 x *= 2
 print(x)  # 123123

2)字符串的比较运算
运算符:

< <= > >= == != 

比较规则:
依次按编码值进行两两字符比较,一但不同,则比较结束并返回比较结果,当编码值和长度完全相同时,两个字符串相同
示例:

'A' < 'B'       # True
'ABC' > 'ABB'   # True
'ADC' < 'ABC'   # False
'ABC' >= '123'  # True
'AB'  <  'ABC'  # True
'abc' == 'ABC'  # False

3)in, not in 运算符
作用:
in 用于序列,字典,集合中,用于判断某个值是否存在于容器中,如果存在则返回True,则返回False
not in 与 in 运算符的返回结果相反
格式:

对象 in 序列

示例:

x = 'welcome to guangzhou!'
'to' in x     # True
'hello' in x  # False
'e t' in x    # True
'abc' not in x  # True

6、字符串的基本操作

1)索引 index
python字符串是不可以改变的字符序列

索引取值语法:

字符串[整数表达式]

说明:
python的序列都可以用索引(index) 来访问序列中的对象
python序列的正向索引是从0开始的,第二个索引为1,最后一个索引为len(s)-1
python序列的反向索引是从-1开始的,-1代表最后一个,
-2代表倒数第二个,以此类推。第一个是-len(s)
示例:

  s = "ABCDE"
  print(s[1])  # B
  print(s[4])  # E
  print(s[-1]) # E
  print(s[-5]) # A
  print(s[100])  # IndexError 越界

2)切片 slice
作用:
从字符串序列中取出相应的元素重新组成一个新的字符串
语法:

字符串[(开始索引b):(结束索引e)(:(步长s))]
注:小括号() 括起来的部分代表可省略

说明:
开始索引是切片开始切下的位置,0代表第一个元素,1代表第二个元素,-1代表最后一个…
结束索引是切片的终止索引(但不包含终止点)
步长是切片每次获取完当前元素后移动的方向和偏移量
1.没有步长,相当于步长为1(默认为1)
2. 当步长为正整数时,取正向切片:
此时开始索引默认为0,结束索引默认是最后一个元素的下一个位置
3. 当步长为负整数时取反向切片:
反向切片时,默认的起始位置为最后一个元素,终止位置是第一个元素的前一个位置

示例:

 s = "ABCDE"
 a = s[1:4]  # a---> "BCD"
 a = s[:4]   # 'ABCD'
 a = s[1:]   # 'BCDE'  # 等同于s[1:5]
 a = s[:]    # 'ABCDE'  # 等同于s[0:5]
 a = s[1:1]  # '' 空字符串
 a = s[4:2]  # '' 空
 a = s[0:5:2] # 'ACE'
 a = s[4:0:-2]  # 'EC'
 a = s[4::-2]  # 'ECA'
 a = s[::-1]   # 'EDCBA'

3)python3中能用于字符串的内置函数:
1.常用获取字符串信息函数
len(x) 返回字符串长度
max(x) 返回字符串编码值最大的字符
min(x) 返回字符串中编码值最小的字符

2.字符串的编码转换函数:
ord© 返回一个字符c的unicode编码值
chr(i) 返回i这个值所对应的字符

示例:

x = ord('A')  # x = 65
c = chr(66)   # c = 'B'

3.整数转换为字符串的函数:
bin(i) 将整数转换为二进制字符串
oct(i) 将整数转换为八进制字符串
hex(i) 将整数转换为十六进制字符串

4)python3中常用的字符串方法(method)
方法的调用语法:

对象.方法名(方法传参)

示例:

'abc'.isalpha()  # 返回True
'123'.isalpha()  # 返回False
123.isalpha()   # 出错

常用的字符串的方法

方法 说明
S.isdigit() 判断字符串中的字符是否全为数字
S.isalpha() 判断字符串是否全为英文字母
S.islower() 判断字符串所有字符是否全为小写英文字母
S.isupper() 判断字符串所有字符是否全为大写英文字母
S.isspace() 判断字符串是否全为空白字符
S.center(width[,fill]) 将原字符串居中,左右默认填充空格
S.count(sub[, start[,end]]) 获取一个字符串中子串的个数
S.find(sub[, start[,end]]) 获取字符串中子串sub的索引,失败返回-1
S.strip([chars]) 返回去掉左右char字符的字符串(默认char为空白字符)
S.lstrip([chars]) 返回去掉左侧char字符的字符串(默认char为空白字符)
S.rstrip([chars]) 返回去掉右侧char字符的字符串(默认char为空白字符)
S.upper() 生成将英文转换为大写的字符串
S.lower() 生成将英文转换为小写的字符串
S.replace(old, new[, count]) 将原字符串的old用new代替,生成一个新的字符串
S.startswith(prefix[, start[, end]]) 返回S是否是以prefix开头,如果以prefix开头返回True,否则返回False,
S.endswith(suffix[, start[, end]]) 返回S是否是以suffix结尾,如果以suffix结尾返回True,否则返回False

以下是不常用的

方法 说明
S.title() 生成每个英文单词的首字母大写字符串
S.isnumeric() 判断字符串是否全为数字字符

字符串的文本解析方法 split 和 join:
S.split(sep = None) 将字符串使用spe作为分隔符分割S字符串,返回分割后的字符串列表;当不给定参数时,默认用空格作为分隔符
S.join(iterable) 用可迭代对象的字符串生成一个中间用S进行分隔的字符串

示例:

S = 'beijing is capital'
L = S.split() # L = ['beijing','is','capital']

7、字符串格式化表达式

作用:
生成一定格式的字符串
运算符:
%
语法格式:

 格式化字符串 % 参数值
 格式化字符串 % (参数值1, 参数值2, 参数值3, ...)

说明:
格式化字符串中以%开头的字符为占位符,占位符的位置将用参数值替换
示例:

fmt = "name: %s, age: %d"
s2 = fmt % ("Guisam", 21)	#s2 ='name: Guisam, age: 21

格式化字符串中的占位符类型码

占位符和类型码 含义
%s 字符串,使用str(x) 函数转换
%r 字符串,使用repr(x) 函数转换
%c 整数转为单个字符
%d 十进制整数
%o 八进制整数
%x 十六进制整数(字符a-f小写)
%X 十六进制整数(字符A-F大写)
%e 指数形浮点数(e小写) 如: 2.9e8
%E 指数形浮点数(E大写) 如: 2.9E8
%f,%F 浮点十进制数
%g,%G 十进制形式浮点或指数浮点自动转换
%% 等同于一个%字符

占位符和类型码之间的格式语法

  % [ - + 0 宽度.精度 ] 类型码
    -    左对齐(默认是右对齐)
    +    显示正号
    0    左侧空白位置补零
    宽度  整个数据输入的宽度
    精度  保留小数点后多少位(默认为6位)

示例:

"%10d" % 123    # '       123'
"%-10d" % 123   # '123       '
"%10s" % "abc"  # '       abc'
'%-5s' % 'abc'  # 'abc  '
'%05d' % 123    # '00123'
'%+05d' % 123   # '+0123'
'%7.3f' % 3.1415926535  # '  3.142'

下一篇:python学习_5——列表list

猜你喜欢

转载自blog.csdn.net/WCanGER/article/details/83239761
今日推荐