文章目录
1. 输出函数print()
Python提供了一个输出函数print()
,用户使用该函数可以将指定内容输出到屏幕或者文件中。
print()
函数的基本使用方法很简单,只需要将想要输入的东西作为参数传递给该函数即可,例如:
print("hello world.") # 输出一个字符串
print(22) # 输出一个数字
list_example = [1, 2, 3, 4]
print(list_example) # 输出一个列表
print()
函数可以接收多个参数,每个参数用逗号,
隔开,例如:
str_example = "hello world."
age = 22
list_example = [1, 2, 3, 4]
print(str_example, age, list_example)
通过观察可以发现,给print()
函数传入多个参数,当在屏幕输出时,每个参数之间会有一个空格,用于隔开不同的参数。
2. print()
函数进阶用法
上面介绍的方法虽然也可以输出信息,但不够灵活,因此在项目中不太实用。下面介绍两种常用的print()
用法:format方法
和占位符方法
。这两种方法原理上差不多,都是先用字符串构建一个模板,然后通过传入一些参数填充模板中,形成我们需要的字符串。
假设我们有100个学生的信息,分别包含学生的名字和学号。现在我们要给每个学生发一条信息,内容格式就是:xxx同学, 你好。你的学号是xxxxxxxx。
对于print()
来说,这个内容格式就是它需要的模板,格式中xxx
和xxxxxxxx
就是需要用参数进行替代的位置。例如,对于学生张三,学号20210001
来说,只要把模板传递给print()
,然后再把张三
和20210001
传递给print()
,就能通过一定规则实现输出:张三同学,你好。你的学号是20210001。
2.1 format方法
语法:print("模板字符串".format(参数1, 参数2...))
2.1.1 方式1
# format方法示例1
print("{}同学,你好。你的学号是{}。".format("张三", 20210001))
从示例1可以看出,只要在需要用参数进行替换的位置填充{}
符号,print()
就会把参数依次放到每个{}
的位置。
注意:示例1这种方法,第一个参数会被放在第一个{}
的位置,第二个参数会被放在第二个{}
的位置,依次类推。
2.1.2 方式2
# format方法示例2
print("{1}同学,你好。你的学号是{0}。".format(20210001, "张三"))
示例2的有点特别,它的{}
中有个数字,这个数字是用来告诉print()
要把第几个参数放在当前位置,{1}
表示要把第2个参数放在{1}
所在的位置;{0}
表示要把第1个参数放在{0}
所在的位置。
注意:示例2这种方法,用户随意指定传入参数要放在哪个位置。
# format方法示例2 扩展:同一个参数可以使用多次。
print("{1}同学,你好。你的学号是{0}。{1}同学再见!".format(20210001, "张三"))
2.1.3 方式3
# format方法示例3
print("{name}同学,你好。你的学号是{num}。{name}同学,再见!".format(name="张三", num=20210001))
示例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))
# 显示小数
float_num = 3.1415926
print("显示小数:{:f}".format(float_num))
print("只显示整数部分(即保留小数点后0位):{:.0f}".format(float_num))
print("只保留小数点后2位:{:.2f}".format(float_num))
# 显示数字的正负号
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))
# 示例:指定字符宽度
int_num = 13
# int_num的值是13,正常情况下,它输出的时候只会占用两个字符的宽度。
# 我们可以通过语法强制指定它占用的字符宽度,比如让它占用10个字符宽度。
print("{:10d}".format(int_num))
在指定了字符宽度之后,我们发现实际数值默认是放在最后边的,也就是默认右对齐。如果有特殊需求,可以通过如下方式改变对齐方式:
# 示例:指定对齐方式
int_num = 13
print("{:>10d}".format(int_num)) # 通过>符号,指定对齐方式为右对齐
print("{:<10d}".format(int_num)) # 通过<符号,指定对齐方式为左对齐
print("{:^10d}".format(int_num)) # 通过^符号,指定对齐方式为居中对齐
观察上面的示例可以看出,指定字符宽度之后,Python默认使用空格来填充多出来的字符空间,我们也可以通过如下方式改变填充字符:
# 示例:指定填充字符
int_num = 13
print("{:@>10d}".format(int_num)) # 右对齐方式下,使用@符号填充
print("{:*<10d}".format(int_num)) # 左对齐方式下,使用*符号填充
print("{:$^10d}".format(int_num)) # 居中对齐方式下,使用$符号填充
# 以逗号分隔的数字格式
int_num = 100000000
print("{:,}".format(int_num))
# 以百分数形式显示
percent = 0.45
print("百分数形式显示:{:.2%}".format(percent)) # 百分数显示,小数点后保留2位小数
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))