Python基础语法之格式化输出与基于Python格式化输出的实例小程序

本文详细介绍了Python中的格式化输出,包括`format`方法和`%`操作符的使用。通过多个实例展示了如何格式化输出字符串、数值、用户信息等,帮助理解不同格式化技巧。
摘要由CSDN通过智能技术生成

Python基础语法之格式化输出与基于Python格式化输出的实例小程序

一、format格式输出字符串

使用 % 操作符对各种类型的数据进行格式化输出,这是早期 Python提供的方法。
字符串类型(str)提供了 format() 方法对字符串进行格式化。format() 方法的语法格式如下:

  • str.format(args)

在该方法中,str 用于指定字符串的显示样式;args 用于指定要进行格式转换的项,如果有多项,之间有逗号进行分割。

  • 在创建显示样式模板时,需要使用{}和:来指定占位符,其完整的语法格式如下:
{
    [index][ : [ [fill] align] [sign] [#] [width] [.precision] [type] ] }
  • 格式中用 [] 括起来的参数都是可选参数,即可以使用,也可以不使用。各个参数的含义如下:
  1. index:指定:后边设置的格式要作用到args中第几个参数值,参数的索引值从 0 开始。如果省略此选项,则会根据 args中参数的先后顺序自动分配。
  2. fill:指定空白处填充的字符。注意,当填充字符为逗号(,),且作用于整数或浮点数时,该整数(或浮点数)会以逗号分隔的形式输出,如1000000会输出为1,000,000。
  3. align:指定数据的对齐方式,具体的对齐方式如表1所示。

表 1 align 参数及含义

字符 含义
< 数据左对齐。
> 数据右对齐。
= 数据右对齐,同时将符号放置在填充内容的最左侧,该选项只对数字类型有效。
^ 数据居中,此选项需和 width 参数一起使用。
  • sign:指定有无符号数,此参数的值以及对应的含义如表 2 所示。

表 2 sign 参数以含义

字符 含义
+ 正数前加正号,负数前加负号。
- 正数前不加正号,负数前加负号。
空格 正数前加空格,负数前加负号。
# 对于二进制数、八进制数和十六进制数,使用此参数,各进制数前会分别显示 0b、0o、0x前缀;反之则不显示前缀。
  • width:指定输出数据时所占的宽度。
  • precision:指定保留的小数位数。
  • type:指定输出数据的具体类型,如表 3 所示。

表 3 type 占位符类型及含义

字符 含义
s 对字符串类型格式化。
d 十进制整数。
c 将十进制整数自动转换成对应的 Unicode 字符。
e 或者 E 转换成科学计数法后,再格式化输出。
g 或 G 自动在 e 和 f(或 E 和 F)中切换。
b 将十进制数自动转换成二进制表示,再格式化输出。
o 将十进制数自动转换成八进制表示,再格式化输出。
x 或者 X 将十进制数自动转换成十六进制表示,再格式化输出。
f 或者 F 转换为浮点数(默认小数点后保留 6 位),再格式化输出。
% 显示百分比(默认显示小数点后 6 位)。

二、format格式输出字符串实例

实例1、网站名称

def func1():
    str = "网站名称:{:>20s}\t网址:{:s}"
    print(str.format("Python中文网", "http://www.python-china.com/"))


if __name__ == '__main__':
    func1()
  • 输出结果为:
网站名称:           Python中文网	网址:http://www.python-china.com/

实例2、数值格式化为不同的形式

在实际开发中,数值类型有多种显示需求,比如货币形式、百分比形式等,使用 format() 方法可以将数值格式化为不同的形式。

def func2():
    # 以货币形式显示
    print("货币形式:{:,d}".format(1000000))
    # 科学计数法表示
    print("科学计数法:{:E}".format(1200.12))
    # 以十六进制表示
    print("100的十六进制:{:#x}".format(100))
    # 输出百分比形式
    print("0.01的百分比表示:{:.0%}".format(0.01))

if __name__ == '__main__':
    # func1()
    func2()
  • 输出结果为:
货币形式:1,000,000
科学计数法:1.200120E+03
100的十六进制:0x64
0.01的百分比表示:1%

实例3、{}中不设参数

def func3():
    print("{} {}".format("hello", "world"))  # 不设置指定位置,按默认顺序

    print("{0} {1}".format("hello", "world"))  # 设置指定位置

    print("{1} {0} {1}".format("hello", "world"))  # 设置指定位置

if __name__ == '__main__':
    # func1()
    # func2()
    func3()
  • 输出结果为:
hello world
hello world
world hello world

实例4、 {}中设参数

def func4():
    # 通过变量设置参数
    print("My name is {name},and I am {age} years old!".format(name="zhangsan", age="25"))

    # 通过字典设置参数,需要解包
    info = {
   "name": "zhangsan", "age": "25"}
    print("My name is {name},and I am {age} years old!".format(**info))

    # 通过列表索引设置参数
    msg = ["zhangsan", "25"]
    print("My name is {0[0]},and I am {0[1]} years old!".format(msg))


if __name__ == '__main__':
    # func1()
    # func2()
    # func3()
    func4()
  • 输出结果为:
My name is zhangsan,and I am 25 years old!
My name is zhangsan,and I am 25 years old!
My name is zhangsan,and I am 25 years old!

实例5、str.format() 格式化数字


def func5():
    print(
评论 52
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程爱好者-阿新

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值