Python连载(0007): 在屏幕输出好看的信息

1. 输出函数print()

Python提供了一个输出函数print(),用户使用该函数可以将指定内容输出到屏幕或者文件中。

print()函数的基本使用方法很简单,只需要将想要输入的东西作为参数传递给该函数即可,例如:

print("hello world.")	# 输出一个字符串
print(22)	# 输出一个数字

list_example = [1, 2, 3, 4]
print(list_example)	# 输出一个列表

image-20210123234045802

print()函数可以接收多个参数,每个参数用逗号,隔开,例如:

str_example = "hello world."
age = 22
list_example = [1, 2, 3, 4]

print(str_example, age, list_example)

image-20210123234403731

通过观察可以发现,给print()函数传入多个参数,当在屏幕输出时,每个参数之间会有一个空格,用于隔开不同的参数。

2. print()函数进阶用法

上面介绍的方法虽然也可以输出信息,但不够灵活,因此在项目中不太实用。下面介绍两种常用的print()用法:format方法占位符方法。这两种方法原理上差不多,都是先用字符串构建一个模板,然后通过传入一些参数填充模板中,形成我们需要的字符串。

假设我们有100个学生的信息,分别包含学生的名字和学号。现在我们要给每个学生发一条信息,内容格式就是:xxx同学, 你好。你的学号是xxxxxxxx。对于print()来说,这个内容格式就是它需要的模板,格式中xxxxxxxxxxx就是需要用参数进行替代的位置。例如,对于学生张三,学号20210001来说,只要把模板传递给print(),然后再把张三20210001传递给print(),就能通过一定规则实现输出:张三同学,你好。你的学号是20210001。

2.1 format方法

语法:print("模板字符串".format(参数1, 参数2...))

2.1.1 方式1

# format方法示例1
print("{}同学,你好。你的学号是{}。".format("张三", 20210001))

image-20210124124406165

从示例1可以看出,只要在需要用参数进行替换的位置填充{}符号,print()就会把参数依次放到每个{}的位置。

注意:示例1这种方法,第一个参数会被放在第一个{}的位置,第二个参数会被放在第二个{}的位置,依次类推。

2.1.2 方式2

# format方法示例2
print("{1}同学,你好。你的学号是{0}。".format(20210001, "张三"))

image-20210124124815824

示例2的有点特别,它的{}中有个数字,这个数字是用来告诉print()要把第几个参数放在当前位置,{1}表示要把第2个参数放在{1}所在的位置;{0}表示要把第1个参数放在{0}所在的位置。

注意:示例2这种方法,用户随意指定传入参数要放在哪个位置。

# format方法示例2 扩展:同一个参数可以使用多次。
print("{1}同学,你好。你的学号是{0}。{1}同学再见!".format(20210001, "张三"))

image-20210124125344301

2.1.3 方式3

# format方法示例3
print("{name}同学,你好。你的学号是{num}。{name}同学,再见!".format(name="张三", num=20210001))

image-20210124125706851

示例3的{}中直接写上了参数的名字,这样print()就能通过{}的变量名和传入参数的变量名进行匹配,然后把对应的变量放在合适的位置。

2.1.4 花式显示数字

  • 知识汇总:
数字格式输出结果说明
10"{:b}".format(10)1010以二进制形式显示整数。
10"{:o}".format(10)12以八进制形式显示整数。
10"{:d}".format(10)10以十进制形式显示整数。
10"{:x}".format(10)a以十六进制形式显示整数。
3.1415"{:f}".format(3.1415)3.141500显示小数。
3.1415"{:.0f}".format(3.1415)3显示小数的整数部分。
3.1415"{:.2f}".format(3.1415)3.14显示小数,保留小数点后2位。
10"{:+d}".format(10)+10带符号显示正整数。
-1"{:+d}".format(-1)-1带符号显示负整数。
-3.14"{:+f}".format(-3.14)-3.140000带符号显示负小数。
13"{:10d}".format(13)13指定输出字符的宽度为10。
13"{:>10d}".format(13)13右对齐,指定输出字符的宽度为10。
13"{:<10d}".format(13)13左对齐,指定输出字符的宽度为10。
13"{:^10d}".format(13)13居中,指定输出字符的宽度为10。
13"{:@>6d}".format(13)@@@@13右对齐,字符宽度6,使用@填充。
13"{:h<6d}".format(13)13hhhh左对齐,字符宽度6,使用h填充。
13"{:!^6d}".format(13)!!13​!!居中,字符宽度6,使用!填充。
100000000"{:,}".format(100000000)100,000,000以逗号分隔的数字格式。
0.45"{:.2%}".format(0.45)45.00%百分数显示,小数点后保留2位小数。
  • 示例
# 显示整数
int_num = 10
print("以二进制显示整数:{:b}".format(int_num))
print("以八进制显示整数:{:o}".format(int_num))
print("以十进制显示整数:{:d}".format(int_num))
print("以十六进制显示整数:{:x}".format(int_num))

image-20210124131035137

# 显示小数
float_num = 3.1415926
print("显示小数:{:f}".format(float_num))
print("只显示整数部分(即保留小数点后0位):{:.0f}".format(float_num))
print("只保留小数点后2位:{:.2f}".format(float_num))

image-20210124131738672

# 显示数字的正负号
int_num = 10
print("带符号显示整数:{:+d}".format(int_num))

int_num = -1
print("带符号显示整数:{:+d}".format(int_num))

float_num = 3.14
print("带符号显示小数:{:+f}".format(float_num))

image-20210124131830234

# 示例:指定字符宽度
int_num = 13
# int_num的值是13,正常情况下,它输出的时候只会占用两个字符的宽度。
# 我们可以通过语法强制指定它占用的字符宽度,比如让它占用10个字符宽度。
print("{:10d}".format(int_num))

image-20210124132937626

在指定了字符宽度之后,我们发现实际数值默认是放在最后边的,也就是默认右对齐。如果有特殊需求,可以通过如下方式改变对齐方式

# 示例:指定对齐方式
int_num = 13
print("{:>10d}".format(int_num))	# 通过>符号,指定对齐方式为右对齐
print("{:<10d}".format(int_num))	# 通过<符号,指定对齐方式为左对齐
print("{:^10d}".format(int_num))	# 通过^符号,指定对齐方式为居中对齐

image-20210124133353314

观察上面的示例可以看出,指定字符宽度之后,Python默认使用空格来填充多出来的字符空间,我们也可以通过如下方式改变填充字符

# 示例:指定填充字符
int_num = 13
print("{:@>10d}".format(int_num))	# 右对齐方式下,使用@符号填充
print("{:*<10d}".format(int_num))	# 左对齐方式下,使用*符号填充
print("{:$^10d}".format(int_num))	# 居中对齐方式下,使用$符号填充

image-20210124133749908

# 以逗号分隔的数字格式
int_num = 100000000
print("{:,}".format(int_num))

image-20210124134028303

# 以百分数形式显示
percent = 0.45
print("百分数形式显示:{:.2%}".format(percent)) # 百分数显示,小数点后保留2位小数

image-20210124134217574

2.2 占位符方法

format()方式能实现的部分基本功能使用该占位符方法也能实现,但是它算是比较旧的输出方法了,就不做太详细的介绍了,直接看示例:

# 字符串占位符%s: 表明该位置需要一个字符串参数进行替换
str_param = "这是个字符串参数"
print("这里需要一个字符串参数:%s" % (str_param))

# 整数占位符%d/%o/%x: 表明需要一个整数参数
int_num = 22
print("十进制整数显示:%d" % (int_num))
print("八进制整数显示:%o" % (int_num))
print("十六进制整数显示:%x" % (int_num))

# 小数占位符%f: 表明需要一个小数参数
float_num = 3.14159
print("这里需要一个小数参数:%f" % (float_num))
print("保留2位小数:%.2f" % (float_num))
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页