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 是精度设置为保留两位小数
  • 相关阅读:
    如何在Ubuntu Server 18.04上安装Microsoft的Procmon
    如何在Ubuntu 20.04上安装Wine 5.0
    如何在Kali Linux 2020中启用SSH服务
    如何在Ubuntu 20.04 LTS Focal Fossa上安装Apache Groovy
    如何使用命令在Ubuntu 20.04 Linux上安装Vmware Tools
    在Ubuntu 20.04 LTS Focal Fossa上安装Zabbix Agent
    hdu 2089 不要62
    hdu 2093 成绩排名
    hdu 2104 hide handkerchief
    leetcode147对链表进行插入排序
  • 原文地址:https://www.cnblogs.com/BigShuang/p/15594533.html
Copyright © 2011-2022 走看看