python基础学习-字符串
字符串转换工具
单个字符串的转换可以用以下方法
1.ord(),将字符串转换成ASCII码
2.chr(),将ASCII码转换成对应的字符
stringVal = "h"
print(ord(stringVal)) #将单个字符串"h"转换成->104
print(chr(104)) #将ACSII码 104 ->“h”
#为了生成一下个字符,可以预先将当前字符转换成整形
s = '5'
s = chr(ord(s) + 1) #使用ord将5转成ACSII码,然后+1,再通过chr将ACSII码转成对应的字符串
print(s) #结果:6
s = chr(ord(s) + 1)
print(s) #结果:7
h =ord('5')-ord('0')
print(type(h)) #得到一个整数类型 <class 'int'>
#配合一个循环语句去转换
B = '1101'
I = 0
while B != '':
I = I*2 + (ord(B[0]) - ord('0'))
B = B[1:] #第一次循环后B变为101,第二次循环B变为01,第三次循环后B变为1,第四次循环B变为‘’空字符串
print(I) #结果:I = 13
3.通过int(),将字符串转成整数
4.通过str(),可以将整数转换成字符串
stringVal_1 = "2" print(int(stringVal_1)) #由字符串“2” - > 整数2
修改字符串
字符串不可以在原地修改,一旦尝试原地修改就会报错
#原地修改字符串
stringVal = 'hello'
stringVal[0] = "f" #打印结果报错 TypeError: 'str' object does not support item assignment
可以这样修改字符串
1.合并->给新的字符串赋值给原来的变量名
2.分片、索引 ->给新的字符串赋值给原来的变量名
3.通过replace()函数 - > 给新的字符串赋值给原来的变量名
4.通过格式化format() - >给新的字符串赋值给原来的变量名
5.通过将字符串转化为列表类型,对列表数据进行修改,再利用join()函数将列表类型变为字符串
#一、利用合并方法,修改字符串 stringVal = 'spam' stringVal = stringVal + 'SPAM' print(stringVal) #spamSPAM
#二、用分片\索引方法修改字符串
stringVal = 'spamSPAM!'
stringVal = stringVal[:4] + 'JACK' + stringVal[-1]
print(stringVal) # spamJACK!
#三、用replace()函数替换字符串
stringVal = 'spamSPAM!'
stringVal = stringVal.replace('SPAM','JACK')
print(stringVal) #spamJACK!
h = 'xxxxSPAMxxxxSPAMxxxx'
h = h.replace('SPAM','EGGS')#替换所有
h = h.replace('SPAM','EGGS',1)#替换1次
#四、格式化后的结果是一个新的字符串对象
s = 'That is %d %s bird'%(1,'dead')
h = 'That is {0} {1} bird'.format(1,'dead')
#用find()函数去修改字符串
h = 'xxxxSPAMxxxxSPAMxxxx'
where = h.find('spam') #若找不到字符串,直接返回-1;若找到,返回字符串的位置
#print(where)
where = h.find('SPAM')
print(where) #5
h = h[:where] + 'EGGS' + h[(where+4):]
print(h) #xxxxEGGSxxxxSPAMxxxx
stringVal = 'spammmy'
#第一步将字符串转换为列表类型
stringVal = list(stringVal)
print(stringVal) #['s', 'p', 'a', 'm', 'm', 'm', 'y']
#第二步,直接在列表中修改数据
stringVal[3:6]='xxx' #将列表的第3、4、5位修改为x ['s', 'p', 'a', 'x', 'x', 'x', 'y']
#第三步,通过join()函数将列表转为字符串
stringVal_1 = ''.join(stringVal)
print(stringVal_1) #结果spaxxxy
ss ='samp'.join(['eggs','pick','toast','bannge'])
文本解析
line = 'aaa bbb ccc' obLine = line[0:3] #用分片去提取,这种方法适合有固定偏移的字符 obLine2 = line[8:] obline1 = line.split() print(obLine,obLine2,obline1) #字符串中有多个分隔符、空格等没有固定偏移的,可以用split()去解析数据 text = 'bob,hacker,40,12000' texts = text.split(',') print(texts) #['bob', 'hacker', '40', '12000']
字符串格式化
#引用字典
xxml = "%(n)d,,%(m)s"%{"n":123,"m":"spam"}
print(xxml)
》》123,,spam
reply = """
Greetings....
Hello %(name)s!
Your age is %(age)d!
"""
values = {"name":"Jack","age":24}
print(reply % values)
》》
Greetings....
Hello Jack!
Your age is 24!

浙公网安备 33010602011771号