一.什么是字符串:
1.什么是字符串
a.用单引号或者双引号括起来的字符集就是字符串
b.字符串中每个独立的单元我们叫字符,列如'abc'中'a' 'b' 'c'就是字符
2.转义字符
说明:python中没有字符类型,如果要表示字符,就是用一个长度是1的字符串表示
长度:指的就是字符串中字符的个数,列如:'abc',长度就是3(字母\符号\空格\中文都是1)
通过 \ 将一些特殊的字符转换成一个具有特殊功能或者特殊意义的字符,就是转义字符
print('床前明月光\n疑是地上霜') # \n (换行)
在计算转义字符的时候,转义字符长度是一个字符
3.Unicode编码
-
python中字符的编码采用的就是Unicode编码
-
将字符转换成指定的数值,这个过程就是编码(编码的目的是方便计算机存储)
-
将数值转换成对于的符号的过程就是反编码或者叫解码
-
Unicode编码采用两个字节对一个字符进行编码(2`15),能够将世界上所有的符号进行编码
-
unicode编码中包含了ASCII编码
-
将Unicode码转换成字符: chr(编码)
-
将字符转换成Unicode码: ord(字符)
print(hex(ord('何')),hex(ord('羽'))) # 0x4f55 0x7fbd
二.获取字符串
字符串实质可以是一个不可变的序列,序列内容是字符
一点字符串确定,那么里面的字符和字符的位置就不可变了
1.怎么获取单个字符
str1 = 'abcd' # a->0 b->1 c->2 d->3 print(str1[0]) # 打印出 a
-
python中的字符串,可以通过下标(索引)来获取指定位置上的字符串:字符串[索引]
'''
说明:
a.字符串:可以是字符串值,也可以是字符串变量
b.[]:中括号是固定语法
c.索引:从0开始到字符串长度-1 ; -1 ~ - 长度, -1 对应最后一个,-2对应倒数第二个
'''
2.获取部分字符(获取子串) -- 切片
格式:字符串[下标1:小标2]: 从下标1开始获取到下标2前的所有的字符
str2 = 'hello word' print(str2[0:5])
注意:下标1对应的位置,一定要在下边2对应的位置前
print(str2[0:12])
- 切片时下标可以越界,越界的时候就取临界值
格式: [下标1:小标2:步进]
从下标1开始获取,每次下标值增加步进值,每增加一次取一个字符,直到取到下标2前为止
str3 = '0123456789' print(str3[0:9:2]) # 0 2 4 6 8 print(str3[1:10:2]) # 1 3 5 7 9 print(str3[-1:5:-1]) # 9876
-
步进如果是整数,那么下标1对应的字符的位置一定要在下标2对应的位置前面
-
步进是负数,那么小标1对应的位置一定要在下标2对应的位置的后面
-
下标2对应的字符是取不到的
下标的省略
下标1和小标2是可以省略的
str4 = 'good good study, day day up' print(str4[:4]) print(str4[:4:-1]) # pu yad yad ,yduts doog
下标1省略默认从开始获取(开头可能是字符串的第一字符,也可能是字符串的最后的一个)
例如:要求一个字符串中所有下标是奇数位的字符取出来
print('0123456789'[1::2]) print('0123456789'[::-2])
三.字符串的相关运算
1. + 运算符
python支持两个字符串相加
print( 'abc' + '123' )
-
其效果就是将两个字符串拼接在一起产生一个新的字符串
如果+的一边是字符串那么另一边也必须是字符串
2. * 运算符
字符串 * 一个整数: 字符串重复多次
print('abc ' * 3)
3. 支持所有的比较运算符
print('abc' == 'abc')
比较大小
print('abc' > 'z')
-
两个比较的字符串每一位相比,谁的Unicode编码大
in 和 not int
print('abc' in 'abcdefg') # True
len() 获取字符和序列的长度
str1 = '0123456789' print(len(str1)) # 10 print(len(str1)-1) # 9
-
补充: 空串
str1 = '' #空串的长度是0
6.阻止转义
- 在字符串的最前面添加 r/R 可以阻止转义
print(r'a\nb')
练习
str_a = r'\nabc123' 求: str_a[3] -> b str_b = 'adc123\\123' 求: str_b[-5] -> 3
四.字符串相关的方法
- python为字符串提供了很多的内建函数
格式: 字符串.函数()
str1 = 'hello python'
1.capitalize() 将字符串的第一个字符串转换为大写
newstr = str1.capitalize() print(newstr) print('abc'.capitalize())
center(width,' fillchar ') 'fillchar' 默认是空格
让字符串变成 widthd 对应的长度,原内存居中,剩余的部分使用 fillchar 的值填充
width - 整数, fillchar -任意字符
print('abc'.center(5,'*'))
3.rjust(width,' fillchar ')
number = '10' sut_id = number.rjust(3,'0') print(sut_id)
4. 原字符串.count(str)
判断str 值在原字符串中出现了几次
print('aaabbbccc'.count('a'))
5. str1.join(str2)
在str2中的每个字符之间插入一个str1
print('+'.join('123'))
6. str1.replace(old,new)
将str1中的old全部替换成new
print('aabbccddee'.replace('a','+'))
网友评论