1 Python中的内置函数
Python中内置了很多函数,我们可以直接调用,以下是一些常见的函数:
abs()
:返回一个数的绝对值。all()
:判断一个可迭代对象中的所有元素是否都为真。any()
:判断一个可迭代对象中是否有任何一个元素为真。ascii()
:返回一个字符串,其中包含用ASCII表示法表示的字符。bin()
:将整数转换为二进制字符串。bool()
:将对象转换为布尔值。breakpoint()
:在Python 3.7及以上版本中,用于在交互式调试器中设置断点。bytearray()
:创建一个字节数组。bytes()
:将对象转换为字节串。callable()
:判断对象是否可调用。chr()
:将整数转换为对应的Unicode字符。classmethod()
:定义类方法。compile()
:将源代码编译为字节码对象。complex()
:创建一个复数。delattr()
:删除对象的属性。dict()
:创建一个字典。dir()
:返回对象的属性和方法列表。divmod()
:返回商和余数的元组。enumerate()
:返回一个枚举对象,其中包含可迭代对象的索引和值。eval()
:计算字符串中的Python表达式。exec()
:执行字符串中的Python代码。filter()
:使用过滤函数过滤元素。float()
:将对象转换为浮点数。format()
:格式化字符串。frozenset()
:创建一个不可变的集合。getattr()
:获取对象的属性。globals()
:返回当前全局符号表。hasattr()
:判断对象是否具有指定的属性。hash()
:返回对象的哈希值。help()
:显示对象的帮助文档。hex()
:将整数转换为十六进制字符串。id()
:返回对象的唯一标识符。input()
:从标准输入读取一行文本。int()
:将对象转换为整数。isinstance()
:判断对象是否为指定类的实例。issubclass()
:判断类是否为指定类的子类。iter()
:返回对象的迭代器。len()
:返回对象的长度。list()
:创建一个列表。locals()
:返回当前局部符号表。map()
:将函数应用于可迭代对象的元素。max()
:返回可迭代对象中的最大值。memoryview()
:创建一个内存视图对象。min()
:返回可迭代对象中的最小值。next()
:返回可迭代对象的下一个值。object()
:创建一个对象。oct()
:将整数转换为八进制字符串。open()
:打开一个文件。ord()
:将字符转换为整数。pow()
:计算幂。print()
:打印对象。property()
:定义属性。range()
:创建一个范围对象。repr()
:返回对象的表示字符串。reversed()
:返回可迭代对象的反向迭代器。round()
:四舍五入浮点数。set()
:创建一个集合。setattr()
:设置对象的属性。slice()
:创建一个切片对象。sorted()
:返回排序后的列表。staticmethod()
:定义静态方法。str()
:将对象转换为字符串。sum()
:返回可迭代对象的和。super()
:调用父类的方法。tuple()
:创建一个元组。type()
:返回对象的类型。vars()
:返回对象的属性字典。zip()
:将多个可迭代对象打包成一个元组列表。
这些内置函数可以帮助我们完成各种常见的任务,例如类型转换、文件操作、数学运算等。
2 print函数介绍
print()
函数是Python中用于打印输出的内置函数。它可以将任何对象作为参数,并将其转换为字符串后输出到标准输出设备(通常是屏幕)上。
print()
函数的语法如下:
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
其中:
objects
:要输出的对象,可以是字符串、数字、列表、元组等任何可以转换为字符串的对象。sep
:用于分隔多个对象的字符串,默认为一个空格。end
:输出的结尾字符串,默认为换行符'\n'
。file
:输出的文件对象,默认为sys.stdout
,即标准输出。flush
:是否刷新输出缓冲区,默认为False
。
以下是一些使用print()
函数的示例:
# 打印字符串
print("Hello, World!")
# 打印多个字符串,用逗号分隔
print("Hello", "World", sep=',')
# 打印列表
print([1, 2, 3])
# 打印元组
print((1, 2, 3))
# 打印字典
print({"name": "Alice", "age": 20})
# 打印多个对象,用逗号分隔
print("Hello", [1, 2, 3], {"name": "Alice", "age": 20},sep=',')
# 指定分隔符和结尾字符
print("Hello", "World", "!", sep="-", end="**")
输出结果:
3 print函数的用途
print()
函数的输出可以重定向到不同的目标,这使得它在实际应用中具有广泛的用途。以下是一些常见的使用场景:
- 输出调试信息:在编写程序时,我们通常需要输出一些调试信息来帮助我们理解程序的运行过程。使用
print()
函数可以方便地输出这些调试信息。例如:
def factorial(n):
print("Calculating factorial of", n)
if n == 0:
return 1
else:
return n * factorial(n-1)
factorial(5)
这个函数会输出每次递归调用的参数,帮助我们理解程序的运行过程。
我们从控制台可以看到,按照递归的顺序依次执行,最终打印了120的结果
- 输出日志信息:在编写程序时,我们通常需要记录程序运行过程中的日志信息,以便在出现问题时进行排查。使用
print()
函数可以方便地输出这些日志信息。例如:
import logging
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
logging.debug('This is a debug message')
logging.info('This is an info message')
logging.warning('This is a warning message')
logging.error('This is an error message')
logging.critical('This is a critical message')
这个程序会输出不同级别的日志信息,帮助我们了解程序的运行状态。
在这个代码中,level=logging.DEBUG
设置了日志的级别为DEBUG
。
logging
模块提供了以下几个日志级别,从低到高:
DEBUG
:调试信息,用于记录程序的详细运行过程。INFO
:普通信息,用于记录程序的运行状态和一些重要事件。WARNING
:警告信息,用于记录可能出现问题的情况,但不影响程序的正常运行。ERROR
:错误信息,用于记录程序出现错误的情况,但不会导致程序崩溃。CRITICAL
:严重错误信息,用于记录程序出现严重错误的情况,可能导致程序崩溃。
level=logging.DEBUG
设置了日志的级别为DEBUG
,这意味着所有级别的日志都会被记录,包括DEBUG
、INFO
、WARNING
、ERROR
和CRITICAL
。
比如我们只希望报错信息打印出来,我们就可以将级别调整到error
- 输出到文件:在编写程序时,我们通常需要将程序的输出保存到文件中,以便后续的分析和处理。使用
print()
函数可以方便地将输出重定向到文件中。例如:
with open('output.txt', 'w') as f:
for i in range(10):
print(i, file=f)
这个程序会将数字0到9输出到output.txt
文件中。这里output.txt存放的路径和你命令行窗口的打开位置相关,如果需要指定文件存放路径,可以设置存放目录
import os
# 创建目录
os.makedirs('C:/temp', exist_ok=True)
# 打开文件
with open('C:/temp/output.txt', 'w') as f:
for i in range(10):
print(i, file=f)
这样我们就在C盘下的temp文件夹下创建了日志文件
- 输出到网络:在编写程序时,我们通常需要将程序的输出发送到网络上的某个地址,以便与其他程序进行通信。使用
print()
函数可以方便地将输出发送到网络上的某个地址。例如:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('example.com', 80))
print("GET / HTTP/1.1\r\nHost: example.com\r\n\r\n", file=s)
response = s.recv(1024)
print(response)
这个程序会连接到example.com
的80端口,并向其发送一个HTTP请求,然后接收并输出服务器返回的响应。
总结
我们本篇介绍了python常见内置函数,重点介绍了print函数的用法,脚本语言要会用控制台,向控制台打印信息通常便于我们调试程序。在程序正式上线之后,将错误信息记录到文件中便于我们定位线上故障,快速的排查问题。