Python-字符串
一变量
1创建变量:d=4 表示将整型对象‘4’赋值给变量d
记住:一切数据都是对象
记住:一切变量都是数据对象的一个引用
分析:Python内部的引用计数。sys.getrefcount
2变量命名规范:
(1)只能用字母和下划线
(2)不能用关键字如if等
(3)大小写敏感
3赋值:
记住多态特性
多重赋值
删除:del
一个等号=是赋值,两个等号==是比较
注意:三内置必须用熟。type,help,dir
4常用基本数据类型:
(1) int整型
(2) boolean布尔值
(3) string字符串
(4) list列表
(5) tuple元组
(6) dict字典
5数据类型的可变与不可变
(1)不可变类型:int、string、tuple (通过id()来看唯一标识符)
(2)可变类型:list、dict
二字符串:help(str)
1访问字符串,序列
a='wujiadong'
print(a[0])
print(len(a))
print(a[8])
print(a[:])
2替换字符串
b=a.replace('wujiadong','jiangrui') #前面是老字符串,后面是新字符串,注意要加引号
print(b)
3字符串拼接
方法一:【通过+号】
a='wujiadong'
b='jiangrui
c='a'+'b' # +号拼接
print(a+b)
方法二:【通过占位符%】
a='my name is wujiadong.'
print(a)
b='my name is %s wujiadong'%'xiaowu' #
print(b) 结果: my name is xiaowu wujiadong
%s—字符串的占位符
%d—数字的占位符
方法三:【.join()】最好的方法
a='wu'
b='jia'
c='dong'
d1=''.join([a,b,c])
d2='*'.join([a,b,c])
print(d1) 结果:wujiadong
print(d2) 结果:wu*jia*dong
4读写文本
w-write r-read a-append
a=open('a.txt','w') #创建打开文件
a.write('hi.\nsecond hi.') #写内容只能写字符串
a.close() #关闭文件
a=open('a.txt','r') #这里写完后可以help(d)看有哪些读取的方法
print(list(a)) 结果:['hi.\n', 'second hi.'] #用list()转换函数会返回文件的实际内容(以列表的形式)
#这里如果直接打印a会报错。a是一个文件对象
print(a.read(100)) 结果:可以直接输出结果,100也可以不写。如果再读,需要a.seek(0)
#两次输出
print(a.readline()) 结果:输出hi和空行
print(a.readline()) 结果:输出second hi
>>> a=open('1.txt','r')
>>> a=open('1.txt','w')
>>> a.write('wowowo\naiaiaiai\nyouyouyou')
25
>>> a.close()
>>> a=open('1.txt','r')
>>> import linecache
通过模块linecache
print(linecache.getline('1.txt',1))
或
>>> lines=linecache.getlines('1.txt')
>>> print(lines)
5修改字符串
a='this is jiadong'
a=a.replace('this','that') #替换
print(a) 结果:that is jiadong
6字符串格式化
(1) 通过format()函数:
print('{0} love {1} {2}'.format('I','jia','dong')) 结果 I love jia dong
print('{}{}'.format('jia','dong')) 结果 jiadong
print('{1}{0}{1}'.format('jia','dong')) 结果 dongjiadong
(2) 通过关键字:
print('{a} love {b} {c}'.format(a='i',b='jia',c='dong')) 结果 i love jia dong
print('{0} love {a} {b}'.format('jia',a='wu',b='dong')) 结果jia love wu dong #综合使用,位置参数必须在关键字参数前
(3) 通过下标:
p=['jiadong',18]
print('{0},{0}'.format(p)) 结果 ['jiadong', 18],['jiadong', 18] #两0之间可以有逗号,也可以没有逗号
print('{0[0]},{0[1]}'.format(p)) 结果 jiadong,18
7格式限定符:(语法是{}中带:号)
A 填充与对齐:
(1)填充跟对齐一起使用
(2)^、<、>分别是居中、左对齐、右对齐,后面带宽度
(3):号后面带填充的字符,只能是一个字符,不指定的话默认用空格填充
print('{:>8}'.format('189')) 结果 189 #大于号右边靠
print('{:<8}'.format('189')) 结果 189 #小于号左边靠
print('{:0<8}'.format('189')) 结果 18900000 #用0填充
print('{:a>8}'.format('189')) 结果 aaaaa189 #用a填充
B 精度与类型f
print('{:.2f}'.format(321.33345)) 结果 321.33 # 其中 .2 表示长度为2的精度,f表示folder类型
C 其他类型
(1)主要是进制了,b、d、o、x分别是二进制、十进制、八进制、十六进制。
print('{:b}'.format(17)) 结果 10001
print('{:d}'.format(17)) 结果 17
print('{:o}'.format(17)) 结果 21
print('{:x}'.format(17)) 结果 11
(2)用,号还能用来做金额的千位分隔符
print('{:,}'.format(1234567890)) 结果 1,234,567,890
D 字符串格式化符号含义
(1)%c格式化字符串机器ASCII码
print('%c'% 97) 结果 a
print('%c %c %c'% (97,98,99)) 结果 a b c
(2)%s格式化字符串
print('%s'% 'I love wujiadong') 结果 I love wujiadong
(3)%d格式化整数
print('%d+%d=%d'%(4,5,4+5)) 结果 4+5=9
(4)%o格式化无符号八进制数
print('%o'% 10) 结果 12
(5)%x格式化无符号十六进制数
print('%x'% 10) 结果 a
(6)%X格式化无符号十六进制数(大写)
print('%X'% 10) 结果 A
print('%e'%27.123) 结果A0
(7)%f格式化定点数,可指定小数点后的精度
print('%f'%27.123) 结果 27.123000
(8)%e用科学计算法格式化定点数
print('%e'%27.123) 结果 2.712300e+01
(9)%E同%e
print('%E'%27.123) 结果 2.712300E+01
(10)%g根据值的大小决定使用%f或%e
print('%g'%27.123) 结果 27.123
(11)%G作用同%g
print('%G'%27.123) 结果 27.123
E 字符串格式化操作符辅助指令