Python3的print用法

目录

一:print语法

二:print结尾参数end用法

三:print分隔符参数sep用法

四:print固定宽度字符输出


一: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} 科学计数法并保留两位小数
{:,} 以逗号分割的数字

猜你喜欢

转载自blog.csdn.net/qq_27071221/article/details/132380575