博客
关于我
Python内置函数详解
阅读量:799 次
发布时间:2023-03-08

本文共 4534 字,大约阅读时间需要 15 分钟。

什么是Python内置函数?

Python内置函数是Python解释器中预定义的函数,无需导入任何模块即可直接使用。这些函数提供了Python编程中最基础和常用的功能,是Python语言的核心组成部分。

内置函数分类详解

1. 数学运算类

abs(x)

功能描述:返回数字的绝对值。适用于整数、浮点数和复数。

示例代码:

print(abs(-5))  # 输出:5print(abs(3.14))  # 输出:3.14
divmod(a, b)

功能描述:返回两个数的商和余数。

示例代码:

print(divmod(7, 2))  # 输出:(3, 1)
pow(x, y[, z])

功能描述:返回x的y次方(如果提供z,则返回x的y次方对z取余)。

示例代码:

print(pow(2, 3))  # 输出:8print(pow(2, 3, 5))  # 输出:3
round(number[, ndigits])

功能描述:四舍五入到指定小数位。

示例代码:

print(round(3.1415, 2))  # 输出:3.14

2. 类型转换类

int(x[, base])

功能描述:将对象转换为整数。支持指定进制转换。

示例代码:

print(int('123'))  # 输出:123print(int('1010', 2))  # 输出:10(二进制转十进制)
float(x)

功能描述:将对象转换为浮点数。

示例代码:

print(float('3.14'))  # 输出:3.14
str(object)

功能描述:将对象转换为字符串。

示例代码:

print(str(123))  # 输出:'123'
bool(x)

功能描述:将对象转换为布尔值。

示例代码:

print(bool(1))  # 输出:Trueprint(bool(''))  # 输出:False

3. 序列操作类

len(s)

功能描述:返回对象的长度。适用于列表、字符串等。

示例代码:

print(len([1, 2, 3]))  # 输出:3print(len('Python'))  # 输出:6
range(start, stop[, step])

功能描述:生成数字序列。

示例代码:

for i in range(0, 5, 2):    print(i)  # 输出:0, 2, 4
sorted(iterable[, key][, reverse])

功能描述:返回排序后的新列表。

示例代码:

print(sorted([3, 1, 4, 1, 5]))  # 输出:[1, 1, 3, 4, 5]
reversed(seq)

功能描述:返回反转的迭代器。

示例代码:

print(list(reversed([1, 2, 3])))  # 输出:[3, 2, 1]

4. 迭代器和生成器类

iter(object[, sentinel])

功能描述:返回迭代器对象。

示例代码:

it = iter([1, 2, 3])print(next(it))  # 输出:1
next(iterator[, default])

功能描述:返回迭代器的下一个项目。支持默认值。

示例代码:

it = iter([1, 2])print(next(it))  # 输出:1print(next(it))  # 输出:2print(next(it, 'end'))  # 输出:'end'

5. 对象操作类

type(object)

功能描述:返回对象的类型。

示例代码:

print(type(123))  # 输出:
isinstance(object, classinfo)

功能描述:判断对象是否是指定类型。

示例代码:

print(isinstance(123, int))  # 输出:True
id(object)

功能描述:返回对象的唯一标识符。

示例代码:

x = [1, 2, 3]print(id(x))  # 输出:对象的内存地址

6. 输入输出类

print(*objects, sep=’ ‘, end=’\n’)

功能描述:打印输出。支持自定义分隔符和结束符。

示例代码:

print('Hello', 'World', sep=', ')  # 输出:Hello, World
input([prompt])

功能描述:接收用户输入。

示例代码:

name = input('请输入你的名字:')print(f'你好,{name}')

7. 其他重要内置函数

zip(*iterables)

功能描述:将多个可迭代对象打包成元组的迭代器。

示例代码:

list(zip([1, 2], ['a', 'b']))  # 输出:[(1, 'a'), (2, 'b')]
map(function, iterable, …)

功能描述:对可迭代对象的每个元素应用函数。

示例代码:

list(map(str, [1, 2, 3]))  # 输出:['1', '2', '3']
filter(function, iterable)

功能描述:过滤可迭代对象中的元素。

示例代码:

list(filter(lambda x: x > 0, [-1, 0, 1, 2]))  # 输出:[1, 2]

8. 高级内置函数

property(fget=None, fset=None, fdel=None, doc=None)

功能描述:将方法转换为属性。用于实现属性的getter和setter。

示例代码:

class Circle:    def __init__(self, radius):        self._radius = radius            @property    def radius(self):        return self._radius            @radius.setter    def radius(self, value):        if value < 0:            raise ValueError("半径不能为负数")        self._radius = value
staticmethod(function)

功能描述:将方法转换为静态方法。静态方法不需要类或实例。

示例代码:

class MathUtils:    @staticmethod    def is_prime(n):        if n < 2:            return False        for i in range(2, int(n ** 0.5) + 1):            if n % i == 0:                return False        return True
classmethod(function)

功能描述:将方法转换为类方法。类方法可以通过类名或实例调用。

示例代码:

class Date:    def __init__(self, year, month, day):        self.year = year        self.month = month        self.day = day        @classmethod    def from_string(cls, date_string):        year, month, day = map(int, date_string.split('-'))        return cls(year, month, day)

9. 上下文管理器函数

contextlib.contextmanager

功能描述:创建上下文管理器。用于管理资源和临时状态。

示例代码:

from contextlib import contextmanager@contextmanagerdef timer():    import time    start = time.time()    yield    end = time.time()    print(f"执行时间:{end - start}秒")with timer():    # 执行某些操作    pass

性能优化建议

  • 使用内置函数替代自定义实现。内置函数通常比Python实现更高效。
  • 合理使用生成器函数。生成器可以减少内存使用,适合处理大数据集。
  • 选择合适的数据结构。使用set进行成员检测,dict.get替代try-except进行键值获取。
  • Python版本差异

    Python 2 vs Python 3

  • print 函数:Python 2为语句,Python 3为函数。

  • input 函数:Python 2的input()评估输入,raw_input()返回字符串;Python 3的input()始终返回字符串。

  • range 函数:Python 2返回列表,Python 3返回可迭代对象。

  • 实际开发中的注意事项

  • 异常处理:使用try-except处理可能的类型转换错误,对输入参数进行有效性验证。
  • 性能考虑:避免在循环中重复调用内置函数,使用性能分析工具评估瓶颈。
  • 代码可维护性:合理使用函数注释和类型提示,遵循Python编码规范。
  • 安全性考虑:避免使用eval()处理不信任输入,注意数据类型转换的边界情况。
  • 调试技巧

  • 使用内置函数进行调试:dir()查看属性和方法,vars()获取__dict__属性,locals()查看局部变量。
  • 使用断言进行测试:assert语句配合内置函数验证假设,使用__debug__变量控制断言。
  • 最佳实践示例

    1. 数据处理优化

    # 低效的实现data = [1, 2, 3, 4, 5]result = 0for num in data:    result += num# 优化后的实现result = sum(data)

    2. 文件操作最佳实践

    # 推荐使用上下文管理器with open('file.txt', 'r') as f:    content = f.read()# 而不是f = open('file.txt', 'r')try:    content = f.read()finally:    f.close()

    3. 异常处理最佳实践

    # 推荐的方式def safe_convert_to_int(value):    try:        return int(value)    except (ValueError, TypeError):        return None# 而不是def unsafe_convert_to_int(value):    return int(value)  # 可能引发异常

    转载地址:http://cklfk.baihongyu.com/

    你可能感兴趣的文章
    Python 接口并发测试详解
    查看>>
    Python 接口自动化 —— requests框架
    查看>>
    python 接口自动化数据结构(如列表、字典、元组)
    查看>>
    Python 接口自动化测试中的深拷贝与浅拷贝~
    查看>>
    Python 接口自动化测试中的高阶函数
    查看>>
    python 控制 cmd 命令行颜色
    查看>>
    Python 操作 Azure Blob Storage
    查看>>
    Python 操作 Excel 全攻略 | 包括读取、写入、表格操作、图像输出和字体设置
    查看>>
    Python 操作 JMeter 探索:pymeter 实操指南
    查看>>
    Python 操作 Redis
    查看>>
    Python 操作Mysql(PyMysql)
    查看>>
    Python 操作Redis
    查看>>
    Python 操作sqlite数据库及保存查询numpy类型数据(一)
    查看>>
    Python 操作sqlite数据库及保存查询numpy类型数据(二)
    查看>>
    Python 数据文件与网络数据序列化存储详解
    查看>>
    Python 数据结构与算法详解
    查看>>
    Python 数据采集、清洗、整理、分析以及可视化实战
    查看>>
    Python 数据预处理
    查看>>
    Python 无法安装包
    查看>>
    python 日历小部件 - 返回用户选择的日期
    查看>>