《Python的内建函数详解》
Python作为一门简洁高效的编程语言,其内建函数(Built-in Functions)是开发者日常使用的核心工具。这些函数无需导入任何模块即可直接调用,覆盖了数据类型转换、逻辑判断、序列操作、数学计算等多个场景。本文将系统梳理Python 3.x版本中的核心内建函数,结合实际案例说明其用法,帮助读者构建完整的函数知识体系。
一、基础类型转换函数
Python提供了丰富的类型转换函数,用于在不同数据类型间进行安全转换。
1. 数值转换
# int()将字符串或浮点数转为整数
print(int("123")) # 输出: 123
print(int(3.14)) # 输出: 3
# float()将字符串或整数转为浮点数
print(float("3.14")) # 输出: 3.14
print(float(5)) # 输出: 5.0
# complex()创建复数
print(complex(1,2)) # 输出: (1+2j)
特殊处理:当字符串包含非数字字符时会抛出ValueError,建议先用str.isdigit()方法验证。
2. 字符串处理
# str()将任意对象转为字符串
print(str(100)) # 输出: "100"
print(str([1,2,3])) # 输出: "[1, 2, 3]"
# bytes()创建字节序列
data = bytes("abc", encoding='utf-8')
print(data) # 输出: b'abc'
# chr()和ord()进行字符编码转换
print(chr(65)) # 输出: 'A'
print(ord('A')) # 输出: 65
3. 布尔值转换
# bool()判断对象真假
print(bool(0)) # 输出: False
print(bool([])) # 输出: False
print(bool("hello")) # 输出: True
转换规则:0、None、空序列、空映射等视为False,其余视为True。
二、序列操作函数
序列类型(列表、元组、字符串等)是Python中最常用的数据结构,相关内建函数极大提升了处理效率。
1. 序列构造
# list()创建列表
print(list("abc")) # 输出: ['a', 'b', 'c']
# tuple()创建元组
print(tuple([1,2,3])) # 输出: (1, 2, 3)
# range()生成数字序列
for i in range(3,7,2):
print(i) # 输出: 3, 5
2. 序列解包
# zip()并行迭代
names = ['Alice', 'Bob']
scores = [90, 85]
for name, score in zip(names, scores):
print(f"{name}: {score}")
# 输出:
# Alice: 90
# Bob: 85
# enumerate()获取索引和值
fruits = ['apple', 'banana']
for i, fruit in enumerate(fruits):
print(i, fruit)
# 输出:
# 0 apple
# 1 banana
3. 序列操作
# len()获取长度
print(len([1,2,3])) # 输出: 3
# sum()求和
print(sum([1,2,3])) # 输出: 6
# sorted()排序
print(sorted([3,1,2])) # 输出: [1, 2, 3]
# reversed()反转序列
for x in reversed([1,2,3]):
print(x) # 输出: 3, 2, 1
三、数学计算函数
Python内建的数学函数覆盖了基本运算、数值判断和高级数学操作。
1. 基本运算
# abs()取绝对值
print(abs(-5)) # 输出: 5
# divmod()同时获取商和余数
print(divmod(10,3)) # 输出: (3, 1)
# pow()幂运算
print(pow(2,3)) # 输出: 8
print(pow(2,3,5)) # 输出: 3 (等价于2**3%5)
2. 数值判断
# min()和max()获取极值
print(min(1,2,3)) # 输出: 1
print(max([4,5,1])) # 输出: 5
# round()四舍五入
print(round(3.14159, 2)) # 输出: 3.14
# isinstance()类型检查
print(isinstance(5, int)) # 输出: True
3. 高级数学
import math # 虽然需要导入,但math模块函数常被视为内建扩展
# 三角函数
print(math.sin(math.pi/2)) # 输出: 1.0
# 对数运算
print(math.log(100,10)) # 输出: 2.0
# 随机数
import random
print(random.randint(1,10)) # 输出: 1-10的随机整数
四、对象操作函数
Python提供了强大的对象操作函数,支持反射和动态特性。
1. 类型检查
# type()获取对象类型
print(type(100)) # 输出:
# isinstance()多类型检查
print(isinstance(100, (int, float))) # 输出: True
2. 属性操作
class Person:
def __init__(self, name):
self.name = name
p = Person("Alice")
# hasattr()检查属性
print(hasattr(p, 'name')) # 输出: True
# getattr()获取属性
print(getattr(p, 'name')) # 输出: Alice
# setattr()设置属性
setattr(p, 'age', 25)
print(p.age) # 输出: 25
3. 内存管理
# id()获取对象标识
x = 10
print(id(x)) # 输出类似: 140736...
# isinstance() vs type()
# isinstance()考虑继承关系,type()严格匹配
class A: pass
class B(A): pass
b = B()
print(isinstance(b, A)) # 输出: True
print(type(b) == A) # 输出: False
五、输入输出函数
I/O操作是程序与外界交互的基础,Python提供了简洁的内建函数。
1. 标准输入输出
# print()输出
print("Hello", "World", sep="-") # 输出: Hello-World
# input()输入
name = input("Your name: ")
print(f"Hello, {name}")
2. 文件操作
# open()文件操作
with open('test.txt', 'w') as f:
f.write("Hello")
with open('test.txt', 'r') as f:
print(f.read()) # 输出: Hello
3. 格式化输出
# format()方法
print("{} is {}".format("Alice", 25))
# f-string (Python 3.6+)
name = "Bob"
age = 30
print(f"{name} is {age}")
六、高级功能函数
Python还提供了一些实现特定功能的强大内建函数。
1. 迭代器工具
# map()应用函数到序列
nums = [1,2,3]
squared = list(map(lambda x: x**2, nums))
print(squared) # 输出: [1, 4, 9]
# filter()过滤序列
evens = list(filter(lambda x: x%2==0, nums))
print(evens) # 输出: [2]
2. 函数工具
# callable()检查可调用性
def func(): pass
print(callable(func)) # 输出: True
print(callable(100)) # 输出: False
# eval()执行字符串表达式
x = 1
print(eval("x + 1")) # 输出: 2
# exec()执行多行代码
code = """
for i in range(3):
print(i)
"""
exec(code) # 输出: 0,1,2
3. 装饰器相关
# property()创建属性
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:
self._radius = value
c = Circle(5)
print(c.radius) # 输出: 5
七、实用工具函数
还有一些日常开发中常用的实用函数。
1. 帮助文档
# help()查看文档
help(str.upper)
# dir()查看对象属性
print(dir([])) # 显示列表所有方法
2. 编译执行
# compile()编译代码
code = compile("print('Hello')", '', 'exec')
exec(code) # 输出: Hello
3. 变量作用域
# globals()和locals()
x = 10
def func():
y = 20
print(locals()) # 输出: {'y': 20}
func()
print(globals()) # 包含x等全局变量
八、最佳实践与注意事项
1. 类型转换时注意异常处理:
try:
num = int("abc")
except ValueError:
print("无效输入")
2. 避免过度使用eval()和exec(),存在安全风险
3. 对于大数据处理,考虑使用生成器表达式替代map/filter
4. 优先使用f-string进行字符串格式化(Python 3.6+)
5. 注意某些函数在不同Python版本中的行为差异
总结
Python的内建函数体系设计精妙,既包含了基础类型转换、序列操作等日常工具,也提供了map/filter等函数式编程特性,还有property、装饰器等高级功能。熟练掌握这些函数可以显著提升开发效率,写出更简洁优雅的代码。建议开发者通过实际项目不断练习,逐渐形成对这些函数的直觉理解。
关键词:Python内建函数、类型转换、序列操作、数学计算、对象操作、输入输出、高级功能、最佳实践
简介:本文系统梳理Python 3.x版本中的核心内建函数,涵盖基础类型转换、序列操作、数学计算、对象操作、输入输出、高级功能等六大类,结合实际代码示例说明用法,并总结最佳实践与注意事项,帮助开发者构建完整的Python内建函数知识体系。