Python——— 字符串

(一)字符串

    字符串是 Python 中最常用的数据类型。我们可以使用引号 ( ‘ 或 ” ) 来创建字符串。顾名思义,羊肉串是由羊肉做成的串,而字符串就是由字符组成的。   字符串的本质是:字符序列。

2    Python不支持单字符类型,单字符也是作为一个字符串使用的。创建字符串很简单,只要为变量分配一个值即可。例如:
var1 = 'Hello World!'
var2 = "Python"
    Python的字符串是不可变的,我们无法对原字符串做任何修改。但可以将字符串的一部分复制到新创建的字符串,达到 “看起来修改的效果。

(二)字符串的编码

   Python3直接支持Unicode,可以表示世界上任何书面语言的字 符。Python3的字符默认就是16Unicode编码,ASCII码是 Unicode编码的子集。

转换技巧: 

使用内置函数ord()可以把字符转换成对应的Unicode码; 使用内置函数chr()可以把十进制数字转换成对应的字符;

 

print(ord('A')) #65
print(ord('成')) #25104
print(chr(66)) #'B'
print(ord('龙') )#40857

(三)引号创建字符串

   我们可以通过  ①单引号或双引号创建字符串。例如: a=’abc’b=”sxt” 使用两种引号的好处是可以创建本身就包含引号的字符串,而不用使用转义字符。例如:
a = "I'm a teacher!"
print(a) #I'm a teacher!
b = 'my_name is "Jackie Chan"'
print(b) #my_name is "Jackie Chan"
   ②  连续三个单引号或三个双引号,可以帮助我们创建多行字符串。在 长字符串中会保留原始的格式。例如:

(四)空字符串和len()函数

   Python允许空字符串的存在,不包含任何字符且长度为0。例如:

 

c = ''
print(len(c)) #结果:0
  其中,len()用于计算字符串含有多少字符。 

(五)转义字符

     我们可以使用 \+特殊字符 ,实现某些难以用字符表示的效果。比如:换行等。常见的转义字符有这些:
转义字符描述
\(在行尾时)续行符
\\反斜杠符号
\’单引号
\”双引号
\a响铃
\b退格(Backspace)
\e转义
\000
\n换行
\v纵向制表符
\t横向制表符
\r回车
\f换页
\oyy八进制数,y 代表 0~7 的字符,例如:\012 代表换行。
\xyy十六进制数,以 \x 开头,yy代表的字符,例如:\x0a代表换行
\other其它的字符以普通格式输出
【操作】测试转义字符的使用

代码

a = 'I\nlove\bU'
print(a)
print('a\rabb\\cc')

 

(六)Python字符串运算符

下表实例变量 a 值为字符串 “Hello”,b 变量值为 “Python”:

操作符描述实例
+字符串连接

>>>a + b ‘HelloPython’

*重复输出字符串

>>>a * 2 ‘HelloHello’

[]通过索引获取字符串中字符

>>>a[1] ‘e’

[ : ]截取字符串中的一部分

>>>a[1:4] ‘ell’

in成员运算符 – 如果字符串中包含给定的字符返回 True

>>>”H” in a True

not in成员运算符 – 如果字符串中不包含给定的字符返回 True

>>>”M” not in a True

r/R原始字符串 – 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母”r”(可以大小写)以外,与普通字符串有着几乎完全相同的语法。

>>>print r’\n’ \n >>> print R’\n’ \n

%格式字符串请看下一章节

 具体代码

a = "Hello"
b = "Python"
print("a + b 输出结果:", a + b)
print("a * 2 输出结果:", a * 2)
print("a[1] 输出结果:", a[1])
print("a[1:4] 输出结果:", a[1:4])

if ("H" in a):
    print( "H 在变量 a 中")
else:
    print( "H 不在变量 a 中")

if ("M" not in a):
    print("M 不在变量 a 中")
else:
    print("M 在变量 a 中")

print(r'\n')
print(R'\n')

运行效果:

字符串拼接 :可以使用 + 将多个字符串拼接起来。例如: ’aa’+ ’bb’ 结果 是 ’aabb’
  •  如果 + 两边都是字符串,则拼接。

  •  如果 + 两边都是数字,则加法运算

  • 如果 + 两边类型不同,则抛出异常

 可以将多个字面字符串直接放到一起实现拼接。例如: ’aa’’bb’ 结果是 ’aabb’

 

a = 'sxt'+'qiqi'   #结果是:'sxtqiqi'
b = 'sxt''qiqi'     #结果是:'sxtqiqi'

(七)字符串切片slice操作

 

 切片slice操作可以让我们快速的提取子字符串。标准格式为:
   [起始偏移量start:终止偏移量end:步长step]

 

典型操作(三个量为正数的情况)如下:
操作和说明示例结果
[:] 提取整个字符串“abcdef”[:]“abcdef”
[start:] start索引开始到结尾“abcdef”[2:]“cdef”
[:end] 从头开始知道end-1“abcdef”[:2]“ab”
[start:end] startend-1“abcdef”[2:4]“cd”
[start:end:step] start提取到end-1,步长是step“abcdef”[1:5:2]“bd”
其他操作(三个量为负数)的情况
示例说明结果
“abcdefghijklmnopqrstuvwxyz” [-3:]倒数三个“xyz”
“abcdefghijklmnopqrstuvwxyz” [-8:-3]倒数第八个到倒数第三个(包头不包尾)‘stuvw’
“abcdefghijklmnopqrstuvwxyz” [::-1]步长为负,从右到左反向提取‘zyxwvutsrqponmlkjihgfedcba’

注意:切片操作时,起始偏移量和终止偏移量不在[0,字符串长度-1]这个范围,也不会报错。起始偏移量小于0则会当做0,终止偏移量大于长度-1”会被当成-1。例如:

 

 

(八)split()分割和join()合并

      split()可以基于指定分隔符将字符串分隔成多个子字符串(存储到列 表中)。如果不指定分隔符,则默认使用空白字符(换行符/空格/制表符)。示例代码如下:
a = "to be or not to be"
print(a.split())
print(a.split('be'))
运行效果: join()的作用和split()作用刚好相反,用于将一系列子字符串连接起 来。示例代码如下:
a = ['sxt','sxt100','sxt200']
print('*'.join(a))

运行效果: 

总结:

拼接字符串要点:       使用字符串拼接符 + ,会生成新的字符串对象,因此不推荐使 用 + 来拼接字符串。推荐使用 join 函数,因为 join 函数在拼接字 符串之前会计算所有字符串的长度,然后逐一拷贝,仅新建一次对象。

 

 

(九) 字符串常用方法汇总

       字符串有很多常用的方法,我们需要熟悉。我们通过表格将这些方 法汇总起来,方便大家查阅。希望大家针对每个方法都做一次测试。

 

我们以一段文本作为测试:  
a=”’ablchbjj”’
常用查找方法
方法和使用示例说明结果
len(a)字符串长度8
a.startswith(‘abl‘)以指定字符串开头True
a.endswith(‘jj‘)以指定字符串结尾True
a.find(‘b‘)第一次出现指定字符串的位置1
a.rfind(‘b‘)最后一次出现指定字符串的位置5
a.count(“lch“)指定字符串出现了几次1
a.isalnum()所有字符全是字母或数字True
 

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2023年8月22日
下一篇 2023年8月22日

相关推荐