• Python中使用print函数的三种输出方式


    1 占位符%

    声明三个变量:姓名(string)、年龄(int)、身高(float),见下方的一个简单实例。

    >>> name = '小明'
    >>> age = 20
    >>> height = 1.85
    >>> print("我是"+name+",年龄"+str(age))
    我是小明,年龄20
    >>> print("我是%s,年龄%d,体重%fm"%(name,age,height))
    我是小明,年龄20,体重1.850000m
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    其中%s、%d便是占位符,顾名思义,其作用就是替后面的变量站住这个位置,
    字符串后面的%是一个特殊的操作符,该操作符会将后面的变量值,替换掉前面字符串中的占位符.
    常用占位符:

    1. %c,格式化字符及其ASCII码
    2. %s,格式化字符串
    3. %d,格式化整数
    4. %u,格式化无符号整数
    5. %o,格式化无符号八进制数

    宽度、对齐、精度

    # 数值型
    >>> pi = 3.1415926
    >>> print('%10.3f' % pi) 
         3.142
    # 宽度为10,右对齐,保留3位小数点
    >>> print('%-10.10f' % pi) 
    3.1415926000
    # 宽度为10,左对齐,保留小数点后10位(不足10位补0)   
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    # 字符串
    >>> print( "%.10s " % name) 
    小明
    # 输出10个字符,如果不足,输出全部
    >>> print ("%.*s" % (6,name)) 
    小明
    # 左对齐,取6个字符
    >>> print ("%10.6s" % name) 
            小明
     # 右对齐,宽度为10,取6个字符  
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    2 format格式化

    Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能,见下方简单示例。

    >>> name = '小明'
    >>> age = 20
    >>> height = 1.85
    >>> print("我是{},年龄{},体重{}".format(name,age,height))
    我是小明,年龄20,体重1.85
    
    • 1
    • 2
    • 3
    • 4
    • 5

    也可以通过指定位置编号操作,顺序从0开始,通过运行下方示例可以发现位置指定的作用。

    >>> name = '小明'
    >>> age = 20
    >>> height = 1.85
    >>> print("我是{0},年龄{1},体重{2}".format(name,age,height))
    我是小明,年龄20,体重1.85
    >>> print("我是{1},年龄{2},体重{0}".format(name,age,height))
    我是20,年龄1.85,体重小明
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    宽度、对齐、精度

    • 居中^
    • 左对齐<
    • 右对齐>

    精度也是通过.来实现

    >>> pi = 3.1415926
    >>> print('{:>10.3f}'.format(pi))
         3.142
    >>> # 宽度为10,右对齐,保留3位小数点
    >>> print('{:<10.1f}'.format(pi))
    3.1
    >>> # 宽度为10,左对齐,保留1位小数点
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3f-String格式化

    f-string格式化是python3.6引入了一种新的字符串格式化方式。

    变量名直接做参数,比如name, age, height,注意不需要单引号或双引号,见下方示例。

    >>> name = '小明'
    >>> age = 20
    >>> height = 1.85
    >>> print(f'我是:{name}, 年龄:{age}, 身高:{height}m')
    我是:小明, 年龄:20, 身高:1.85m
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3.1 表达式参数

    可以是直接的数值运算,也可以是变量赋值后运算。

    >>> print(f'计算结果是:{2*5 + 3*4}')
    计算结果是:22
    
    >>> a = 90
    >>> b = 9
    >>> print(f'计算结果是:{a*b + a + b}')
    计算结果是:909
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3.2 宽度、对齐、精度

    宽度为10,精度为小数点后2、3、4位,居中、居右、居左对齐,填充方式和format一样可以选择不同的字符。

    >>> pi = 3.1415926
    >>> print(f'{pi:^10.2f}')
       3.14
    >>> print(f'{pi:>10.3f}')
         3.142
    >>> print(f'{pi:<10.4f}')
    3.1416
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    4 总结

    %(占位符):

    • 优点:在简单练习中,表达比较直观,易于掌握。
    • 缺点:随着参数数量的增加,格式输入会逐渐变得繁琐。

    format:

    • 优点:可以根据编号设置单个参数多次输出,填充方式比较灵活。
    • 缺点:随着参数数量的增加,输入长度会逐渐增加,当有大量参数时,同样比较繁琐。

    f-string:

    • 优点:格式化的方式较前两种更加直观,效率也较前两个高一些。
    • 缺点:新的格式化方式,有些语句格式较前两种复杂
  • 相关阅读:
    商业化广告--体系学习-- 16 -- 业务实战篇 --需求调研:广告产品潜在需求的调研流程是怎样的?
    element ui 中 el-button重新渲染后disabled属性失效
    QFramework引入Event
    JavaWeb、Web核心
    Kubernetes(k8s) Web-UI界面(二):部署和访问Kuboard
    Windows上的多jdk版本管理工具
    podman-compose 有前途吗?
    关于我——人工智能专业大二的一年
    激光雷达成「烫手山芋」?或成车企降本的牺牲品
    如何用selenium库自动登录校园网网址?
  • 原文地址:https://blog.csdn.net/baidu_39621090/article/details/126385277