Python内置函数全解析:30个核心函数语法、案例与最佳实践指南

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。

持续学习,不断总结,共同进步,为了踏实,做好当下事儿~

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

|-----------------------------|
| 💖The Start💖点点关注,收藏不迷路💖 |

📒文章目录

    • [1. 引言:Python内置函数的重要性](#1. 引言:Python内置函数的重要性)
    • [2. 基础操作函数](#2. 基础操作函数)
      • [2.1 len():获取对象长度](#2.1 len():获取对象长度)
      • [2.2 range():生成整数序列](#2.2 range():生成整数序列)
      • [2.3 enumerate():为可迭代对象添加索引](#2.3 enumerate():为可迭代对象添加索引)
    • [3. 函数式编程工具](#3. 函数式编程工具)
      • [3.1 map():对可迭代对象应用函数](#3.1 map():对可迭代对象应用函数)
      • [3.2 filter():过滤可迭代对象](#3.2 filter():过滤可迭代对象)
      • [3.3 reduce():累积计算](#3.3 reduce():累积计算)
    • [4. 输入输出函数](#4. 输入输出函数)
      • [4.1 open():打开文件](#4.1 open():打开文件)
      • [4.2 print():输出内容](#4.2 print():输出内容)
      • [4.3 input():获取用户输入](#4.3 input():获取用户输入)
    • [5. 元编程相关函数](#5. 元编程相关函数)
      • [5.1 type():获取对象类型](#5.1 type():获取对象类型)
      • [5.2 isinstance():检查对象类型](#5.2 isinstance():检查对象类型)
      • [5.3 hasattr():检查对象属性](#5.3 hasattr():检查对象属性)
    • [6. 其他常用内置函数](#6. 其他常用内置函数)
      • [6.1 zip():合并多个可迭代对象](#6.1 zip():合并多个可迭代对象)
      • [6.2 sorted():排序可迭代对象](#6.2 sorted():排序可迭代对象)

Python作为一门高效且功能强大的编程语言,其内置函数是开发者日常编程中不可或缺的工具。掌握这些内置函数不仅能提升代码效率,还能使代码更加简洁、Pythonic。本文将系统梳理30个常用内置函数,涵盖数据类型操作、函数式编程、输入输出和元编程等核心功能,每个函数均配有语法说明、参数详解和实用案例,帮助开发者深入理解并灵活运用。


1. 引言:Python内置函数的重要性

Python内置函数是Python解释器自带的函数,无需导入任何模块即可直接使用。它们经过高度优化,执行效率高,是Python编程中不可或缺的一部分。掌握这些内置函数,不仅能提升开发效率,还能使代码更加简洁、优雅,符合Python的设计哲学。

内置函数的优势:

  • 无需导入:直接调用,减少代码冗余。
  • 高效执行:底层由C语言实现,运行速度快。
  • 广泛适用:覆盖数据处理、函数式编程、文件操作、元编程等多个领域。

适用场景:

内置函数广泛应用于日常开发中,例如:

  • 数据处理:使用len()range()等快速操作数据。
  • 函数式编程:利用map()filter()等实现简洁的逻辑。
  • 文件操作:通过open()print()等处理输入输出。
  • 元编程:借助type()isinstance()等动态操作对象。

学习目标:

通过本文,您将系统掌握30个核心内置函数的语法、参数和实际应用,能够写出更高效、Pythonic的代码。


2. 基础操作函数

基础操作函数是Python中最常用的一类内置函数,用于处理数据的基本操作,如获取长度、生成序列、添加索引等。

2.1 len():获取对象长度

len()函数用于返回对象的长度或元素个数,适用于所有可迭代对象,如列表、字符串、元组、字典等。

  • 语法len(object)
  • 参数
    • object:需要计算长度的可迭代对象。
  • 返回值:整数,表示对象的长度。

示例代码

python 复制代码
# 计算列表长度
my_list = [1, 2, 3, 4, 5]
print(len(my_list))  # 输出:5

# 计算字符串长度
my_string = "Hello, World!"
print(len(my_string))  # 输出:13

# 计算字典键值对数量
my_dict = {'a': 1, 'b': 2, 'c': 3}
print(len(my_dict))  # 输出:3

注意事项

  • 对于自定义对象,可以通过实现__len__()方法来自定义len()的行为。

2.2 range():生成整数序列

range()函数用于生成一个整数序列,常用于循环操作。

  • 语法range(start, stop, step)
  • 参数
    • start:序列起始值(可选,默认为0)。
    • stop:序列终止值(不包含该值)。
    • step:步长(可选,默认为1)。
  • 返回值 :一个不可变的序列对象,通常通过list()转换为列表使用。

示例代码

python 复制代码
# 生成0到4的整数序列
print(list(range(5)))  # 输出:[0, 1, 2, 3, 4]

# 生成2到10的偶数序列
print(list(range(2, 11, 2)))  # 输出:[2, 4, 6, 8, 10]

# 逆序生成序列
print(list(range(5, 0, -1)))  # 输出:[5, 4, 3, 2, 1]

应用场景

  • 循环遍历:for i in range(10):
  • 生成索引:与len()结合使用,遍历列表索引。

2.3 enumerate():为可迭代对象添加索引

enumerate()函数用于为可迭代对象添加索引,返回一个枚举对象,其中每个元素是(索引,值)元组。

  • 语法enumerate(iterable, start=0)
  • 参数
    • iterable:可迭代对象,如列表、字符串等。
    • start:索引的起始值(可选,默认为0)。
  • 返回值 :枚举对象,可通过list()转换为列表。

示例代码

python 复制代码
fruits = ['apple', 'banana', 'cherry']

# 默认起始索引为0
print(list(enumerate(fruits)))  # 输出:[(0, 'apple'), (1, 'banana'), (2, 'cherry')]

# 设置起始索引为1
print(list(enumerate(fruits, start=1)))  # 输出:[(1, 'apple'), (2, 'banana'), (3, 'cherry')]

# 在循环中使用
for index, value in enumerate(fruits):
    print(f"Index: {index}, Value: {value}")

优势

  • 简化代码:无需手动维护索引变量。
  • 提高可读性:直接获取索引和值。

3. 函数式编程工具

函数式编程是一种编程范式,Python通过内置函数如map()filter()reduce()提供支持,使代码更简洁、表达力更强。

3.1 map():对可迭代对象应用函数

map()函数将指定函数应用于可迭代对象的每个元素,返回一个迭代器。

  • 语法map(function, iterable)
  • 参数
    • function:要应用的函数。
    • iterable:一个或多个可迭代对象。
  • 返回值 :map对象(迭代器),可通过list()转换为列表。

示例代码

python 复制代码
# 将列表中的每个元素平方
numbers = [1, 2, 3, 4]
squared = list(map(lambda x: x**2, numbers))
print(squared)  # 输出:[1, 4, 9, 16]

# 使用内置函数
words = ["hello", "world"]
upper_words = list(map(str.upper, words))
print(upper_words)  # 输出:['HELLO', 'WORLD']

# 多个可迭代对象
a = [1, 2, 3]
b = [4, 5, 6]
sums = list(map(lambda x, y: x + y, a, b))
print(sums)  # 输出:[5, 7, 9]

应用场景

  • 数据转换:将一组数据转换为另一种形式。
  • 批量处理:对每个元素执行相同操作。

3.2 filter():过滤可迭代对象

filter()函数用于过滤可迭代对象,保留使函数返回True的元素。

  • 语法filter(function, iterable)
  • 参数
    • function:过滤函数,返回布尔值。
    • iterable:可迭代对象。
  • 返回值 :filter对象(迭代器),可通过list()转换为列表。

示例代码

python 复制代码
# 过滤偶数
numbers = [1, 2, 3, 4, 5, 6]
evens = list(filter(lambda x: x % 2 == 0, numbers))
print(evens)  # 输出:[2, 4, 6]

# 过滤非空字符串
words = ["hello", "", "world", None, " "]
non_empty = list(filter(None, words))  # None作为函数时,过滤假值
print(non_empty)  # 输出:['hello', 'world', ' ']

# 自定义过滤函数
def is_positive(x):
    return x > 0

positives = list(filter(is_positive, [-2, -1, 0, 1, 2]))
print(positives)  # 输出:[1, 2]

注意事项

  • 如果functionNone,则过滤掉所有假值(如False、0、""、None等)。

3.3 reduce():累积计算

reduce()函数对可迭代对象中的元素进行累积计算,通过指定函数逐步合并元素。

  • 语法reduce(function, iterable[, initial])
  • 参数
    • function:累积函数,接受两个参数。
    • iterable:可迭代对象。
    • initial:初始值(可选)。
  • 返回值:累积计算的结果。

注意reduce()函数在Python 3中移至functools模块,需先导入。

示例代码

python 复制代码
from functools import reduce

# 计算列表元素的乘积
numbers = [1, 2, 3, 4]
product = reduce(lambda x, y: x * y, numbers)
print(product)  # 输出:24

# 使用初始值
sum_with_initial = reduce(lambda x, y: x + y, numbers, 10)
print(sum_with_initial)  # 输出:20

# 查找最大值
max_value = reduce(lambda x, y: x if x > y else y, numbers)
print(max_value)  # 输出:4

应用场景

  • 累积计算:如求和、求积、找最大值等。
  • 数据聚合:逐步合并多个数据项。

4. 输入输出函数

输入输出(I/O)函数用于处理程序与外部环境的数据交互,如读写文件、打印输出、获取用户输入等。

4.1 open():打开文件

open()函数用于打开文件,返回文件对象,支持读写操作。

  • 语法open(file, mode='r', encoding=None)
  • 参数
    • file:文件路径(字符串)。
    • mode:打开模式,如'r'(读)、'w'(写)、'a'(追加)等。
    • encoding:编码方式,如'utf-8'
  • 返回值:文件对象。

示例代码

python 复制代码
# 读取文件内容
with open('example.txt', 'r', encoding='utf-8') as f:
    content = f.read()
    print(content)

# 写入文件
with open('output.txt', 'w', encoding='utf-8') as f:
    f.write("Hello, World!")

# 追加内容
with open('output.txt', 'a', encoding='utf-8') as f:
    f.write("\nAppended text.")

常用模式

  • 'r':读取(默认)。
  • 'w':写入(覆盖原有内容)。
  • 'a':追加。
  • 'b':二进制模式,如'rb'

最佳实践

  • 使用with语句确保文件正确关闭。
  • 指定编码以避免乱码问题。

4.2 print():输出内容

print()函数用于将内容输出到标准输出(如控制台)。

  • 语法print(*objects, sep=' ', end='\n')
  • 参数
    • objects:一个或多个要输出的对象。
    • sep:分隔符(默认为空格)。
    • end:结束符(默认为换行符)。
  • 返回值:无。

示例代码

python 复制代码
# 基本输出
print("Hello, World!")  # 输出:Hello, World!

# 输出多个对象
print("Hello", "World", sep="-")  # 输出:Hello-World

# 自定义结束符
print("Hello", end=" ")
print("World")  # 输出:Hello World

# 输出到文件
with open('output.txt', 'w') as f:
    print("Hello, File!", file=f)

高级用法

  • 格式化输出:结合f-string或format()方法。
  • 重定向输出:通过file参数输出到文件。

4.3 input():获取用户输入

input()函数用于从标准输入(如键盘)获取用户输入。

  • 语法input([prompt])
  • 参数
    • prompt:提示信息(可选)。
  • 返回值:字符串,用户输入的内容。

示例代码

python 复制代码
# 基本输入
name = input("Enter your name: ")
print(f"Hello, {name}!")

# 输入数值
age = int(input("Enter your age: "))
print(f"You are {age} years old.")

# 输入多个值
data = input("Enter two numbers separated by space: ").split()
a, b = map(int, data)
print(f"Sum: {a + b}")

注意事项

  • 输入的内容总是字符串类型,需根据需要转换。
  • 处理异常输入,避免程序崩溃。

5. 元编程相关函数

元编程涉及在运行时操作程序本身,Python提供了一系列内置函数来支持元编程,如检查类型、属性等。

5.1 type():获取对象类型

type()函数用于获取对象的类型。

  • 语法type(object)
  • 参数
    • object:任意对象。
  • 返回值:对象的类型。

示例代码

python 复制代码
# 获取内置类型
print(type(42))          # 输出:<class 'int'>
print(type("hello"))     # 输出:<class 'str'>
print(type([1, 2, 3]))   # 输出:<class 'list'>

# 自定义类
class MyClass:
    pass

obj = MyClass()
print(type(obj))         # 输出:<class '__main__.MyClass'>

# 动态创建类
MyDynamicClass = type('MyDynamicClass', (), {})
instance = MyDynamicClass()
print(type(instance))    # 输出:<class '__main__.MyDynamicClass'>

应用场景

  • 类型检查:在运行时确定对象类型。
  • 动态创建类:使用type()动态生成类。

5.2 isinstance():检查对象类型

isinstance()函数用于检查对象是否为指定类型的实例。

  • 语法isinstance(object, classinfo)
  • 参数
    • object:要检查的对象。
    • classinfo:类型或类型元组。
  • 返回值:布尔值,表示对象是否属于指定类型。

示例代码

python 复制代码
# 检查内置类型
num = 42
print(isinstance(num, int))      # 输出:True
print(isinstance(num, str))      # 输出:False

# 检查多个类型
print(isinstance(num, (int, float)))  # 输出:True

# 检查继承关系
class Parent:
    pass

class Child(Parent):
    pass

obj = Child()
print(isinstance(obj, Parent))   # 输出:True

优势

  • 支持继承关系检查。
  • 可同时检查多个类型。

5.3 hasattr():检查对象属性

hasattr()函数用于检查对象是否具有指定属性。

  • 语法hasattr(object, name)
  • 参数
    • object:要检查的对象。
    • name:属性名称(字符串)。
  • 返回值:布尔值,表示对象是否具有该属性。

示例代码

python 复制代码
class MyClass:
    def __init__(self):
        self.value = 42

    def method(self):
        pass

obj = MyClass()

# 检查属性
print(hasattr(obj, 'value'))     # 输出:True
print(hasattr(obj, 'method'))    # 输出:True
print(hasattr(obj, 'unknown'))   # 输出:False

# 检查模块属性
import math
print(hasattr(math, 'sqrt'))     # 输出:True

应用场景

  • 动态属性访问:在访问属性前先检查是否存在。
  • 插件系统:检查对象是否支持特定方法。

6. 其他常用内置函数

除了上述分类,Python还提供了许多其他实用的内置函数,如zip()sorted()max()min()等。

6.1 zip():合并多个可迭代对象

zip()函数用于将多个可迭代对象中的元素按顺序配对,返回一个迭代器。

  • 语法zip(*iterables)
  • 参数
    • iterables:多个可迭代对象。
  • 返回值 :zip对象(迭代器),可通过list()转换为元组列表。

示例代码

python 复制代码
# 基本用法
names = ["Alice", "Bob", "Charlie"]
scores = [85, 90, 78]
combined = list(zip(names, scores))
print(combined)  # 输出:[('Alice', 85), ('Bob', 90), ('Charlie', 78)]

# 长度不一致时,以最短的为准
ages = [25, 30]
result = list(zip(names, ages))
print(result)  # 输出:[('Alice', 25), ('Bob', 30)]

# 解压
pairs = [('a', 1), ('b', 2), ('c', 3)]
unzipped = list(zip(*pairs))
print(unzipped)  # 输出:[('a', 'b', 'c'), (1, 2, 3)]

应用场景

  • 数据配对:将多个列表的元素一一对应。
  • 矩阵转置:通过zip(*matrix)实现。

6.2 sorted():排序可迭代对象

sorted()函数用于对可迭代对象进行排序,返回一个新列表。

  • 语法sorted(iterable, key=None, reverse=False)
  • 参数
    • iterable:可迭代对象。
    • key:排序键函数(可选)。
    • reverse:是否逆序排序(可选,默认为False)。
  • 返回值:排序后的新列表。

示例代码

python 复制代码
# 基本排序
numbers = [3, 1, 4, 1, 5, 9]
print(sorted(numbers))  # 输出:[1, 1, 3, 4, 5, 9]

# 逆序排序
print(sorted(numbers, reverse=True))  # 输出:[9

---

🔥🔥🔥道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

<div class="table-box">
    <table width="100%">
        <tbody>
        <tr>
            <td width="50%">
                <div align="center"><font color="#E73B3E"><em>💖The Start💖点点关注,收藏不迷路💖<em></em></em></font></div>
            </td>
        </tr>
        </tbody>
    </table>
</div>

---
相关推荐
maosheng11466 小时前
RHCSA的第一次作业
linux·运维·服务器
猿界零零七7 小时前
pip install mxnet 报错解决方案
python·pip·mxnet
wifi chicken7 小时前
Linux 端口扫描及拓展
linux·端口扫描·网络攻击
旺仔.2917 小时前
Linux 信号详解
linux·运维·网络
放飞梦想C7 小时前
CPU Cache
linux·cache
Hoshino.418 小时前
基于Linux中的数据库操作——下载与安装(1)
linux·运维·数据库
不只会拍照的程序猿9 小时前
《嵌入式AI筑基笔记02:Python数据类型01,从C的“硬核”到Python的“包容”》
人工智能·笔记·python
恒创科技HK9 小时前
通用型云服务器与计算型云服务器:您真正需要哪些配置?
运维·服务器
Jay_Franklin9 小时前
Quarto与Python集成使用
开发语言·python·markdown
Oueii9 小时前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python