• Python基础07 字符串格式


    将值转换为字符串并设置其格式是一个重要的操作。

    一、精简版

    1、使用字符串格式运算符---%

    >>> format = "Hello, %s!"
    >>> value = "Python"
    >>> format % value
    'Hello, Python!'

    %s称为转换说明符,s意味着将值视为字符串进行格式设置。

    如果要设置多个值的格式,可使用元组:

    >>> format = "Hello, %s! %s year."
    >>> values = ("Python", "Good")
    >>> format % values
    'Hello, Python! Good year.'

    2、使用字符串方法---format

    编写新代码时,应选择使用字符串方法format,它融合并强化了早期方法的优点。

    每个替换字段都用花括号括起。

    最简单的情况下,替换字段没有名称或将索引用作名称。

    >>> "{}, {} and {}".format("first", "second", "third")
    'first, second and third'
    >>> "{0}, {1} and {2}".format("first", "second", "third")
    'first, second and third'
    >>> "{1}, {2} and {0}".format("first", "second", "third")
    'second, third and first'

    也可以对替换字段进行命名:

    >>> from math import pi
    >>> "{name} is {value:.2f}".format(value=pi, name="Pi")
    'Pi is 3.14'

    二、完整版

    这里的基本思想是对字符串调用方法format,并提供要设置其格式的值。

    替换字段由如下几部分组成,每个部分都是可选的:

      字段名: 索引或标识符,指出要设置哪个值的格式并使用结果来替换该字段。

      转换标志:跟在叹号后面的单个字符。当前支持的字符包括r(表示repr)、s(表示str)、a(表示ascii)。

      格式说明符:跟在冒号后面的表达式。

    1、替换字段名

    >>> "{foo} {} {bar} {}".format(1, 2, bar=4, foo=3)
    '3 1 4 2'

    还可通过索引来指定要在哪个字段中使用相应的未命名参数。

    >>> "{foo} {1} {bar} {0}".format(1, 2, bar=4, foo=3)
    '3 2 4 1'

    还可以使用值的组成部分:

    >>> users = ['Mike', 'John']
    >>> "Mr {name[1]}".format(name=users)
    'Mr John'
    
    >>> import math
    >>> tmpl = "The {mod.__name__} module defines the value {mod.pi} for Pi"
    >>> tmpl.format(mod=math)
    'The math module defines the value 3.141592653589793 for Pi'

    2、基本转换

    >>> print("{pi!s} {pi!r} {pi!a}".format(pi="π"))
    π 'π' 'u03c0'

    s通常创建外观普通的字符串版本。

    r尝试创建给定值的Python表示。

    a创建只包含ASCII字符的表示。

    你还可指定要转换的值是哪种类型。

    >>> "The number is {num}".format(num=42)
    'The number is 42'
    >>> "The number is {num:f}".format(num=42)
    'The number is 42.000000'
    >>> "The number is {num:b}".format(num=42)
    'The number is 101010'

    字符串格式设置中的类型说明符:

    b    将整数表示为二进制数

    c    将整数解读为Unicode值

    d    将整数视为十进制数进行处理,这是整数默认使用的说明符

    e    使用科学表示法来表示小数(用e来表示指数)

    E    与e相同,但用E来表示指数

    f    将小数表示为定点数

    F    与f相同,但对于特殊值(nan和inf),使用大写表示

    g    自动在定点表示法和科学表示法之间做出选择。这是默认用于小数的说明符

    G    与g相同,但使用大写来表示指数和特殊值

    n    与g相同,但插入随区域而异的数字分隔符

    o    将整数表示为八进制数

    s    保持字符串的格式不变

    x    将整数表示为十六进制数并使用小写字母

    X    与x相同,但使用大写字母

    %    将数表示为百分比值

    3、宽度、精度和千位分隔符

    宽度是使用整数指定的:

    >>> "{num:10}".format(num=3)
    '         3'
    >>> "{name:10}".format(name="Python")
    'Python    '

    如上所见,数字和字符串的对齐方式是不同的。

    精度也是使用整数指定的,但需要在它前面加上一个表示小数点的句点。

    >>> import math
    >>> "Pi day is {pi:.2f}".format(pi=math.pi)
    'Pi day is 3.14'

    也可以同时指定宽度和精度:

    >>> "{pi:10.2f}".format(pi=math.pi)
    '      3.14'

    可使用逗号来指出要添加千位分隔符:

    >>> "One googol is {:,}".format(10**10)
    'One googol is 10,000,000,000'

    同时指定其他格式设置元素时,这个逗号应该放在宽度和表示精度的句点之间。

    >>> "One googol is {:50,.2f}".format(10**10)
    'One googol is                                  10,000,000,000.00'
  • 相关阅读:
    elasticsearch配置文件详解
    《禅的故事》--易中天
    《爱你就像爱生命》--王小波
    Adaboost算法及其代码实现
    HOG特征原理及代码实现
    SMO算法--SVM(3)
    非线性支持向量机SVM
    核方法-核技巧-核函数
    线性可分支持向量机与软间隔最大化--SVM(2)
    拉格朗日乘子(Lagrange multify)和KKT条件
  • 原文地址:https://www.cnblogs.com/mazhiyong/p/12427233.html
Copyright © 2020-2023  润新知