内容正文:
《Python应用程序设计》
Python字符串格式化
计算机教科组
1
Python字符串格式化
Python字符串格式化的方法有两种,一种是采用格式化操作符“%”,另一种是采用字符串的format( )函数。
格式化操作符“%”
在%操作符左侧放置一个需要进行格式化的字符串,这个字符串带有一个或多个嵌入的转换目标,都以%开头,如%s,%d,%f。
在%操作符右侧放置一个对象,这些对象将会插入到左侧想让Python进行格式化字符串的一个转换目标的位置上。如 'my name is %s' % 'Green'
格式化操作符“%”
符 号 含 义
%c 格式化字符及其ASCII码,输出ASCII码字符
%s 格式化字符串
%d 格式化整数
%f 格式化浮点数字,可指定小数点后的精度(四舍五入)
%% 打印一个%.如'%d%%%d' %(5 / 4, 3 % 4)值为'1%3'
字符串的格式化语法如下所示:
"%s" % str1
"%s %s… " % (str1,str2…)
【注】如果要格式化多个值,元组中元素的顺序必须与格式化字符串中替代符的顺序一致。如:
print('%s比%s大' % ('a','A')) #a比A大
print('%s比%s大' % (2,1)) #2比1大
字符串格式化举例
>>> '%c' % 97 #%c格式化字符及其ASCII码值
'a'
>>> '%c %c %c' % (97,98,99)
'a b c' #多个被格式化对象用元组
>>> 'my name is %s' % 'Green'
'my name is Green' #%s格式化字符串
>>> '%d,%c' % (65, 65)
'65,A'
>>> "Pi is %.2f" %3.141
'Pi is 3.14' #格式化浮点数字,可指定小数点后的精度(四舍五入)
字符串格式化举例
>>> '李四的年龄是%d.性别是%s' % (66, '男')
'李四的年龄是66.性别是男'
%s在格式化列表、字典、集合时,是把它们当作整体进行格式化。
>>> '%s' % [1, 2, 3]
'[1, 2, 3]'
>>> '%s' % {1:2,3:4}
'{1: 2, 3: 4}'
>>> '%s' % {1,2,3}
'{1, 2, 3}'
而'%s' % (1, 2, 3)会报错:TypeError: not all arguments converted during string formatting,说明前后%和后面的参数数量不对应。
元组元素有多少个就需要字符串格式化的替代符多少个。如'%d%s%d' % (1, 2, 3)
课堂练习
1.表达式 ‘%s’%[2,3] 的值为?
2.表达式 ‘%c’%65 == str(65) 的值为?
3.表达式 ‘%s’%65 == str(65) 的值为?
4.表达式 ‘%d,%c’ % (65, 65) 的值为?
字符串格式化
%左侧通用结构
%[(name)][flags][width宽度][.precision精度],-左对齐,+正负号,0补零
>>> x = 1234
>>> test = '%d...%-6d...%06d' % (x, x, x)
>>> test
'1234...1234 ...001234'
字符串格式化
编程题:输入圆的半径,输出圆的面积。半径可能为浮点数。圆的面积保留到小数点后两位。
r=eval(input('请输入圆的半径:'))
s=3.14*r**2
print ("圆的面积为%.2f" %s)
format( )函数
字符串的函数 str.format(),它增强了字符串格式化的功能。它的基本思路是通过 {} 和 : 来代替以前的 % 。字符串模板中使用{ }表示槽位置,每个槽位置对应.format()中的一个变量。
format( )
1.字符串类型格式化采用format( )方法,基本使用格式是:
<模板字符串>.format(<逗号分隔的参数>)
2.format( )参数的三种映射
(1)位置顺序映射
info="同学{}的年龄是{}".format("张三",10)
print(info) #同学张三的年龄是10
(2)位置索引映射:位置最小索引值必须从0开始
info2='{0}今天{1}为{0}学习'.format('我','努力')
print(info2) #我今天努力为我学习
format( )函数
(3)关键字映射:与关键字的先后顺序无关
in