zoukankan      html  css  js  c++  java
  • python3 str.format()的使用

    基本格式

    {字段名!转换字段:格式说明符}

    字段名:省略;数字;变量名

    'name is {}, age is {}'.format('peter',25)
    'name is {1}, age is {0}'.format(25, 'peter')
    'name is {name}, age is {age}'.format(name='peter',age='25')
    

    转换字段: !s !r !a

    s:传递参数之前先对参数调用 str()
    r:传递参数之前先对参数调用 repr()
    a:传递参数之前先对参数调用 ascii()

    class Person:
        def __init__(self, name, age):
            self.name = name
            self.age = age
            
        def __repr__(self):
            return 'Person({0.name!r}, {0.age!r})'.format(self)
        
        def __str__(self):
            return '({0.name!s}, {0.age!s})'.format(self)
        
    person = Person('peter', 25)
    'this person is {!r}'.format(person)
    'this person is {!s}'.format(person)
    'this person is {!a}'.format('皮特')
    
    # result
    "this person is Person('peter', 25)"
    'this person is (peter, 25)'
    "this person is '\u76ae\u7279'"
    

    格式说明符

    填充与对齐 :[填充字符][对齐方式 <^>][宽度]

    '{:*>10}'.format(10) # 右对齐 '********10'
    '{:*<10}'.format(10) # 左对齐 '10********'
    '{:*^10}'.format(10) # 居中对齐 '****10****'
    

    精度与数据类型

    • 默认的数据类型是 字符串 s
    '{:.3}'.format('23333333')  # '233'
    '{:.3s}'.format('23333333') # '233'
    
    • 进制转换
    '{:b}'.format(20) # 二进制 '10100'
    '{:o}'.format(20) # 八进制 '24'
    '{:x}'.format(20) # 十六进制 '14'
    
    • 浮点数和科学计数法
    '{:e}'.format(1234567.1234567)    # 科学计数法 '1.234567e+06'
    '{:.2e}'.format(1234567.1234567) # '1.23e+06'
    '{:.3f}'.format(1234567.1234567)  # 浮点数 '1234567.123'
    '{:%}'.format(1)  # 百分数 '100.000000%'
    '{:.0%}'.format(1) # '100%'
    

    花括号转译

    • 使用花括号转译花括号
    '{{{}}}'.format('peter') # '{peter}'
    
  • 相关阅读:
    UVA 1386 Cellular Automaton
    ZOJ 3331 Process the Tasks
    CodeForces 650B Image Preview
    CodeForces 650A Watchmen
    CodeForces 651B Beautiful Paintings
    CodeForces 651A Joysticks
    HUST 1601 Shepherd
    HUST 1602 Substring
    HUST 1600 Lucky Numbers
    POJ 3991 Seinfeld
  • 原文地址:https://www.cnblogs.com/Peter2014/p/10664052.html
Copyright © 2011-2022 走看看