zoukankan      html  css  js  c++  java
  • 大爽Python入门教程 52 格式化输出

    大爽Python入门公开课教案 点击查看教程总目录

    虽然之前我写过一篇文章:
    python 格式化输出详解(占位符:%、format、f表达式)——上篇 理论篇

    其中详细讨论过输入输出,但是讲的过于细致,对于新手来讲过于繁琐,很多地方用不到。
    这里做了一定的简化,只针对具体的一部分功能来讲实现方法。

    以下均使用占位符实现,
    三种占位符%sformatf string都会展示。
    大家掌握自己最熟悉的一种即可,不然容易混乱。

    1 按精度输出小数float

    比如3.1415

    >>> pi = 3.1415
    

    保留三位小数输出

    >>> "%.3f" % pi
    '3.142'
    >>> "{:.3f}".format(pi)
    '3.142'
    >>> f"{pi:.3f}"
    '3.142'
    

    保留2位小数输出, 如下

    >>> "%.2f" % pi
    '3.14'
    >>> "{:.2f}".format(pi)
    '3.14'
    >>> f"{pi:.2f}"
    '3.14'
    

    说明

    • f是输出浮点数的格式
    • .2.3 表示精度,点.后面接精度
    • formatf表达式,此时都要在之前有个冒号:

    2 对齐

    场景

    比如有个学生的成绩信息如下

    scores = {
        "math": 80,
        "history": 70,
        "chemistry": 75
    }
    

    希望按以下格式输出

    math      : 80
    history   : 70
    chemistry : 75
    

    %s实现

    代码如下

    for course in scores:
        score = scores[course]
        print("%-10s: %s" %(course, score))
    

    %-10s

    • 10 是设置宽度为10
    • %s 默认右对齐
    • -10-是设置左对齐

    format实现

    代码如下

    for course in scores:
        score = scores[course]
        print("{:10s}: {}".format(course, score))
    

    {:10s}

    • s 是设置输出类型为字符串
    • 10 是设置宽度为10
    • format 绝大多数对象默认左对齐(数字对象默认右对齐)。

    设置对其方式为

    • <: 强制左对齐
    • >: 强制右对齐
    • ^: 强制居中对齐

    使用示例

    >>> name = "jack"
    >>> "{:<10s}".format(name)
    'jack      '
    >>> "{:^10s}".format(name)
    '   jack   '
    >>> "{:>10s}".format(name)
    '      jack'
    

    f string实现

    代码如下

    for course in scores:
        score = scores[course]
        print(f"{course:10s}: {score}")
    

    f表达式的里面的设置语法和format差不多。

    >>> name = "jack"
    >>> f"{name:<10s}"
    'jack      '
    >>> f"{name:^10s}"
    '   jack   '
    >>> f"{name:>10s}"
    '      jack'
    

    3 填充

    对齐时,一般会自动使用空格作为填充,
    如果不想用空格,用其他字符填充,语法为:
    :和对齐符号(此时必须要有对齐符号)之间指定。
    注:%s好像不支持灵活的填充

    示例如下

    >>> name = "jack"
    >>> "{:-<10s}".format(name)  # 指定用-来填充
    'jack------'
    >>> "{:-^10s}".format(name)
    '---jack---'
    >>> "{:->10s}".format(name)
    '------jack'
    >>> f"{name:-<10s}"
    'jack------'
    >>> f"{name:=<10s}"  # 指定用=来填充
    'jack======'
    

    4 综合

    混合使用注意次序:

    • 填充设置在:和对齐符号之间。
    • 精度设置在对其数字之后。

    示例如下

    >>> pi = 3.1415
    >>> "{:0>10.2f}".format(pi)
    '0000003.14'
    >>> f"{pi:0>10.2f}"
    '0000003.14'
    

    :0>10.2f

    • 0是填充符
    • >是右对齐(靠右)
    • .2f 是精度设置为保留两位小数
  • 相关阅读:
    制作你的第一个HTML 5游戏
    拒绝臆想,让我们脚踏实地做设计!
    HTML 5或者Silverlight?
    如何替换掉回车键
    杀死团队的武器与修复团队的方法
    Google趋势中显示jQuery是最流行的JavaScript框架
    关于脚本载入器的思考
    简化Web开发的12个HTML5CSS框架
    线框图(demo草图)制作的总结
    江苏南通周边经纬度
  • 原文地址:https://www.cnblogs.com/BigShuang/p/15594533.html
Copyright © 2011-2022 走看看