# 关于format和format_map的使用
# 如果要使用输出的字符串对其不仅仅是可以使用format,还可以使用ljust/rjust/center来处理,输出当然也可以是使用%来进行操作,但是format()属于Python3的特性,所以在这里专门介绍format,其他的暂不打算做笔记

# 使用format进行简单输出
print(format('')) # 可以直接使用print('123'),这里是指为了演示,输出"123"

# 将输出的字符串规定大小20,也叫填充

print(format('', '>20'))  # 内容向右靠其,相当于rjust, 输出“                 123”
print(format('', '<20')) # 内容向右靠其,相当于ljust,输出“123 ”
print(format('', '^20')) # 内容向右靠其,相当于ljust,输出“ 123 ”
# 注意:上面例子的format()的'>20'/'<20'/'^20'默认输出的是字符串,及等价于'>20s'/'<20s'/'^20s'

# 如果想输入float类型怎么办?,当然是使用“.nf”

print(format(123.147, '>10.2f'))  # 字符串大小为10,输出的为float类型,取两位小数(会四舍五入),输出“    123.15”

# 如果想填充一些其他字符呢?那在填充前面添加填充内容

print(format('', '=>20'))  # 在内容的最左边填充“=”,输出“=================123”,其它同理

# 换种方式?可以

# 输入字符串

s = 'something: {}'
print(s.format('')) # 输出“something: 123”字符串

# 输出float类型

s = 'float: {:.2f}'
print(s.format(12.2222)) # 输出“float: 12.22”

# 那该怎么通过键值来输入呢?看下面

s = 'my name is {name}, age = {age}'
print(s.format(name='namejr', age=22)) # 输出“my name is namejr, age = 22”

# 觉得上面的输入有点麻烦?使用vars()能够找到变量域中的属性进行替换

name = 'namejr'
age = 22
print(s.format_map(vars())) # 输出“my name is namejr, age = 22”

# 难道vars()就这点功能?当然不是,我也是只发现冰山一角,下面也是使用方法:

class use_vars(object):
def __init__(self, name, age):
self.name = name
self.age = age
vars_info = use_vars('namejr', 22)
print(s.format_map(vars(vars_info))) # 输出“my name is namejr, age = 22”

# 难道format和format_map就这么完美? 也不是吧,比如参数缺省就挺惨的,直接抛出错误。不过可以使用__missing__解决

class check_vars(dict):
# 注意:定义为含有__missing__方法的dict对象
def __missing__(self, key):
return '{ '+ key+' is not defined }'
s = 'name is {name1}, age = {age1}'
name1 = 'namejr'
print(s.format_map(check_vars(vars()))) # 输出"name is namejr, age = { age1 is not defined }"

format()的简单实用 笔记的更多相关文章

  1. SpringMVC学习笔记九:拦截器及拦截器的简单实用

    SpringMVC中的interceptor拦截器是非常重要的,它的主要作用就是拦截指定的用户请求,并进行相应的预处理和后处理. 拦截时间点在"处理器映射器根据用户提交的请求映射出所要执行的 ...

  2. ASP.NET开发常用简单实用的方法

    ASP.NET开发简单实用的方法 一.打印和导出 打印和导出EXCEL在目前ASP.NET开发中可以说是必要的,有时候针对不同数据难易程度下,用有效快速的方法是解决办法的有效途径之一. 1.打印 后台 ...

  3. hook框架frida的安装以及简单实用案例

    1.下载地址 https://github.co/frida/frida/releases 2.另外两种安装方法 1.Install from prebuilt binaries This is th ...

  4. 3.2 配置构建Angular应用——简单的笔记存储应用

    本节我们会通过构建一个简单的笔记存储应用(可以载入并修改一组简单的笔记)来学习如何应用Angular的特性.这个应用用到的特性有: 在JSON文件中存储笔记 展示.创建.修改和删除笔记 在笔记中使用M ...

  5. jQuery的几种简单实用效果

    许久未分享博客,或许已生疏. 闲来无事, 分享几个jQuery简单实用的效果案例 不喜勿喷... 1.页面常用的返回顶部 <!DOCTYPE html> <html lang=&qu ...

  6. Log4j简单学习笔记

    log4j结构图: 结构图展现出了log4j的主结构.logger:表示记录器,即数据来源:appender:输出源,即输出方式(如:控制台.文件...)layout:输出布局 Logger机滤器:常 ...

  7. 经验分享:10个简单实用的 jQuery 代码片段

    尽管各种 JavaScirpt 框架和库层出不穷,jQuery 仍然是 Web 前端开发中最常用的工具库.今天,向大家分享我觉得在网站开发中10个简单实用的 jQuery 代码片段. 您可能感兴趣的相 ...

  8. 简单实用的PHP防注入类实例

    这篇文章主要介绍了简单实用的PHP防注入类实例,以两个简单的防注入类为例介绍了PHP防注入的原理与技巧,对网站安全建设来说非常具有实用价值,需要的朋友可以参考下   本文实例讲述了简单实用的PHP防注 ...

  9. php简单实用的操作文件工具类(创建、移动、复制、删除)

    php简单实用好用的文件及文件夹复制函数和工具类(创建.移动.复制.删除) function recurse_copy($src,$dst) {  // 原目录,复制到的目录 $dir = opend ...

随机推荐

  1. HIVE点滴:选择两个字段时distinct位置的影响

    当选择两个字段时,例如:"select XX1, XX2 from tb; ",那么将distinct放在前一个字段XX1之前和放在后一个字段XX2之前,结果有什么不同呢? 先说结 ...

  2. C# 创建 写入 读取 excel

    public static void CreateExcelFile(string FileName, List<UUser> luu) { ] == "xlsx")/ ...

  3. Englis(二)

    turn a year older  年长一岁 the birthday person 过生日的人 in honor of 为庆祝,为纪念 to observe/celebrate birthday  ...

  4. Spring 消息

    RMI.Hessian/Burlap的远程调用机制是同步的.当客户端调用远程方法时,客户端必须等到远程方法完成之后,才能继续执行.即使远程方法不向客户端返回任何消息,客户端也要被阻塞知道服务完成. 消 ...

  5. JavaBasic_09

    方法的参数传递 方法调用时参数值的传递可以分为"值传递"和"引用传递"两种 值传递 - a.当方法的参数为基本数据类型时 b.实参的值被复制给形参,改变形参不会 ...

  6. centos7 firewalld基本使用

    firewalld的基本使用 启动: systemctl start firewalld 查看状态: systemctl status firewalld 停止: systemctl disable ...

  7. SEO:关键词布局

  8. DES算法,JAVA,遇到的问题

    (1)使用Based64编码时出现的问题. java.lang.IllegalArgumentException 这中情况出现在解密时,主要原因是based64加密时用了sun的内部包sun.misc ...

  9. alpha冲刺(1/10)(作废)

    前言 队名:旅法师 作业链接 队长博客 燃尽图 会议 站立式会议照片 会议内容 陈晓彬(组长) 昨日进展: 召开会议 安排任务 博客撰写 问题困扰: 没有做项目经理的经验,在沟通方面专业知识不够. 心 ...

  10. C# 日常

    var lines = JsonConvert.DeserializeObject<List<qqq>>(dataSource); 类参数   publist string d ...