目录
一:print语法
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
参数解释:
"objects":要打印的对象,将打印输出至 "file参数" 指定的文本流,大部分使用就只用到了这个参数;
"sep":以"sep"分隔开;
"end":在打印输出的后面以"end"参数结尾;
"file":将打印输出到文件,file必须是一个具有 write(string) 方法的对象;如果参数不存在或为 None,则将使用 sys.stdout。 由于要打印的参数会被转换为文本字符串,因此 print() 不能用于二进制模式的文件对象。 对于这些对象,应改用 file.write(...)。输出是否缓存通常取决于 file;
"flush":如果 flush 关键字参数为 True,输出流会被强制刷新。
"sep" 、 "end "、 "file" 和"flush" 必须以关键字参数的形式给出。 flush 关键字参数是在 phthon3.3 版后增加的。
>>> print("my name is ftz ",sep=' ',end='end结尾\n')
my name is ftz end结尾
>>>
>>> logFile = open("logfile.txt",'w')
>>> print("my name is ftz ",sep=' ',end='end结尾\n',file=logFile)
执行了三次默认是追加
[root]$ cat logfile.txt
my name is ftz end结尾
my name is ftz end结尾
my name is ftz end结尾
二:print结尾参数end用法
print打印默认是换行的,那是因为end参数默认就是'\n',如果想在每个打印的末尾加一个定制的符号,可以使用end参数,例如:print()函数的“end”参数指定为“|”,即print()函数每次输出完成之后,结尾都输出"|"
>>> print("默认换行")
默认换行
>>> print("不换行打印",end="")
不换行打印>>>
>>> print("以竖线结尾打印",end="|\n")
以竖线结尾打印|
>>>
三:print分隔符参数sep用法
sep参数一般情况下用的不多,但是在特殊场景还是能派上用场,比如网址都是以‘.’进行分割,或者路径以'/',或者ip地址等等以特定字符进行分割的都能使用
>>> print('192','168','1','1',sep='.')
192.168.1.1
>>>
>>> print('www','baidu','com',sep='.')
www.baidu.com
>>>
>>> print("F:",'file','work',sep='/')
F:/file/work
>>>
四:print固定宽度字符输出
当我们要输出一系列结果,但是中间字符不固定的情况下,如果是正常输出会出现错乱的情况,看上去也不美观,print允许我们以固定字符宽度和左右对齐的方式进行输出
比如如下输出
学生总数=22 学生名字重复数=29
学生总数=54 学生名字重复数=58
学生总数=455 学生名字重复数=287
学生总数=455 学生名字重复数=287
学生总数=2884 学生名字重复数=1579
学生总数=427 学生名字重复数=207
学生总数=1011 学生名字重复数=67
学生总数=427 学生名字重复数=208
学生总数=427 学生名字重复数=103
学生总数=2276 学生名字重复数=417
学生总数=0 学生名字重复数=0
学生总数=52 学生名字重复数=0
学生总数=52 学生名字重复数=0
学生总数=1522 学生名字重复数=1303
学生总数=0 学生名字重复数=0
学生总数=1558 学生名字重复数=1143
学生总数=454 学生名字重复数=286
学生总数=4 学生名字重复数=0
学生总数=11 学生名字重复数=12
我们先介绍一下字符宽度,字符宽度是指输出中每个字符所占的宽度。在默认情况下,每个字符的宽度是相等的。但在某些情况下,我们希望输出中的字符具有不同的宽度,以获得更好的视觉效果。例如,我们可能希望在输出表格时,各列的宽度是相等的,以便对齐数据。
示例的对齐代码如下:
print(f"学生总数={student:<15} 学生名字重复数={count:<20}")
我们使用了"<“符号来指定左对齐。如果要右对齐,可以使用”>"符号。
我们也可以用以上方法输出表格形式的
data = [
["Alice", 25, "Female"],
["Bob", 30, "Male"],
["Charlie", 35, "Male"]
]
# 计算每列的最大宽度
max_widths = [max(len(str(row[i])) for row in data) for i in range(len(data[0]))]
# 输出表头
header = ["Name", "Age", "Gender"]
header_format = " | ".join(f"{{:<{width}s}}" for width in max_widths)
print(header_format.format(*header))
print("-" * sum(max_widths))
# 输出数据
for row in data:
row_format = " | ".join(f"{{:<{width}}}" for width in max_widths)
print(row_format.format(*row))
输出结果:
f打印是Python 3.6引入的,在之前的版本中,固定宽度字符输出也是支持的,通过使用字符串的格式化方法来实现输出指定字符宽度。字符串的格式化方法是通过在字符串中使用占位符来实现的。常用的占位符有"%s"和"%d",分别用于字符串和整数的格式化。
data = [
["Alice", 25],
["Bob", 30],
["Charlie", 35]
]
# 输出数据
for row in data:
print("Name: %-10s Age: %d" % (row[0], row[1]))
format进制格式化字符
格式符 | 表示 |
{:s} | 字符串 |
{:d} | 十进制整数 |
{:f} | 浮点型 |
{:c} | 字符型 |
{:u} | 无符号十进制整数 |
{:o} | 八进制 |
{:x} | 十六进制 |
{:e} | 科学计数法 |
以下是format常用格式化字符
格式符 | 表示 |
{:.2f} | 保留两位小数 |
{:+.2f} | 保留两位小数并携带正负号 |
{:0>2d} | 左侧补零,整体占两个字符 |
{:0<2d} | 右侧补零,整体占两个字符 |
{:*<4d} | 右侧补星号,整体占4个字符 |
{:5d} | 右对齐,整体占5个字符 |
{:<5d} | 左对齐,整体占5个字符 |
{:^5d} | 居中对齐,整体占5个字符 |
{:.2e} | 科学计数法并保留两位小数 |
{:,} | 以逗号分割的数字 |