这篇博文用于记录下Python中的标准库函数print()的常见用法,随着时间的推移,可能会有更新。

print 在 Python3.x 是一个函数,但在 Python2.x 版本不是一个函数,只是一个关键字。所以我们看到,用Python2.x写的代码,print后面的参数是没有括号的,而在Python3.x则是有括号的。

函数print()的语法:

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

objects — 对象(复数),复数形式表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
sep — 用来间隔打印出的多个对象,默认值是一个空格。
end — 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。
file — 要写入的文件对象。
flush – 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新。

接下来是它的用法示例积累。

01-一句print()语句输出几个字符串

str1 = 'hello suwenhao'
print("输出 :", str1, 'Nice to meet you!')

运行结果如下:
在这里插入图片描述

01-附1-在多个对象之间设置间隔符(设置参数sep)

示例代码如下:

print("blog", "csdn", "net/wenhao_ir", sep=".")  # 设置间隔符

运行结果如下:
在这里插入图片描述

02-字符串的第一种格式化打印输出(和C语言的printf函数类似)

示例代码如下:

weight = 21
print("My name is %s and weight is %d kg!" % ('Zara', weight))

运行结果如下:
在这里插入图片描述
python 字符串格式化符号如下:
在这里插入图片描述
格式化操作符辅助指令如下:
在这里插入图片描述
关于格式化操作符辅助指令的用法,以最后一个“m.n”为例。
示例代码如下:

f1 = 12.456
print('#%f#' % f1)
print('#%10f#' % f1)
print('#%10.2f#' % f1)
print('#%0.2f#' % f1)
print('#%-10.2f#' % f1)

运行结果如下:
在这里插入图片描述

03- 字符串的第二种格式化打印输出:用str.format()

示例代码如下

weight = 21
str1 = 'Zera'
print("My name is {} and weight is {} kg!".format(str1, weight))

运行结果如下:
在这里插入图片描述
第03种,用str.format()看似乎实现的效果和第02种一样,但是实际上它更灵活、更强大。
它的灵活体现在:
① 可以设置格式化参数的顺序,如下面的示例:

>>> "{1} {0} {1}".format("hello", "world")  # 设置指定位置
'world hello world'  # 这是运行结果

②可以设置名字,如下面的示例

# 直接设置名字
print("博客名:{name}, 地址 {url}".format(name="昊虹图像算法", url="blog.csdn.net/wenhao_ir"))

# 通过字典设置参数
site = {"name": "昊虹图像算法", "url": "blog.csdn.net/wenhao_ir"}
print("博客名:{name}, 地址 {url}".format(**site))

# 通过列表索引设置参数
my_list = ['昊虹图像算法', 'blog.csdn.net/wenhao_ir']
print("博客名:{0[0]}, 地址 {0[1]}".format(my_list))  # "0" 是必须的

运行结果如下图所示:
在这里插入图片描述
③可以传入对象。
示例代码如下:

class AssignValue(object):
    def __init__(self, value):
        self.value = value


my_value = AssignValue(6)
print('value值为: {0.value}'.format(my_value))  # "0" 是可选的

运行结果如下:
在这里插入图片描述
④str.format()兼容性强、适配性强
比如我们要输出一个矩阵的行数和列数,我们用str.format()是非常方便的,代码如下:

import numpy as np

A1 = np.array([[1, 2, 3, 4, 5],
              [6, 7, 8, 9, 10],
              [11, 12, 13, 14, 15],
              [16, 17, 18, 19, 20]], dtype='int8')

print('矩阵A1的行数和列数分别为{}'.format(A1.shape))

在这里插入图片描述
如果用第02种的方式的话,就得把A1.shape的两个成员先取出,再作输出处理。
综上,我们能用第03种方式就用第三种方式。
第03种方式对数字格式的控制如下表所示:
在这里插入图片描述
补充一点,第03种方式,如果想输出大括号(转义大括号),可以像下面这样操作:

print("{} 对应的位置是 {{0}}".format("suwenhao"))

运行结果如下:
在这里插入图片描述

04-字符串格式化的第三种方式

print(f"{updated_rows} 条记录已被成功修改。")

05-通过设置参数end实现Loading中的效果

示例代码如下:

import time

print("Loading", end="")
for i in range(20):
    print(".", end='')
    time.sleep(0.5)

运行结果如下:
在这里插入图片描述
在这里插入图片描述
上面的效果不好体现效果,录了个视频,视频百度网盘在线观看和下载链接:
https://pan.baidu.com/s/1Ma6l80l1l1eRglwSCNcRTQ?pwd=dwcz

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐