《Python 3.x入门到应用实践》 — 2.4 格式化输入输出功能
2.4 格式化输入输出功能
学习Python的初期,通常是从控制面板输出程序的执行结果,或者从控制台获取用户输入的数据。前面我们经常使用print()函数输出程序的执行结果,本节就来看一下如何调用print()函数进行格式化输出,以及如何调用input()函数输入数据。
2.4.1 格式化输出
print()函数支持格式化输出,有两种格式化方法可以使用,一种是以“%”的方式格式化输出,另一种是通过format函数格式化输出。
1. “%”格式化输出
格式化文本可以用“%s”代表字符串、“%d”代表整数、“%f”代表浮点数,语法如下:
print(格式化文本 % (参数1,参数2,…,参数n))
例如:
score = 66
print("大明的数学成绩:%d" % score)
输出结果:
大明的数学成绩:66
其中%d就是格式化的格式,代表输出整数格式。各种输出格式可参考表2-4。
表2-4
格式化输出可以用来控制打印输出的位置,让输出的数据能整齐排列,例如:
print("%5s的数学成绩:%5.2f" % ("Jenny",95))
print("%5s的数学成绩:%5.2f" % ("andy",80.2))
范例程序的输出结果如图2-5所示。
图2-5
上述范例中格式化文本有两个参数,所以参数必须用括号括住,其中%5s表示输出时占用5个字符的位置,当实际输出少于5个字符时,会在字符串左边补上空格符;%5.2f表示输出5位数的浮点数,小数点占2位数。
以下范例程序将数字100分别用print函数按浮点数、八进制数、十六进制数以及二进制数的格式输出,大家可以用这个范例程序练习一下。
[范例程序:print_%.py] 整数按不同进制数输出
01 num = 100
02 print ("数字 %s 的浮点数:%5.1f" % (num,num))
03 print ("数字 %s 的八进制:%o" % (num,num))
04 print ("数字 %s 的十六进制:%x" % (num,num))
05 print ("数字 %s 的二进制:%s" % (num,bin(num)))
程序的执行结果如图2-6所示。
图2-6
程序代码解析:
第02~04行:按浮点数八进制数、十六进制数的格式输出。
第05行:由于二进制数并没有格式化符号,因此可以通过内建的函数bin()将十进制数转换成二进制字符再输出。
2. format()函数输出
格式化输出也可以搭配format()函数,相对于%格式化的方式,format()函数更加灵活,用法如下:
print("{}是个用功的学生. ".format("王小明"))
一般简单的format用法会用大括号“{}”,表示在{}内要用format()中的参数替换。format()函数相当具有弹性,它有两大优点:
不需要理会参数数据类型,一律用{}表示。
可使用多个参数,同一个参数可以多次输出,位置可以不同。
举例来说:
print("{0} 今年 {1} 岁. ".format("王小明", 18))
其中,{0}表示使用第一个参数,{1}表示使用第二个参数,以此类推,如果{}内省略数字编号,就会按照顺序依次填入。
我们也可以使用参数名称来取代对应的参数,例如:
print("{name} 今年 {age} 岁. ".format(name="王小明", age=18))
直接在数字编号后面加上冒号“:”可以指定参数的输出格式,例如:
print('{0:.2f}'.format(5.5625))
表示第一个参数取小数点后2位。
另外,也可以搭配“^”“<”“>”符号加上字段宽度来让字符串居中、左对齐或右对齐,例如:
print("{0:10}成绩:{1:_^10}".format("Jennifer", 95))
print("{0:10}成绩:{1:>10}".format("Brian", 87))
print("{0:10}成绩:{1:*<10}".format("Jolin", 100))
程序的输出结果如图2-7所示。
图2-7
其中,{1:_^10}表示输出的字段宽度为10,以下画线“_”填充并居中;{1:>10}表示输出的字段宽度为10且靠右对齐,未指定填充字符就会以空格填充;{1:*<10}表示输出的字段宽度为10,以星号“*”填充并靠左对齐。
- 点赞
- 收藏
- 关注作者
评论(0)