iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 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://www.lsjlt.com/news/188960.html(转载时请注明来源链接)

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • [笔记]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笔记day3
    字典修改或者添加:dict['key'] = value程序二:file1.txt文件内容如下:alex|123|1carrick|123|1tony|123|1从文件file1.txt中读出内容,写成dic = {'carrick': [...
    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笔记(一)
    字符串处理单双引号一样.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笔记day2
    作用域只要内存中存在就可以使用,在有函数栈的情况下,还需要加一个条件。name = {'name1':'Carrick','name2','Tina'}for item in name:  print item  -->仅仅是打印,没...
    99+
    2023-01-31
    笔记 python
  • 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复习笔记
    #python复习笔记<font color=blue>##基础</font><pre>1.下划线(_)在解释器中有特别的含义,表示最后一个表达式的值。 <pre>Microsoft Wind...
    99+
    2023-01-31
    笔记 python
  • 整理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中单行注释以 # 开头,实例如下:#!/usr/bin/python3 多行语句Python 通常是一行写完...
    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学习笔记】-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 Paste 学习笔记
    一、写在前面 这篇文章主要介绍了Python的Paste库的使用,学习过程中主要参考官网文档以及自己的理解,整理成笔记以便后续自己查阅。 如果转载,请保留作者信息。 邮箱地址:jpzhang.ht@gmail.com ...
    99+
    2023-01-31
    学习笔记 Python Paste
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作