python知识体系第三节——字符串

1 字符串

1.1字符串的编码:

python3支持unicode ,可以表示世界上任何书面语言的字符,
python3的字符默认就是16为unicode编码,ASCII是unicode的子集。
内置函数:ord(),可以把字符转换成对应的unicode码,
chr(),可以把unicode码转换成对应的字符。

>>> ord('b')
98
>>> ord('c')
99
>>> chr(100)
'd'

1.2 单引号或双引号创建字符串,三个单引号或双引号可以创建多行字符串。

'''a="字",b="符",c="串"'''
'a="字",b="符",c="串"'

1.3 空字符串和len()函数

python允许空字符串的存在,len()函数用于计算字符串包含的字符数。

>>> a="小星少123"
>>> len(a)
6

1.4 转义字符

|转义字符|描述 |
|\(在行尾时)|续行符|
| \ |反斜杠符号 |
|’|单引号 |
|’’|双引号|
| \b |退格 |
|\n|换行 |
|\t|横向制表符|
|\r |回车 |

1.5 字符串拼接

>>> "小星少"+"123"
'小星少123'
>>>  "小星少" "123"
SyntaxError: unexpected indent
>>>  "小星少""123"
SyntaxError: unexpected indent
>>> '小星少''123'
'小星少123

1.6 字符串复制

>>> a='a'*3
>>> a
'aaa'
>>> a="a"*3
>>> a
'aaa'

1.7 不换行打印

print('abc',end='')
print('def',end='')

1.8 从控制台获得字符串

a=input('请输入您的姓名')

2 字符串,str(),[]提取字符

>>> str(15)
'15'
>>> a='asdfghjkl'
>>> a.replace('s','1')
'a1dfghjkl'
>>> a
'asdfghjkl'
>>> #a.replace('s','1')仅仅只是输出替字母后的字符串,
>>> #并未改变字符串‘a’

3 字符串截取slice

字符串切片即指的是截取字符串中的一个或多个字符,具体格式查看以下代码
python字符串的两种序号体系

>>> a='abcdefghijklmnopqrstuvwxyz'
>>> a[0:26:1]#分别截取0到第26个元素,步长为1
'abcdefghijklmnopqrstuvwxyz'
>>> a[0:26:2]#分别截取0到第26个元素,步长为2
'acegikmoqsuwy'
>>> a[-1:26:1]#分别截取0到第26个元素,步长为1
'z'
>>> a[-1:-26:1]#分别截取-1到第-26个元素,步长为1
''
>>> a[-1:-26]
''
>>> a[-1:-25]
''
>>> a[-1:-25]
''
>>> a[:]
'abcdefghijklmnopqrstuvwxyz'
>>> a[3:]#从第3个字符到结尾
'defghijklmnopqrstuvwxyz'
>>> a[:20]#从开始到第20个字符
'abcdefghijklmnopqrst'
>>> a[-3:-9]
''
>>> a[::-1]
'zyxwvutsrqponmlkjihgfedcba'

[a🅱️c] 代表截取的起点,如果不填默认为0,b代表截取的终点,如果不填代表字符串的重点,c代表截取的步长与方向,正数代表从左往右,负数代表从右往左

4 字符串分割split()与合并join()

split()函数使用方法:作用是分割字符串

join()函数的使用方法:作用是合并字符串

>>> a=('a,b,c,d')
>>> a.split(',')
['a', 'b', 'c', 'd']
>>> a=('a','b','c','d')
>>> ''.join(a)#将字符串a中的多个单字符合并,成为一个字符
'abcd'

5 字符串驻留机制和字符串比较

当变量赋值的字符串内容相同时(仅限字母、数字、下划线),两个字符串作比较会输出True,包含其他符号时会输出False。

>>> a='a3_'
>>> b='a3_'
>>> a is b
True
>>> a='a3#'
>>> b='a3#'
>>> a is b
False

6 字符串常用查找方法

6.1 查找方法

>>> a='good good study, day day up!'
>>> a.find('good')
0
>>> a.count('good')
2
>>> a.startswith('good')
True
>>> a.startswith('study')
False
>>> len(a)
28
>>> a.endswith('study')
False
>>> a.endswith('up')
False
>>> a.endswith('up!')
True
>>> a.isalnum()
False

6.2 去除字符串首尾信息

>>> a='# good good study,day day up! #'
>>> a.strip('# ')
'good good study,day day up!'
>>> a.strip('#')
' good good study,day day up! '
>>> a.lstrip('# ')
'good good study,day day up! #'
>>> a.rstrip('# ')
'# good good study,day day up!'

6.3 大小写转换

>>> a='Good good study, day DAY up!'
>>> a.capitalize()
'Good good study, day day up!'
>>> a.title()
'Good Good Study, Day Day Up!'
>>> a.upper()
'GOOD GOOD STUDY, DAY DAY UP!'
>>> a.lower()
'good good study, day day up!'
>>> a.swapcase()
'gOOD GOOD STUDY, DAY day UP!'

6.4 格式排版

>>> a.center(10,'#')
'###good###'
>>> a.center(10)
'   good   '
>>> a.ljust(10,'#')
'good######'
>>> a.rjust(10,'#')
'######good'

7 字符串、数字的格式化填充

7.1 字符串的格式化填充

实例:比如我们平时有一篇文章,里面多次出现某个相同的字符,最典型的比如荣誉证书,
某某某于某年获得某某专业学业,获得某某证书,使用a.format(’’,’’)语法。

>>> a=('{name}同学,于{time}年完成{major}专业课程学习,现授予{name}同学学学位')
>>> a.format(name='张三',time=2019,major='控制科学与工程')
'张三同学,于2019年完成控制科学与工程专业课程学习,现授予张三同学学学位'
>>> a.format('张三',2019,'计算机科学与技术')
'张三同学,于2019年完成计算机科学与技术专业课程学习,现授予学位'
>>> a='{}同学的成绩是{:^10}。'
>>> a.format('张三','100')
'张三同学的成绩是   100    。'

语法内容非常多,学习的时候不一定每一条语法全部都记在脑海中,但是必须每一条都练习一遍,当时必须理解,
后面再去使用的时候才会有印象。学习任何一门学科必须理解这门学科的知识体系,在心中搭好框架,才能做到胸有成竹。

7.2 数字格式化

>>> a='小明的成绩是{}'
>>> a='小明的成绩是{:.2f}'
>>> a.format(98.777)
'小明的成绩是98.78'
>>> a.format(98)
'小明的成绩是98.00'
>>> a='小明的成绩是{:+.2f}'
>>> a.format(-98)
'小明的成绩是-98.00'
>>> a='小明的成绩是{:+.0f}'
>>> a.format(-98)
'小明的成绩是-98'
>>> a='小明的成绩是{: ^10d}'
>>> a.format(98)
'小明的成绩是    98    '
>>> a='小明的成绩是{:,}'
>>> a.format(98)
'小明的成绩是98'
>>> a.format(980000)
'小明的成绩是980,000'
>>> a='小明的成绩是{:.2%}'
>>> a.format(980000)
'小明的成绩是98000000.00%'
>>> a.format(34.12344)
'小明的成绩是3412.34%'
>>> a.format(0.254)
'小明的成绩是25.40%'
>>> a='小明的成绩是{:.3%}'
>>> a.format(0.254)
'小明的成绩是25.400%'

7.3 可变字符串

>>> import io
>>> a='good good study, day day up!'
>>> b=io.StringIO(a)
>>> b
<_io.StringIO object at 0x03D01BB0>
>>> b.seek(5)
5
>>> b.write('e')
1
>>> b
<_io.StringIO object at 0x03D01BB0>
>>> b.getvalue()
'good eood study, day day up!'
>>> 

1、seek()函数是Python中操作文件游标移动操作的函数

用法如下

seek(offset,whence=0)

offset:开始的偏移量,也就是代表需要移动偏移的字节数

whence:给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。
2.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值