💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
持续学习,不断总结,共同进步,为了踏实,做好当下事儿~
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨
|-----------------------------|
| 💖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]
注意事项:
如果function为None,则过滤掉所有假值(如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)) # 输出:
print(type("hello")) # 输出:
print(type([1, 2, 3])) # 输出:
# 自定义类
class MyClass:
pass
obj = MyClass()
print(type(obj)) # 输出:
# 动态创建类
MyDynamicClass = type('MyDynamicClass', (), {})
instance = MyDynamicClass()
print(type(instance)) # 输出:
应用场景:
类型检查:在运行时确定对象类型。
动态创建类:使用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
---
🔥🔥🔥道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙
|
💖The Start💖点点关注,收藏不迷路💖
|
---