(小甲鱼python)字符串系列笔记合集五 第五课、字符串V总结 格式化字符串format 单纯输出花括号 align指定字符串对齐的方式

一、字符串总结五

1.格式化字符串

“字符串”.format()

字符串的 format() 方法上使用 字符串格式化语法

>>> year=2010
>>> "鱼c工作室成立于year年"    #引号中的内容被当做字符串来处理了
'鱼c工作室成立于year年'

#花括号{}用来占位,中英文{}都可以
#在字符串中,格式化字符串的套路就是使用一对花括号({})来表示替换字段,就在原字符串中先占一个坑的意思,然后真正的内容被放在了 format() 方法的参数中。
>>> "鱼c工作室成立于{}年".format(year)  
'鱼c工作室成立于2010年'

>>> "1+2={},2的平方时{},3的立方是{}".format(1+2,2*2,3*3*3)
'1+2=3,2的平方时4,3的立方是27'
>>> "{}看到{}就很激动".format("小甲鱼","漂亮的小姐姐")
'小甲鱼看到漂亮的小姐姐就很激动'

#通过下标索引找到对应元素
>>> "{1}看到{0}就很激动".format("小甲鱼","漂亮的小姐姐")
'漂亮的小姐姐看到小甲鱼就很激动'
>>> "{0}{0}{1}{1}".format("是","非")
'是是非非'

#选用关键字参数,不用管顺序
>>> "我叫{name},我爱{fav}".format(name="小甲鱼",fav="python")
'我叫小甲鱼,我爱python'
>>> "我叫{name},我爱{0},喜爱{0}的人,运气都不会太差".format("python",name="小甲鱼")
'我叫小甲鱼,我爱python,喜爱python的人,运气都不会太差'

2.format单纯输出花括号

“字符串”.format()

>>> "{},{},{}".format(1,"{}",2)      #参数里面直接写上花括号
'1,{},2'
>>> "{},{{}},{}".format(1,2)         #花括号注释花括号
'1,{},2'

3.align指定字符串对齐的方式
在这里插入图片描述3.1 ‘^’强制字符串在可用空间中居中

“{:^}”.format()
冒号":"是必须的,它的左边是位置或者关键字索引,右边是格式化选项。

‘^’强制字符串在可用空间中居中

>>> "{:^}".format(250)
'250'
>>> "{:^10}".format(250)  #宽度为10,字符250长度为3
'   250    '

3.2align中’<‘和’>’

'<'强制字符串在可用空间内左对齐(默认)
'>'强制字符串在可用空间内右对齐

在这里插入图片描述
'<'强制字符串在可用空间内左对齐
'>'强制字符串在可用空间内右对齐

#位置索引1对应的数250在空间中向右
>>> "{1:>10}{0:<10}".format(520,250) 
'       250520       '
>>> "{left:>10}{right:<10}".format(right=520,left=250)     #关键字参数
'       250520       '

3.3宽度前面加0进行0填充(0可以对正负进行感知)

“{:010}”.format()

填充0只对数字有效,字符串会报错

>>> "{:010}".format(520)
'0000000520'
>>> "{:010}".format(-520)       # 0填充到负号的右边
'-000000520'
>>> "{:010}".format("fishc")     #字符串会报错
Traceback (most recent call last):
  File "<pyshell#52>", line 1, in <module>
    "{:010}".format("fishc")
ValueError: '=' alignment not allowed in string format specifier

3.4用%进行填充

“{1:%>10}{0:%<10}”.format(520,250)

#宽度为10,位置索引1对应的数250在空间中向右,,,,
>>> "{1:%>10}{0:%<10}".format(520,250)
'%%%%%%%250520%%%%%%%'

3.5 align中的‘=’

‘=’ 强制将填充放在符号(如果有)之后但在数字之前的位置(这适用于以"+000000120"的形式打印字符串)

前面填充0的例子也可以这样写

>>> "{:0=10}".format(520)
'0000000520'
>>> "{:0=10}".format(-520)
'-000000520'
>>> 

课后题:
1.请问下面代码会打印什么内容?

>>> "我叫{name},我爱{0}。喜爱{0}的人,运气都不会太差^o^".format(name="小甲鱼", "python")
SyntaxError: positional argument follows keyword argument

改:“字符串”.format(“python”,name=“小甲鱼”)
答:报错
解析:这里有个小细节需要大家注意一下,就是使用关键字进行索引的话,它必须放在位置索引的后面,否则就会报错(其实在后面我们讲解到自定义函数的时候,也会提到这个规则)。
2. 请问下面代码会打印什么内容?

>>> "{{0}}".format(1)
'{0}'

解析:在花括号外边套一层花括号,外层是对内层起到“注释“的作用。
所谓”注释“,就是剥夺了花括号的特殊功能,使它变会一个正经的字符串。
3.请问下面代码会打印什么内容?

>>> "{{{0}}}".format(1)
'{1}'

解析:
这里稍微有一丢丢小复杂了,由于存在 3 层花括号包裹,我们必须逐层给它剥开。
首先最外层注释了倒数第二层,那么最终结果将保留一个花括号。
接着,内部剩下的 {0},则正常解析,获取 format() 的第一个参数。
4.请问下面代码会打印什么内容?

>>> "{{{{{{0}}}}}}".format(1)
'{{{0}}}'

解析:数一下,这里存在 6 层花括号包裹,所以不难想象,每 2 层进行一次注释,得到的就是 3 对失去了特殊功能的花括号,所以剩下一个 0 也自然是正经的字符串。

课后题来自链接: 小甲鱼python

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值