💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
持续学习,不断总结,共同进步,为了踏实,做好当下事儿~
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

在这里插入图片描述

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

📒文章目录

    • 1. 引言:Python内置函数的重要性
      • 内置函数的优势:
      • 适用场景:
      • 学习目标:
    • 2. 基础操作函数
      • 2.1 len():获取对象长度
      • 2.2 range():生成整数序列
      • 2.3 enumerate():为可迭代对象添加索引
    • 3. 函数式编程工具
      • 3.1 map():对可迭代对象应用函数
      • 3.2 filter():过滤可迭代对象
      • 3.3 reduce():累积计算
    • 4. 输入输出函数
      • 4.1 open():打开文件
      • 4.2 print():输出内容
      • 4.3 input():获取用户输入
    • 5. 元编程相关函数
      • 5.1 type():获取对象类型
      • 5.2 isinstance():检查对象类型
      • 5.3 hasattr():检查对象属性
    • 6. 其他常用内置函数
      • 6.1 zip():合并多个可迭代对象
      • 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:需要计算长度的可迭代对象。
  • 返回值:整数,表示对象的长度。

示例代码

# 计算列表长度
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()转换为列表使用。

示例代码

# 生成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()转换为列表。

示例代码

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()转换为列表。

示例代码

# 将列表中的每个元素平方
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()转换为列表。

示例代码

# 过滤偶数
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 > 0positives = 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模块,需先导入。

示例代码

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'
  • 返回值:文件对象。

示例代码

# 读取文件内容
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:结束符(默认为换行符)。
  • 返回值:无。

示例代码

# 基本输出
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:提示信息(可选)。
  • 返回值:字符串,用户输入的内容。

示例代码

# 基本输入
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:任意对象。
  • 返回值:对象的类型。

示例代码

# 获取内置类型
print(type(42))          # 输出:<class 'int'>
print(type("hello"))     # 输出:<class 'str'>
print(type([1, 2, 3]))   # 输出:<class 'list'># 自定义类
class MyClass:passobj = 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:类型或类型元组。
  • 返回值:布尔值,表示对象是否属于指定类型。

示例代码

# 检查内置类型
num = 42
print(isinstance(num, int))      # 输出:True
print(isinstance(num, str))      # 输出:False# 检查多个类型
print(isinstance(num, (int, float)))  # 输出:True# 检查继承关系
class Parent:passclass Child(Parent):passobj = Child()
print(isinstance(obj, Parent))   # 输出:True

优势

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

5.3 hasattr():检查对象属性

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

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

示例代码

class MyClass:def __init__(self):self.value = 42def method(self):passobj = 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()转换为元组列表。

示例代码

# 基本用法
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)。
  • 返回值:排序后的新列表。

示例代码

# 基本排序
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>---

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/94315.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/94315.shtml
英文地址,请注明出处:http://en.pswp.cn/web/94315.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据建模怎么做?一文讲清数据建模全流程

目录 一、需求分析 1. 搞清楚业务目标&#xff1a;这数据是要解决啥问题&#xff1f; 2. 明确数据边界&#xff1a;哪些数据该要&#xff0c;哪些不该要&#xff1f; 3. 弄明白使用场景&#xff1a;谁用这数据&#xff0c;怎么用&#xff1f; 二、模型设计 1. 第一步&…

胸部X光片数据集:健康及肺炎2类,14k+图像

胸部X光片数据集概述 数据集包含14090张图像,分为正常胸部X光3901张,肺炎胸部X光10189张。 标注格式:无标注,文件夹分类。 图像尺寸:640*640 正常胸部X光: 肺炎胸部X光: 数据采集: 拍摄方式:均为前后位(anterior-posterior)胸部X光,属患者常规临床护理的一部分…

MySQL數據庫開發教學(二) 核心概念、重要指令

書接上回&#xff1a;MySQL數據庫開發教學(一) 基本架構-CSDN博客 建議工具&#xff1a; Navicat Premium (收費 / 需破解)&#xff1a;Navicat Premium | 管理和开发你的数据库 phpstudy 2018 (免費)&#xff1a;phpStudy - Windows 一键部署 PHP 开发环境 小皮出品 前言 …

【40页PPT】数字工厂一体化运营管控平台解决方案(附下载方式)

篇幅所限&#xff0c;本文只提供部分资料内容&#xff0c;完整资料请看下面链接 https://download.csdn.net/download/2501_92808811/91716541 资料解读&#xff1a;【40页PPT】数字工厂一体化运营管控平台解决方案 详细资料请看本解读文章的最后内容。该资料围绕数字工厂一体…

数据产品(2)用户画像数据分析模型

目录 1 用户画像 2 RFM模型 (用户价值分群模型) 3 PSM 价格敏感度 4 精细化运营 1 用户画像 也称用户表标签,是基于用户行为分析获得的对用户的一种认知表达,即用户数据标签化,通过收集与分析用户的用户属性(年龄、性别、城市、职业、设备、状态)、用户偏好(购物偏好,听…

03_数据结构

第3课&#xff1a;数据结构 课程目标 掌握Python的基本数据结构&#xff1a;列表、元组、字典、集合学习字符串的高级操作方法理解不同数据结构的特点和适用场景 1. 列表&#xff08;List&#xff09; 1.1 列表的创建和基本操作 # 创建列表 fruits ["苹果", "香…

【JavaEE】多线程 -- CAS机制(比较并交换)

目录CAS是什么CAS的应用实现原子类实现自旋锁ABA问题ABA问题概述ABA问题引起的BUG解决方案CAS是什么 CAS (compare and swap) 比较并交换&#xff0c;CAS 是物理层次支持程序的原子操作。说起原子性&#xff0c;这就设计到线程安全问题&#xff0c;在代码的层面为了解决多线程…

The United Nations Is Already Dead

The United Nations Is Already Dead When children in Gaza rummage through rubble for food, when UN-run schools are reduced to dust, when the Security Council cannot even pass the mildest ceasefire resolution—blocked by a single veto— we must confront a br…

Kubernetes v1.34 前瞻:资源管理、安全与可观测性的全面进化

预计正式发布&#xff1a;2025年8月底 | 分类&#xff1a;Kubernetes 随着2025年8月底的临近&#xff0c;Kubernetes社区正紧锣密鼓地准备下一个重要版本——v1.34的发布。本次更新并非简单的功能叠加&#xff0c;而是在资源管理、安全身份、可观测性和工作负载控制等核心领域的…

用 Bright Data MCP Server 构建实时数据驱动的 AI 情报系统:从市场调研到技术追踪的自动化实战

前言 本文通过两个真实场景&#xff08;云服务商对比与 AIGC 技术追踪&#xff09;&#xff0c;展示了如何使用 Bright Data MCP Server 与 Lingma IDE 构建一个具备实时网页数据抓取、结构化分析与自动化报告生成能力的 AI 工作流。通过简单的 API 调用与 JSON 配置&#xff…

牛顿第二定律的所有表达方式:1、线性表达 2、圆形表达 3、双曲线表达 4、抛物线表达5、数列表达

牛顿第二定律是经典力学中的核心定律&#xff0c;表述为&#xff1a;物体的加速度与所受合力成正比&#xff0c;与质量成反比&#xff0c;方向与合力方向相同。其基本矢量形式为&#xff1a; F⃗ma⃗ \vec{F} m \vec{a} Fma 其中&#xff0c;F⃗\vec{F}F 是合力&#xff08;单…

【开发日记】SpringBoot 实现支持多个微信小程序的登录

在实际业务场景中&#xff0c;需要一个后台同时支持多个微信小程序的登录。例如&#xff0c;企业有多个不同业务的小程序&#xff0c;但希望统一在同一个后台系统里进行用户认证和数据处理。这时候&#xff0c;我们就需要一个灵活的方式来管理多个小程序的 appid 和 secret&…

Docker 容器(一)

Docker一、Docker是什么1.什么是Docker2.Docker特点3.比较虚拟机和容器二、Docker安装1.Docker​​三大核心组件​​2.安装步骤&#xff08;Ubuntu&#xff09;3.阿里云镜像加速三、Docker镜像1.什么是镜像2.UnionFS&#xff08;联合文件系统&#xff09;3.Docker镜像加载原理4…

容器安全实践(二):实践篇 - 从 `Dockerfile` 到 Pod 的权限深耕

在上一篇《容器安全实践&#xff08;一&#xff09;&#xff1a;概念篇》中&#xff0c;我们深入探讨了容器安全的底层原理&#xff0c;并纠正了“容器天生安全”的误解。我们了解了 root 用户的双重身份&#xff0c;以及特权容器的危险性。 然而&#xff0c;仅仅了解这些概念…

c#_数据持久化

数据持久化架构 数据是应用程序的命脉。持久化架构的选择直接决定了应用的性能、可扩展性、复杂度和维护成本。本章将深入探讨.NET生态中主流的数据访问模式、工具和策略&#xff0c;帮助你为你的系统做出最明智的数据决策。5.1 ORM之争&#xff1a;Entity Framework Core深度剖…

996引擎-骰子功能

996引擎-骰子功能 测试NPC QF回调函数 结果 参考资料 在测试NPC播放骰子动画。 播放前需要先设置骰子点数 测试NPC [[骰子的显示顺序和点数 对应 私人变量 D0 D1 D2 D3 D4 D5]] -- NPC入口函数 function main(player)-- 骰子共6个,设置骰子点数后,再执行摇骰子,否则没动画…

Vue 3多语言应用开发实战:vue-i18n深度解析与最佳实践

&#x1f4d6; 概述 Vue 3 国际化&#xff08;i18n&#xff09;是构建多语言应用的核心需求。本文档介绍 Vue 3 中实现国际化的主流方案&#xff0c;包括 vue-i18n、Vite 插件方案和自定义解决方案。 &#x1f3af; 主流方案对比 方案优点缺点适用场景vue-i18n功能完整、生态成…

港口船舶流量统计准确率↑27%!陌讯多模态融合算法实战解析

一、行业痛点&#xff1a;港口船舶流量统计的三大核心难题智慧港口建设中&#xff0c;船舶流量统计是泊位调度、航道管理与安全预警的核心数据支撑&#xff0c;但传统方案受场景特性限制&#xff0c;长期存在难以解决的技术瓶颈。据《2023 年中国港口智能化发展报告》显示&…

Shell脚本的基础知识学习

Shell 脚本是 Linux/Unix 系统的核心自动化工具&#xff0c;能够完成以下任务&#xff1a; &#xff08;1&#xff09;批量操作&#xff1a;一键安装软件、批量处理文件&#xff08;重命名、压缩、备份等&#xff09;。 &#xff08;2&#xff09;系统管理&#xff1a;监控资源…

k8s部署,pod管理,控制器,微服务,集群储存,集群网络及调度,集群认证

k8s部署 k8s中容器的管理方式 ​ Kubernetes集群创建方式 centainerd 默认情况下&#xff0c;K8S在创建集群时使用的方式 docker docker使用的普记录最高&#xff0c;虽然K8S在1.24版本后已经费力了kubelet对docker的支持&#xff0c;但时可以借助cri-docker方式来实现集…