Day2
Author: Denny YU
Created
文章目录
字符串
本质:字符序列,python的字符串是不可变的
字符串编码:Python3使用Unicode(可以表示任何书面语言)
-
Unicode编码:16位
-
ASCII:8位,字母、符号、数字
-
作用:把数字和字符对应起来
-
转换
char(),ord()
1.创建字符串
用引号来创建字符串,
- 多行字符串
name = '''
sadasfashfas'sds''dsah4
sjkdla''sad'
'''
print(name) ##output:
- 空字符串
- len()查询字符串长度
2.转义字符
转义字符 | 描述 |
---|---|
\(在行尾时) | 续行符 |
\ | 反斜杠符号 |
\b | 退格(Backspace) |
\n | 换行 |
\t | 横向制表符 |
3.字符串的拼接
‘+’运算
- +两边都是数字,运算加法
- +两边是字符串,运算拼接
- +两边类型不同,抛出异常
4.字符串的复制
- ‘*’运算
a='sdsads'*4
print(a)#输出 sdsadssdsadssdsadssdsads
-
不换行打印
print(‘字符串’, end=’—‘)
-
控制台读取字符串
myname=input('please enter your name:')
5.字符串提取
str()
实现数字转型字符串
- 使用[]提取字符
a='Hello'
a[0]# H
a[1]# e
a[-1]# o
a[0:3]# Hell
6.字符串的替换
字符串是不可变类型,a.replace()函数是再创建了一个新的字符串
a='Hello'
id(a)#输出2616518786160
b=a.replace('H','世界')
print(b)
##输出: '世界ello'
id(b)#输出 2616518583472
7.字符串的切片
[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'
8.字符串的驻留机制,和字符串比较
-
字符串驻留:
符合标识符规则的字符串
-
is 与 ==
-
in 与 not in
9.字符串的分割与合并split() and join()
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
10.字符串的常用方法汇总
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()
11.字符串format()格式化
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' >>>
-
数字格式化