返回顶部
首页 > 资讯 > 后端开发 > Python >[笔记]python template
  • 751
分享到

[笔记]python template

笔记pythontemplate 2023-01-31 05:01:25 751人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

template是python中的string库的一部分 使用template可以不编辑应用就可以改变其中的数据 模板还可以被他的子类修改 template是含有占位符的字符串 用字典将值映射到模板中 占位符后面跟着的变量名要

template是python中的string库的一部分

使用template可以不编辑应用就可以改变其中的数据

模板还可以被他的子类修改

template是含有占位符的字符串

用字典将值映射到模板中

占位符后面跟着的变量名要符合Python语法中的变量名规则

Template(“$name is friends with $friend”)

from string import Template


def main():
    cart = []
    cart.append(dict(item='coke',price=11,Qty= 1))
    cart.append(dict(item='cake',price=12,qty=6))
    cart.append(dict(item='fish',price = 1,qty =4))

    t = Template("$qty * $item = $price")
    total = 0
    print "Cart"
    for data in cart:
        print t.substitute(data)
        total += data["price"]

    print "Total: %s"%(total,)


if __name__ == "__main__":
    main()

占位符所引导的变量没与字典匹配的话,解释器会抛出KeyError。因为我们的字典里没有这个键。

一些占位符引导的变量是不好的。比如,这个变量以数字开头。这会使解释器抛出ValueError异常。

如果我们使用这个函数,template可以处理这些异常并返回给我们字符串。

如果哪个占位符变量有异常,返回的这个字符串中这个占位符就没有变化,不会被替代。

比如,Template(“$name had $money”).如果money这里有错误,那么使用safe_substitute()后输出的就是“James had $money”

我们要做的就是重载类属性delimiter,并修改相应的模板字符串和变量。这里我们用C语言的取地址符号替代默认的美元$符号。

from string import Template


class MyTemplate(Template):
    delimiter = '&'

def main():
    cart = []
    cart.append(dict(item='coke',price=11,qty= 1))
    cart.append(dict(item='cake',price=12,qty=6))
    cart.append(dict(item='fish',price = 1,qty =4))

    t = MyTemplate("&qty * &item = &price")
    total = 0
    print "Cart"
    for data in cart:
        print t.substitute(data)
        total += data["price"]

    print "Total: %s"%(total,)


if __name__ == "__main__":
    main()

运行结果还是一样的。

Cart
1 * coke = 11
6 * cake = 12
4 * fish = 1
Total: 24

如果你行输出delimiter的话,就要连续输入两个delimiter。可以认为,delimiter就是转义符。比如,在delimiter是’$’的情况下:

>>> t = Template(“$you owe me $$0.”)
>>> t.substitute(dict(you=’James’))
“James owe me $0.”

如果你还想改变占位符后面的变量名的命名规则,这也可以。继承Template类之后,改变类属性idpattern,其默认值为r”[_a-z][_a-z0-9]*”。

如果你还有需求,想要改变一个单词的某一部分。这也行。只需将占位符后面的变量名加上{}。比如:

>>> t = Template(“The ${back}yard is far away.”)
>>> t.substitute(dict(back=’ship’))
“The shipyard is far away.”

--结束END--

本文标题: [笔记]python template

本文链接: https://lsjlt.com/news/188960.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • [笔记]python template
    template是python中的string库的一部分 使用template可以不编辑应用就可以改变其中的数据 模板还可以被他的子类修改 template是含有占位符的字符串 用字典将值映射到模板中 占位符后面跟着的变量名要...
    99+
    2023-01-31
    笔记 python template
  • Python笔记
    列表[List] 元组(truple) 字典{dict} # 列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推 # list comprehension [i for i in range...
    99+
    2023-01-31
    笔记 Python
  • python笔记(1)
    1.python2.x版本默认编码格式是ASSIC,不支持中文; 2.python3.x版本默认编码格式是UNICODE,支持中文; 3.支持中文的字符编码表:GB2312→GBK1.0→GB18030; 4.UNICODE的拓展字符集编...
    99+
    2023-01-30
    笔记 python
  • python笔记day3
    字典修改或者添加:dict['key'] = value程序二:file1.txt文件内容如下:alex|123|1carrick|123|1tony|123|1从文件file1.txt中读出内容,写成dic = {'carrick': [...
    99+
    2023-01-31
    笔记 python
  • python笔记day2
    作用域只要内存中存在就可以使用,在有函数栈的情况下,还需要加一个条件。name = {'name1':'Carrick','name2','Tina'}for item in name:  print item  -->仅仅是打印,没...
    99+
    2023-01-31
    笔记 python
  • python笔记(一)
    字符串处理单双引号一样.title():将每个单词的首字母变为大写,其余小写(不管原来是什么样).upper():将字符串中所有字母变为大写.lower():将字符串中所有字母变为小写.strip():删除行首和行末的空白(空格和制表符)(...
    99+
    2023-01-31
    笔记 python
  • Python - 笔记1
    常量为了和变量做区分,全部采用大写字母,之间用下划线连接。 静态方法:可以直接用类名来调用的方法,不需要创建对象,不会隐式的传送self。 根据面向对象的设计原则,应该将对象的职责封装到类的代码内部,尽量简化调用一方的代码调用。 1....
    99+
    2023-01-31
    笔记 Python
  • python openpyxl笔记
    from openpyxl import Workbookwb = Workbook()ws = wb.active'''指定sheetwb.cr...
    99+
    2023-06-01
  • Python笔记(二)——python调
     前一篇讲了简单的C/C++调用Python脚本模块(.py)。既然是用于诸多游戏程序的脚本语言,那肯定是缺不了互调(礼尚往来)。因此,本篇讲一个简单的python调用C/C++写的DLL模块,对Python进行功能扩展。这里写一个简单的例...
    99+
    2023-01-31
    笔记 Python python
  • [PYTHON]python 基础笔记(
    10. 编写一个Python脚本问题我提出的问题是: 我想要一个可以为我的所有重要文件创建备份的程序。尽管这是一个简单的问题,但是问题本身并没有给我们足够的信息来解决它。进一步的分析是必需的。例如,我们如何确定该备份哪些文件?备份保存在哪里...
    99+
    2023-01-31
    基础 笔记 PYTHON
  • Python学习笔记
    Python介绍 Python是一种解释型、面向对象的语言。 官网:www.python.org Python环境 解释器:www.python.org/downloads 运行方式: 交互模式。在IDLE中运行。 脚本模式。文件的后缀...
    99+
    2023-01-30
    学习笔记 Python
  • Python进阶笔记
    列表生成式 函数的参数类型 lambda函数 map, reduce, filter, sorted函数 eval, exec, join, zip函数 itertools中的函数 copy与deepcopy函数 模块 os、sys模块...
    99+
    2023-01-31
    进阶 笔记 Python
  • 整理python笔记
    ...
    99+
    2023-01-31
    笔记 python
  • Python语言笔记
    标识符第一个字符必须是字母表中字母或下划线'_'。标识符的其他的部分有字母、数字和下划线组成。标识符对大小写敏感。 注释Python中单行注释以 # 开头,实例如下:#!/usr/bin/python3 多行语句Python 通常是一行写完...
    99+
    2023-01-31
    语言 笔记 Python
  • Python 学习笔记
    rs=Person.objects.all() all返回的是QuerySet对象,程序并没有真的在数据库中执行SQL语句查询数据,但支持迭代,使用for循环可以获取数据。 print rs.query 会打印出原生sql语句 rs=Pe...
    99+
    2023-01-31
    学习笔记 Python
  • python复习笔记
    #python复习笔记<font color=blue>##基础</font><pre>1.下划线(_)在解释器中有特别的含义,表示最后一个表达式的值。 <pre>Microsoft Wind...
    99+
    2023-01-31
    笔记 python
  • 【Python学习笔记】-Python中
    python中的格式为 为真时的结果 if 判定条件 else 为假时的结果 实例: print(1 if 5>3 else 0) 是先输出结果,再判定条件 输出1,如果5大于3,否则输出0 一般用于判断赋值中,例...
    99+
    2023-01-31
    学习笔记 Python
  • Python学习笔记五(Python
    Python urllib模块提供了一个从指定的URL地址获取网页数据,然后对其进行分析处理,获取想要的数据。1.查看urllib模块提供的urlopen函数。help(urllib.urlopen) urlopen(url, data...
    99+
    2023-01-31
    学习笔记 Python
  • Python学习笔记四(Python
    Python os模块提供了一个统一的操作系统接口函数,通过python os模块可以实现对系统本身的命令,文件,目录进行操作,官方参考文档( http://docs.python.org/library/os)。1)os.sep 可以...
    99+
    2023-01-31
    学习笔记 Python
  • python OpenCV学习笔记
    目录图像翻转图像轮廓排序图像轮廓排序颜色识别基础颜色识别根据BGR获取HSV阈值编辑器图像翻转 使用Python的一个包,imutils。使用下面的指令可以安装。 pip in...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作