《笨办法学 python3》系列练习计划——5. 格式化字符串

题目

通过练习了解和掌握格式化字符串的使用。
之前的练习中使用了 print() 打印出的字符串内容是固定的,而格式化字符串可以将变量插入到字符串中打印出来,随着变量的改变打印出的内容也在改变。

加分练习
  1. 去掉所有变量名前面的 my_
  2. 试着使用更多的格式化字符。例如 %r 它的含义是“不管什么都打印出来”。
  3. 搜索 python 所有的格式化字符。
  4. 使用 python 的计算功能,将变量从英寸和磅转化为厘米和千克。




我的答案

5.0. 基础练习
my_name = 'Zed A. Shaw'
my_age = 35
my_height = 74 # 英寸
my_weight = 180 # 磅
my_eyes = 'Blue'
my_teeth = 'White'
my_hair = 'Brown'

print("let's talk about %s." % my_name)
print("He's %d inches tall." % my_height)
print("He's %d pounds heavy." % my_weight)
print("Actually that's not too heavy.")
print("He's got %s eyes and %s hair." % (my_eyes, my_hair))
print("His teeth are usually %s depending on the coffee." % my_teeth)
# 下面这行复杂一点
print("If i add %d, %d, and %d I get %d." % (
    my_age, my_height, my_weight, my_age + my_height + my_weight
))

这里写图片描述

5.1. 去掉 my_

预期去掉之后没变化
这里写图片描述

5.2. 使用 %r 格式化字符
# 试用 %r 格式化字符
print("这里尝试使用新的格式化字符占位符,看看效果: %r" % "放个字符串")
print("在试试放个数字:%r" % 666)
print("这次是数字字符串:%r" % '2333')

这里写图片描述
%r 容易和 %s 混淆,其主要区别在于 %r 把原始的信息显示了出来,如字符串保留了引号。由于这个特性有人会使用 %r 进行 debug 调试

5.3. python 的格式化字符串

python 常用的格式化字符及其效果

占位符作用示例结果
%s格式化为字符串‘%s’ % -666.66‘-666’
%r格式化为原始数据‘%r’ % ’ abc ‘” ‘abc’ “
%d格式化为 10 进制整数‘%d’ % 666‘666’
%c整数:将数字转换成其unicode对应的值,10进制范围为
0 <= i <= 1114111(py27则只支持0-255);
字符:将字符添加到指定位置
‘%c %c’ % (97, ‘b’)‘a b’
%u将被废除的方法,等于 %d
%o格式化为 8 进制整数‘%o’ % 8‘10’
%x格式化为 16 进制整数‘%x’ % 16‘10’
%X16 进制大写‘%X’ % 15‘F’
%f10进制浮点数;
可以用m.n控制最小长度(m)和最小小数位(n)
‘%f;%6.2f’ % (15,10)‘15.000000; 10.00’
‘10.00’的前面有个空格占位共6位
%e使用科学计数法表示浮点数‘%e’ % 0.00001‘1.000000e-05’
%E同 %e e为大写‘%.2E’ % 0.0004‘4.00E-04’
%g / %G以 10 进制或科学计数法表示浮点数 / (大写)‘%g’ % 1.001
‘%g’ % 0.00004
‘1.001’
‘4e-05

python 格式化字符辅助符号

辅助符号作用示例结果
*定义宽度或者小数点精度‘%*s; %.*f’ % (2, ‘a’, 2, 4)
’ a; 4.00’
设置了2位字符串,因此有一个空格占位
-用做左对齐‘%-2s左对齐空格在右边’ % ‘a’‘a 左对齐占位空格在右边’
+在正数前显示+号‘%+d, %+d, %+o, %+x’ %(-2, 3, 9, 20)‘-2, +3, +11, +14’
#在 8 进制前显示 0o
在 16 进制前显示 0x0X
‘%#o, %#x, %#X’ % (9, 16, 17)‘0o11, 0x10, 0X11’
0数字前填充0而非空格‘%05d’ % 5‘00005’
(var)映射变量(通常用来处理字段类型的参数)who = {‘name’:’哈哈餐馆’, ‘age’:17}

‘%(name)s is %(age)d years old’ % who
‘哈哈餐馆 is 17 years old’
m.nm 是显示的最小总宽度,
n 是小数点后的位数
‘%4.1f’ % 5’ 5.0’
5.4. 单位换算
# 单位换算
print("Zed A. Shaw 高 %.2f 厘米" % (height * 2.54))
print("Zed A. Shaw 重 %.2f 千克" % (weight * 0.45))

这里写图片描述




返回目录

《笨办法学 python3》系列练习计划——目录

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值