03 字符串处理
2018-07-18 本文已影响0人
卅月
1.含义
- 使用单引号或双引号括起来的字符集就是字符串。由一串字符构成(数字、字母、符号)
'123' 'abcd' '这是汉字' #这些都是字符串
str1 = '尽诛宵小天策义\n' #将一个字符串赋给变量
str2 = '长枪独守大唐魂\n'
- 转义字符:当想要表示一些字符,但是这些字符是系统语法的一部分,含有特殊功能。
则可以用转义字符达成效果
这些都是转义字符:
\ --> '
\\ --> \
\n --> 换行
\t --> 制表符
\" --> "
- 阻止转义:\\在转义的时候输出只有一个\,
在引号前加r(R),可以阻止转义(使得\的功能失效),使得字符串输出变成 \\。
str1 = r"\\1\n"
print(str1)
输出
:
\\1\n
- python中字符串的字符是Unicode编码。
Unicode编码:使用16位对一个字符进行编码(ASCII是8位的)
Unicode编码包含了ascll编码,可以表示世界上所有的语言和符号
a.获取一个字符的Unicode编码
print(hex(ord('孙')),hex(ord('建')),hex(ord('康')))
print(ord('1'))
输出
0x5b59 0x5efa 0x5eb7
49
b.将Unicode码转换成字符
print(chr(0x4EAE)) #查看unicode代码为0x4EAE对应的汉字
输出
亮
字符串比较大小,从字符开始依次往后比较,直到遇到的字符不一样为止
比较字符大小的时候,实质比的是他们的编码大小,结果为布尔值
print('abc' > 'b') #------>False
print('Zbc' > 'aa') #---->False
2.字符串中字符的获取
python的字符,实质是一个有序的字符序列。
-
获取字符串的长度:(长度-->字符串中字符的个数)
注:
转义字符的长度为1
#len()是python内置的获取一个序列长度的内置函数
count_num = len('abc\n123')
print(count_num) #------>count_num == 7
-
通过下标获取字符串中的某一个字符
字符串中每个字符都对应一个下标(索引),我们可以通过索引值去获取固定的字符.字符串:[索引值]
'abc' ---> a:0 , b:1 , c:2
str1 = 'abc'
print(str1[1]) # 获取 b
print(str2[num-1]) #获取 p的2种方法
print(str2[-1]) #获取 p的2种方法
str2 = 'goog good study\nday day up'
num = len(str2) #获取字符串str2的长度
获取字符的时候,索引值(下标)不能超过索引(下标)的范围,否则会报错index out of range
-
获取字符串中的部分字符。字符串:[开始下标:结束下标]
获取从开始下标到结束下标的字符(----具体范围为[开始下标,结束下标)-----)
要求:开始和结束下标都有值,开始下标对应的字符,要在结束下标对应的字符前面。获取部分字符的方式多种多样,需要仔细研究实现的原理。
str3 = 'hello python'
获取python
print(str3[6:12])
print(str3[-6:12])
print(str3[6:]) #视情况可选择性的省略开始下标和结束下标
获取hello
print(str3[:5]) #视情况可选择性的省略开始下标和结束下标
获取整个字符串
print(str3[:])
字符串[开始下标:结束下标:步进]------>步进默认为1可省略,不为1的时候:依次间隔取
print(str3[::2]) #每2个字符取一次
print(str3[::-1]) #倒序
输出
python
python
python
hello
hello python
hlopto
nohtyp olleh
3.字符串运算
- a. 字符串拼接 ,使用+实现,注意: + 两边数据类型必须要一样的
str1 = 'hello' + ' ' + 'python' #---->str1 == 'hello python'
- b. 让字符串重复
字符串*整数,让字符串重复n次
str2 = 'abc' *3
print(str2) #---->str2 == abcabcabc
- c. in 和 not in
字符串1 in 字符串2:判断字符串1是否在字符串2中。结果是布尔值
result = 'aa' in 'abaac'
print(result) #----->True
字符串1 not in 字符串2 :判断字符串1是否不在字符串2中。结果是布尔值
result = 'aa' not in 'abaac'
print(result) #---->False
- d. 格式字符串
格式:'%s%s'%(值) -----> '占位符1占位符2'%(值1,值2)
str1 = 'abc%s123' % ('>>>')
print(str1)
%s ---->字符串占位符
%d---->整数占位符
%f---->浮点占位符
%c---->字符(长度是1的字符串)占位符
str2 = '%s%d%c%f' % ('sjk',100,'a',2.13)
print(str2)
使用%.nf控制小数点后的位数(默认是6位小数)
str2 = '这是一个2位小数:%.2f' % (2.13000)
print(str2)
%x和%X都是16进制的占位符(分大写小写)
num = 255
str4 = '%x, %X' % (num,num)
print(str4)
# 输出
ff, FF
- e.格式化输出
赋给变量名字,年龄最后格式化输出
name = 'sjk'
age = 18
print('我是%s,我今年%d岁' % (name,age))
- f.去进制符号
print('格式化无符号八进制:%o,十六进制%x,十六进制大写:%X' % (0o76,0xff,0Xff)) #---->分别去掉各进制的前置符号
print('100的八进制数为:%o' % (100)) #结果--->100的八进制数为:144
4.字符串相关內建函数
在python中,有许多关于字符串的內建函数,这是系统预先封装好了的函数,可以直接调用,免去自己写算法的麻烦。
函数 | 作用 |
---|---|
strip | 切片函数 |
……未完待续 | ……未完待续 |
5.条件语句
即if语句。条件语句:可以是任何有值的表达式,但是一般是布尔值。
执行过程:先判断条件语句是否为True,如果为True就执行if语句后:后面对应的一个缩进的所有的代码。
为False,就不执行:后面一个缩进中的代码块,直接执行后续的其他语句
结构
#if 条件语句:
#条件语句结果为True执行的代码块
if True:
print('代码1')
print('代码2')
print('代码3')
#条件语句结果为False执行的代码块
else:
print('代码5')
print('代码4') #---->由于缩进的原因,此行的代码不属于if语句,是一个单独的语句
实战练习:
判断一个学生成绩是否合格(60分)先判断条件语句是否为True,如果为True就执行语句块1,输出“合格”。
否则执行语句块2,输出“不合格!太弱了”
score = 50
if score > 60:
print('合格')
else:
print('不合格!太弱了')