Author: Denny YU
Created
本质:字符序列,python的字符串是不可变的
字符串编码:Python3使用Unicode(可以表示任何书面语言)
Unicode编码:16位
ASCII:8位,字母、符号、数字
作用:把数字和字符对应起来
转换char(),ord()
用引号来创建字符串,
name = '''
sadasfashfas'sds''dsah4
sjkdla''sad'
'''
print(name) ##output:
转义字符 | 描述 |
---|---|
\(在行尾时) | 续行符 |
\ | 反斜杠符号 |
\b | 退格(Backspace) |
\n | 换行 |
\t | 横向制表符 |
‘+’运算
a='sdsads'*4
print(a)#输出 sdsadssdsadssdsadssdsads
不换行打印
print(‘字符串’, end=’—‘)
控制台读取字符串
myname=input('please enter your name:')
str()
实现数字转型字符串
a='Hello'
a[0]# H
a[1]# e
a[-1]# o
a[0:3]# Hell
字符串是不可变类型,a.replace()函数是再创建了一个新的字符串
a='Hello'
id(a)#输出2616518786160
b=a.replace('H','世界')
print(b)
##输出: '世界ello'
id(b)#输出 2616518583472
[start :end :step]
a='asdasfasfasfsada'
a[0:2]##输出‘as’
a[0:2:2]##输出‘a’
start,end,step是复数的情况
a='asdasfasfasfsada'
a[-2:]##输出'da'
a[-8::-2]##输出'fasda'
字符串驻留:
符合标识符规则的字符串
is 与 ==
in 与 not in
split()把字符串按照要求分割成多个字符串,默认使用空白字符做分割
a='asdasfasfasfsada'
a.split('fa')##输出 ['asdas', 's', 'sfsada']
a=['aaa','sda','ds']
'你好'.join(a)#'aaa你好sda你好ds'
import time
time01=time.time()
a = ''
for i in range(10000000):
a+='sxt'
time02=time.time()
print('+运算时间:',time02-time01)
##输出+运算时间: 16.66818618774414
time03=time.time()
li =[]
for i in range(10000000):
li.append("sxt")
a=''.join(li)
time04=time.time()
print('Join运算时间:',time04-time03)
##输出Join运算时间: 0.9658315181732178
a.find()
正向搜索,找字符在a字符串中的位置
a.rfind()
反向搜索
a.count()
指定字符串出现的次数
a.isalnum()
判断所有字符全是字母或数字
去除首尾信息
strip()、lstrip()、rstrip()
大小写转换
格式排版
a='SEX'
a.center(10,'*')
a.center(10)
a.ljust(10,'*')
a.rjust(10,'*')
>>> '***SEX****'
>>> ' SEX '
>>> 'SEX*******'
>>> '*******SEX'
>>>
其他
isalnum()
isalpha()
isdigit()
isspace()
是否是空白符
isupper()
islower()
a='名字是:{name},年龄是:{age},性别是:{gender}'
a.format(name='Denny',age='20',gender='male')
##输出 '名字是:Denny,年龄是:20,性别是:male'
填充和对齐
>>> '我是{0},我喜欢数字{1:*^8}'.format('Jing','9')
'我是Jing,我喜欢数字***9****'
>>> '我是{0},我喜欢数字{1:*<8}'.format('Jing','9')
'我是Jing,我喜欢数字9*******'
>>> '我是{0},我喜欢数字{1:*>8}'.format('Jing','9')
'我是Jing,我喜欢数字*******9'
>>>
数字格式化