8.Python基础7_字符串02

字符串格式化处理:

Python的字符串格式化有两种方式:%格式符方式,format方式

%形式的格式化:

print ("我叫 %s 今年 %d 岁!" % ('小明', 10))

运行结果:

我叫 小静 今年 18 岁!

format形式格式化:

1、使用位置参数

要点:从以下例子可以看出位置参数不受顺序约束,且可以为{},只要format里有相对应的参数值即可,参数索引从0开,传入位置参数列表可用*列表

li = ['hoho',18]
print('my name is {} ,age {}'.format('hoho',18))
print('my name is {1} ,age {0}'.format(10,'hoho'))
print('my name is {1} ,age {0} {1}'.format(10,'hoho'))

print('my name is {} ,age {}'.format(*li))

运行结果:

我叫 小静 今年 18 岁!
my name is hoho ,age 18
my name is hoho ,age 10
my name is hoho ,age 10 hoho
my name is hoho ,age 18
2、使用关键字参数

要点:关键字参数值要对得上,可用字典当关键字参数传入值,字典前加**即可

hash = {'name':'hoho','age':18}
print('my name is {name},age is {age}'.format(name='hoho',age=19))
print('my name is {name},age is {age}'.format(**hash))

运行结果:

my name is hoho,age is 19
my name is hoho,age is 18

字符串处理

常用处理:
分隔,查找,计算长度,替换
以ping百度得到的返回数据为例:

myString='''正在 Ping www.a.shifen.com [220.181.112.244] 具有 32 字节的数据:
 2 来自 220.181.112.244 的回复: 字节=32 时间=27ms TTL=54
 3 来自 220.181.112.244 的回复: 字节=32 时间=36ms TTL=54
 4 来自 220.181.112.244 的回复: 字节=32 时间=42ms TTL=54
 5 来自 220.181.112.244 的回复: 字节=32 时间=36ms TTL=54
 6 
 7 220.181.112.244 的 Ping 统计信息:
 8     数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
 9 往返行程的估计时间(以毫秒为单位):
10     最短 = 27ms,最长 = 42ms,平均 = 35ms'''

#算长度以及行数
print("长度为:",len(myString))
c=myString.count("\n")+(not myString.endswith("\n"))
#求行数方法二
c=myString.count("\n")+[1,0][myString.endswith("\n")]
print("行数为:",c)
#查找、切片
print("******************查找、切片**********************")
print("220.181.112.244第一个IP开始的位置:",myString.find("220"))
start1=myString.find("220")
print("220.181.112.244IP结束的位置:",myString.find("]",start1))
end1=myString.find("]",start1)
print("IP地址是:",myString[start1:end1])
print("第一个TTL开始的位置:",myString.find("TTL"))
start2=myString.find("TTL")
print("第一个TTL结束的位置:",myString.find("\n",start2))
end2=myString.find("\n",start2)
print("TTL的值为:",myString[start2:end2].split("=")[1])

运行结果:

长度为: 386
行数为: 10
******************查找、切片**********************
220.181.112.244第一个IP开始的位置: 26
220.181.112.244IP结束的位置: 41
IP地址是: 220.181.112.244
第一个TTL开始的位置: 97
第一个TTL结束的位置: 103
TTL的值为: 54

字符串和列表之间的转换

字符串转换为列表split、list
列表转换为字符串join

#承接上部分代码!!!!
#和列表之间的转换
print("******************和列表之间的转换**********************")
print("以换行符为分割转换为列表:")
list1=myString.split("\n")
print(list1)
print("把列表拼接为字符串:")
string2='\n'.join(list1)
print("拼接之后的字符串为:",string2)
print(list("12345"))

运行结果:

******************和列表之间的转换**********************
以换行符为分割转换为列表:
['正在 Ping www.a.shifen.com [220.181.112.244] 具有 32 字节的数据:', ' 2 来自 220.181.112.244 的回复: 字节=32 时间=27ms TTL=54', ' 3 来自 220.181.112.244 的回复: 字节=32 时间=36ms TTL=54', ' 4 来自 220.181.112.244 的回复: 字节=32 时间=42ms TTL=54', ' 5 来自 220.181.112.244 的回复: 字节=32 时间=36ms TTL=54', ' 6 ', ' 7 220.181.112.244 的 Ping 统计信息:', ' 8     数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),', ' 9 往返行程的估计时间(以毫秒为单位):', '10     最短 = 27ms,最长 = 42ms,平均 = 35ms']
把列表拼接为字符串:
拼接之后的字符串为: 正在 Ping www.a.shifen.com [220.181.112.244] 具有 32 字节的数据:
 2 来自 220.181.112.244 的回复: 字节=32 时间=27ms TTL=54
 3 来自 220.181.112.244 的回复: 字节=32 时间=36ms TTL=54
 4 来自 220.181.112.244 的回复: 字节=32 时间=42ms TTL=54
 5 来自 220.181.112.244 的回复: 字节=32 时间=36ms TTL=54
 6 
 7 220.181.112.244 的 Ping 统计信息:
 8     数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
 9 往返行程的估计时间(以毫秒为单位):
10     最短 = 27ms,最长 = 42ms,平均 = 35ms
['1', '2', '3', '4', '5']

替换字符串replace #替换会生成新的字符串,原来的字符串不变

print("*****************替换字符串***********************")

print("把myString字符串中ip地址全都替换为8.8.8.8:")
print(myString.replace("220.181.112.244","8.8.8.8"))
print("把myString字符串中第一个ip地址替换为8.8.8.8:")
print(myString.replace(myString[start1:end1],"8.8.8.8",1))
print("替换会生成新的字符串,原始字符没有改变:")
print(myString)

运行结果:

替换会生成新的字符串,原始字符没有改变:
正在 Ping www.a.shifen.com [220.181.112.244] 具有 32 字节的数据:
 2 来自 220.181.112.244 的回复: 字节=32 时间=27ms TTL=54
 3 来自 220.181.112.244 的回复: 字节=32 时间=36ms TTL=54
 4 来自 220.181.112.244 的回复: 字节=32 时间=42ms TTL=54
 5 来自 220.181.112.244 的回复: 字节=32 时间=36ms TTL=54
 6 
 7 220.181.112.244 的 Ping 统计信息:
 8     数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
 9 往返行程的估计时间(以毫秒为单位):
10     最短 = 27ms,最长 = 42ms,平均 = 35ms
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值