zoukankan      html  css  js  c++  java
  • format()的简单实用 笔记

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

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

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

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

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

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


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

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

     

    # 换种方式?可以

    # 输入字符串

    s = 'something: {}'
    print(s.format('123'))  # 输出“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 }"
  • 相关阅读:
    matplotlib
    CNN中feature map、卷积核、卷积核个数、filter、channel的概念解释,以及CNN 学习过程中卷积核更新的理解
    Batch Normlization原理
    pycharts
    stm 32 LED(寄存器版本)
    stm32 滴答时钟实现较准时延时功能
    LFS笔记一:从LFS网站获取资源
    ubuntu 12.04编译安装linux3.6.10内核笔记
    stm32 外部事件<按键>中断输入实现过程<寄存器>
    stm32 中断几个库函数实现过程分析。
  • 原文地址:https://www.cnblogs.com/namejr/p/9990469.html
Copyright © 2011-2022 走看看