python for with,python for循环的用法
今天,我学习了如何使用python的字符串服务的格式化程序。主要是协调自己的代码。许多来自java和C语言的开发人员不喜欢python的原生字符串格式化工具,因此每个人似乎都喜欢使用以下格式化工具
info= myna meis % sir really enjoy % s %( younger , python )
现在,我们将学习使用更像python的字符串格式样式。
Python的内建字符串服务模块string本身提供了字符串操作的工具类方法,包括常用常量、更复杂的格式化程序类和模板类。现在,我们将重点放在弦上。格式化程序类。
字符串的方法。格式化程序类:
Format (format _ string,*args,**kwargs))。
format方法是字符串的主要方法。Formatter类,它的参数是必须格式化的目标字符串和必须用目标字符串填充的一系列序列(比如字典和元组)。format方法封装了vformat方法。
我是按照文件的说明写的上面的。其实Formatter.format方法和str.format没有什么区别,它们的语法都是通用的,你记住一个就可以了。哪个用起来更方便?
v格式(format _ string,args,kwargs))。
Parse(格式字符串))是
get_field(field_name,args,kwargs)).
get_value(key,args,kwargs)).
以上方法互相调用,一起研究,其中Formatter.format最后调用Formatter.vformat方法,测试步骤如下
类别(对象):
name=默认名称
def __init__(self,name= ):
self.name=name
me=Person(younger ))))).
数据=[我]
s= myna meis { person [0]。名称:^ 30 }
格式化程序=字符串。格式化程序(
格式。格式化程序(数据))。
输出结果:
格式化程序。Format(s,person=data).
我的名字叫杨格尔
现在使用Formatter.vformat方法。
former.vformat (s),(person):data))
输出结果:
格式化程序。Format(s,person=data).
我的名字叫杨格尔
两种方法的结果完全一样,只是一个包装了另一个。此外,Formatter.vformat方法需要四个参数。中间的空元组和最后一个空字典必须存在。因为Formatter.vformat的参数是args(而不是(args,)kwargs),
现在,我将介绍上述四种方法的调用顺序。Get_value调用get_field,get_field调用parse,vformat调用get_value。一般来说,调用格式就够了。以上四个方法都是为了继承Formatter而创建的。
现在,执行以下步骤
对于I,vinenumerate(Formatter.parse(s,start=0)):
一、五
输出结果:
0(myNoneis)、)人(0)。姓名((^ 30)、无()).
以上是返回的编号为0的第一个元组。这四个值是
(文字_文本,字段_名称,格式_规格,转换)
因为我们没有canversion,所以第四项是无。你可以写一个!r!s
这样,字符串
s=我的名字是{person[0]。名字!r:^30}的
我理解前两个。只要看看字面意思就知道是什么意思了。第三项表示格式化的站符号。我这里用的是天空。您可以使用星号。现在把S变成这个
s=我的名字是{person[0]。名字!r:*^30}的
输出是:
八哥* * * * * * * * * 幼鸟 * * * * * * * * * * * * *
*符号用作占位符。
运行以下程序:
对于I,vinenumerate(Formatter.parse(s)):
温度=v
Formatter.get_field(temp[1],)、{person : data})
输出结果如下。
(“更年轻的”,“人”)
就文档而言,就是“object”和“used_key”。因为这个键与get_value中的键相同,所以在调用get_value之前必须先调用get_field。
继续执行代码
ret=formatter . get _ value(formatter . get _ field(temp[1],)、{Person3360data}(1),)、{Person
这个返回的ret就是获得的对象。这是一份名单。只有一样东西是我们先埋起来的。到目前为止,所有的方法都走了一圈。如果我们想重写自己的格式语法,可以直接继承这个类,重写这些方法。剩下的两种方法很容易理解,可以直接查看文档。
Formatter.format语法
在这里,我介绍不使用文档的方法,只用我的理解。
仅格式化关键字类型的字符串
最简单的:
八哥梅氏{姓名}”。格式(name= younger ).
有多个组合条件。
我的名字是{person[0]。名字!r : * ^ 30 }”。format (person=data _ list)))))))).
上面的意思是有单子进来了。列表中有个人,关键字是个人[0].姓名,好理解。第0个对象的name属性。这个用起来很方便,也很好记。从!以R开头的奇怪语法是formatsSpecificationMini-Language,它定义了百分比、正数和负数、复数、数量、时间、小数位和格式化字符串的站符号等数据类型。方法和我写的例子一样,也不复杂。这里我们来对比一下例子。
仅格式化位置类型的字符串。
八哥。名称}”。格式(人)).
用位置和键格式化字符串
我叫{0.name},住在{ area [0]。城市}”。format (person,area_list))).
这里需要注意的是,位置必须写得更靠前。不然就不行了。建议只使用一种方式写入格式化字符串。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。