字符串的格式化
Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。
基本语法是通过 {} 和 : 来代替以前的 % 。
format 函数可以接受不限个参数,位置可以不按顺序。
先来看看以前的%的方法。
先占一个位置,之后再填上实际的变量,可以省去使用数据转换函数的麻烦。例如print(‘血量:%s 攻击:%s’ % (player_life,player_attack))。实际变量之间用逗号隔开。
%s :占一个位置用来放字符串
%f:占一个位置用来放浮点数,%.2f表示保留两位小数,‘.’后的数字表示小数位数
%d:占一个位置用来放整数
import time
n=input("请输入您的血量:\n")
m=input("请输入您的攻击力:\n")
print("正在生成数据中,请稍后...")
time.sleep(1.5)
print("您的血量为:%i\n您的攻击力为:%i"%(int(n),int(m)))
再来看看现在学习到的format()方法。
a="血量是:{0};攻击力是:{1}"
print(a.format(1000,200))
#输出结果
血量是:1000;攻击力是:200
相比之下,format()方法更加精简和方便,不用区分%+类型码了。
除了借助{0}、{1}这类索引占位符来传递参数,还可以直接命名一个参数名,精准传入参数。
a="名字是:{name};年龄是:{age}"
print(a.format(name="王者",age=24))
#输出结果
名字是:王者;年龄是:24
可变字符串
在 Python 中,字符串属于不可变对象,不支持原地修改,如果需要修改其中的值,智能创建新的字符串对象。但是,经常我们确实需要原地修改字符串,可以使用 io.StringIO对象或 array 模块。
import io
s = "hello, world"
sio = io.StringIO(s)
print(sio.getvalue())
sio.seek(7)
sio.write("g")
print(sio.getvalue())
#输出结果
hello, world
hello, gorld