Python基础——第二章 第一部分 字符串方法 转义及编码解码

1、字符串方法

1.1、查

(1)count:统计字符串中某元素出现的次数

>>>zf = 'hello world'
>>>zf.count('l')
3
>>>zf.count('o')
2

(2)index:查找元素所在的下标

>>>zf = 'hello world'
>>>zf.index('o')
4
>>>zf.index('l')
2
>>>zf.index('l',3)   '''这里是从下标为3的位置开始查找'''
3

(3)find:查找

>>>zf = 'hello world'
>>>zf.find('a')   '''字符串中若不存在要查找的元素,则返回-1'''
-1

(4)isdigit:判断字符串是否为纯数字,是返回True,否返回False

>>>'af4s5f4f6'.isdigit()
False
>>>'18544674'.isdigit()
True

(5)isalpha:判断字符串是否为纯字母,是返回True,否返回False

>>>'af4s5f4f6'.isalpha()
False
>>>'dbsjfbKL'.isdigit()
True

(6)isupper:判断字符串是否为纯大写字母,是返回True,否返回False

>>>'aGHJ4s5fHlsd6'.isupper()
False
>>>'HJJKJKIK'.issupper()
True

>>>'aKHGs5f4f6'.upper()
'AKHGS5F4F6'

(7)islower:判断字符串是否为纯小写字母,是返回True,否返回False

>>>'aGHJ4s5fHlsd6'.islower()
False
>>>'fghsadfv'.islower()
True

1.2、改

(1)upper:将字符串中所有的小写字母改为大写字母

>>>'aKHGs5f4f6'.upper()
'AKHGS5F4F6'

(2)lower:将字符串中所有的大写字母改为小写字母

>>>'aKHGs5f4f6'.lower()
'akhgs5f4f6'

(3)capitalize:字符串第一个字母大写,若字符串第一个字符是数字的话,该方法无效

>>>'hello world '.capitalize()
'Hello world'
>>>'22hello world '.capitalize()
'22hello world'

(4)title:每一个单词首字母大写,字符串第一个字符是数字的话,也会将数字之后的第一个字母改写大写

>>>'hello world '.title()
'Hello World'
>>>'2hello 3world '.title()
'2Hello 3World'

1.3、删

(1)strip:删除字符串中所有的空格

>>>'    jhk   '.strip()
'jhk'
>>>'    jhk   '.lstrip()  '''lstrip是删除字符串左边的空格‘’‘’
'jhk   '
>>>'    jhk   '.lstrip()  '''rstrip是删除字符串右边的空格‘’‘’
'    jhk'

(2)split:分离字符串

>>>'a b c d'.split()  #如果没有指定分离位置,则默认以空格分离,并删除空格
['a','b','c','d']

>>>a='hello world python'
>>>a.split('o')   #如果有指定分离字符,则按照指定字符分离,并删除该指定字符
['hell',' w','rld pyth','n']

(3)replace:替换字符串中的字符

>>>a='hello world python'
>>>a.replace('o','')  #将字符串中的字符替换为空格,相当于删除该字符
'hell wrld pythn'
>>>a.replace('o','xx')  #将字符串中的字符替换为指定的字符
'hellxx wxxrld pythxxn'
>>>a.replace('o','xx',1)  #将字符串中某一个字符替换为指定的字符
'hellxx world python' #这里仅hello的'o'被替换成'xx'
>>>a.replace('o','xx',2)  #这里的数字代表的是该方法杯执行几次
'hellxx wxxrld python' #这里仅hello、world的'o'被替换成'xx',这里就执行了2次

1.4、增

字符串拼接

(1)+拼接

>>>'hello'+'wolrd'
'hello world'

(2)join拼接

>>>''.join(['hello',' wolrd'])
'hello world'
>>>''.join(('hello',' wolrd'))   #要拼接的字符串必须是一个整体,join才可以正确被执行,如果把小括号或者中括号去掉,则会报错
'hello world'

2、字符串的转义

当字符前面加上\,字符就不在表示字符本身的意思,表述ASCII码中不能显示字符

2.1、\n:换行

>>>li = 'aaaa\nbb'
>>>print(li)
aaaa
bb

2.2、\t:水平制表符

>>>li = 'aaaa\tbb'
>>>print(li)
aaaa       bb

2.3、\b:退格

2.4、\r:回车,当前位置移到本行开头

>>>li = 'aaaa\rbb'
>>>print(li)
bbaa

2.5、\:代表反斜杠\

>>>li = 'aaaa\\bb'
>>>print(li)
aaaa\bb

2.6、’:代表单引号

>>>li = 'aaaa\'bb'
>>>print(li)
aaaa'bb

2.7、\0:空格

>>>li = 'aaaa\0bb'
>>>print(li)
aaaa bb

2.8、\a系统提示符

>>>li = 'aaaa\abb'
>>>print(li)
aaaabb

2.9、去除字符串转移,在字符串前加上r即可

>>>print(r 'aaaa\\bb')  #字符串前加上r,这里会把所有字符打印出来,会多用于正则
r'aaaa\bb'

3、格式化输出

什么是格式化输出呢?
格式化输出就是我们想把数据按照特定要求的形式输出
下面我来介绍下%和format两种用法

3.1、%的用法

(1)字符串的格式化输出(%s)

>>>a = 'hello world'
>>>print('%s',a)
hello world

(2)整数型的格式化输出(%d)

>>>a = 26
>>>print('%d',a)
26

(3)浮点型小数的格式化输出(%f、%e)

>>>a = 1.23
>>>print('%f',a)   #保留小数点后6位
1.230000
>>>print('%.3f',a)   #保留小数点后3位
1.230

>>>print('%e',a)   #保留小数点后6位,并以科学计数法表示
1.230000e+00
>>>print('%.3e',a)   #保留小数点后3位,并以科学计数法表示
1.230e+00

3.2、format的用法

(1)不带编号

>>>print('{},{},{}'.format([1,2,3],4,5)
'[1,2,3]45'

(2)带编号

>>>print('{2},{0[1]},{1}'.format([1,2,3],4,5)
'524'

4、字符串编码解码

ASCII
不能表示中文
各个国家确认了自己的编规则
中国的是gbk
Unicode
企图把地球上所有的语言都包括进去
表示ASCII码太浪费空间,英国不愿意用
出现UTF-8/UTF-16等编码规则

4.1、编码encode

>>>'字符串'.encode('utf8')
b'\xe5\xad\x97\xe7\xac\xa6\xe4\xb8\xb2'

>>> '字符串'.encode('gbk')  #gbk是中国的编码标准
b'\xd7\xd6\xb7\xfb\xb4\xae'

4.2、解码decode

>>> b'\xe5\xad\x97\xe7\xac\xa6\xe4\xb8\xb2'.decode('utf8')
'字符串'
>>> b'\xd7\xd6\xb7\xfb\xb4\xae'.decode('gbk')
'字符串'

Python统一了编码,这样Python在内部处理的时候不会因编码不同而出现程序不能正常执行的问题。

Python会自动根据系统环境选择编码,但是经常在文件传输的过程中,会遇到各种不同的编码,这个时候就需要我们去处理编码问题。

注意:用什么规则编码,就用什么解码

猜你喜欢

转载自blog.csdn.net/weixin_44435602/article/details/113862592