元素码农
基础
UML建模
数据结构
算法
设计模式
网络
TCP/IP协议
HTTPS安全机制
WebSocket实时通信
数据库
sqlite
postgresql
clickhouse
后端
rust
go
java
php
mysql
redis
mongodb
etcd
nats
zincsearch
前端
浏览器
javascript
typescript
vue3
react
游戏
unity
unreal
C++
C#
Lua
App
android
ios
flutter
react-native
安全
Web安全
测试
软件测试
自动化测试 - Playwright
人工智能
Python
langChain
langGraph
运维
linux
docker
工具
git
svn
🌞
🌙
目录
▶
Python基础语法
Python环境安装与配置
第一个Python程序
变量与数据类型
字面量详解
基本运算符
流程控制语句
包管理与虚拟环境
▶
Python数据结构
列表(List)详解
元组(Tuple)使用指南
字典(Dict)完全解析
集合(Set)操作大全
▶
函数与模块
函数定义与参数传递
Lambda表达式
模块导入与使用
常用内置函数
▶
面向对象编程
类与对象
继承与多态
魔术方法解析
装饰器原理与应用
▶
Python类型系统
类型注解(Type Hints)
Pydantic基础
Pydantic高级特性
typing模块基础
泛型类型详解
泛型类详解
Callable类型详解
Awaitable类型详解
类型变量与约束
类型别名与Protocol
TypedDict详解
Annotated类型
Reducer类型
类型检查工具使用
类型注解最佳实践
▶
关键字
pass关键字
raise关键字
global关键字
nonlocal关键字
yield关键字
assert关键字
with关键字
async/await关键字
▶
包管理
pip包管理基础
虚拟环境管理
包管理工具对比
requirements.txt规范
依赖管理与requirements.txt
setup.py配置说明
Poetry项目管理工具
Conda包管理系统
打包与发布Python包
PyPI发布流程
私有PyPI仓库
▶
Python高级特性
迭代器与生成器
多线程编程
协程与异步IO
元编程入门
反射机制详解
描述符协议
上下文管理器协议
垃圾回收机制
内存管理深度解析
性能优化指南
▶
文件与异常处理
文件读写操作
JSON数据解析
异常处理机制
上下文管理器
发布时间:
2025-03-29 10:06
↑
☰
# Python常用内置函数详解 本文将详细介绍Python中常用的内置函数,帮助你更好地理解和使用这些强大的工具。 ## 数值运算函数 ### abs() - 绝对值 ```python print(abs(-5)) # 5 print(abs(-3.14)) # 3.14 ``` ### round() - 四舍五入 ```python print(round(3.14159, 2)) # 3.14 print(round(3.5)) # 4 print(round(2.5)) # 2 ``` ### max()和min() - 最大值和最小值 ```python print(max(1, 2, 3, 4)) # 4 print(min([1, 2, 3, 4])) # 1 # 使用key参数 numbers = [-4, -2, 1, 3] print(max(numbers, key=abs)) # -4 ``` ### sum() - 求和 ```python print(sum([1, 2, 3, 4])) # 10 print(sum([1, 2, 3], 10)) # 16 (10是初始值) ``` ## 序列操作函数 ### len() - 获取长度 ```python print(len("Hello")) # 5 print(len([1, 2, 3])) # 3 print(len({"a": 1, "b": 2})) # 2 ``` ### sorted() - 排序 ```python # 基本排序 print(sorted([3, 1, 4, 1, 5, 9, 2, 6, 5, 3])) # [1, 1, 2, 3, 3, 4, 5, 5, 6, 9] # 自定义排序 words = ['banana', 'pie', 'Washington', 'book'] print(sorted(words, key=len)) # 按长度排序 # ['pie', 'book', 'banana', 'Washington'] # 降序排序 print(sorted([1, 2, 3, 4, 5], reverse=True)) # [5, 4, 3, 2, 1] ``` ### enumerate() - 枚举 ```python fruits = ['apple', 'banana', 'cherry'] for i, fruit in enumerate(fruits): print(f"{i}: {fruit}") # 0: apple # 1: banana # 2: cherry # 指定起始索引 for i, fruit in enumerate(fruits, 1): print(f"{i}: {fruit}") # 1: apple # 2: banana # 3: cherry ``` ### zip() - 打包 ```python names = ['Alice', 'Bob', 'Charlie'] ages = [24, 50, 18] for name, age in zip(names, ages): print(f"{name} is {age} years old") # Alice is 24 years old # Bob is 50 years old # Charlie is 18 years old # 创建字典 dict(zip(names, ages)) # {'Alice': 24, 'Bob': 50, 'Charlie': 18} ``` ## 类型转换函数 ### int(), float(), str() ```python # 字符串转整数 print(int("123")) # 123 print(int("1010", 2)) # 10 (二进制转换) # 浮点数转换 print(float("3.14")) # 3.14 print(float("1e-3")) # 0.001 # 转字符串 print(str(123)) # "123" print(str([1, 2, 3])) # "[1, 2, 3]" ``` ### list(), tuple(), set(), dict() ```python # 转换为列表 print(list("Hello")) # ['H', 'e', 'l', 'l', 'o'] print(list((1, 2, 3))) # [1, 2, 3] # 转换为元组 print(tuple([1, 2, 3])) # (1, 2, 3) # 转换为集合 print(set([1, 2, 2, 3])) # {1, 2, 3} # 转换为字典 pairs = [["a", 1], ["b", 2]] print(dict(pairs)) # {"a": 1, "b": 2} ``` ## 输入输出函数 ### print() - 打印 ```python # 基本打印 print("Hello", "World") # Hello World # 指定分隔符 print("Hello", "World", sep="-") # Hello-World # 指定结束符 print("Hello", end="!\n") # Hello! # 格式化打印 name = "Alice" age = 25 print(f"{name} is {age} years old") # Alice is 25 years old ``` ### input() - 输入 ```python # 基本输入 name = input("Enter your name: ") print(f"Hello, {name}!") # 数值输入 age = int(input("Enter your age: ")) print(f"Next year you will be {age + 1}") ``` ## 其他常用函数 ### range() - 范围生成 ```python # 基本用法 for i in range(5): print(i) # 0, 1, 2, 3, 4 # 指定起始值和结束值 for i in range(2, 5): print(i) # 2, 3, 4 # 指定步长 for i in range(0, 10, 2): print(i) # 0, 2, 4, 6, 8 ``` ### isinstance() - 类型检查 ```python x = 5 print(isinstance(x, int)) # True print(isinstance(x, (int, float))) # True y = [1, 2, 3] print(isinstance(y, list)) # True ``` ### dir() - 查看属性和方法 ```python # 查看字符串的所有方法 print(dir("hello")) # 查看模块的所有属性 import math print(dir(math)) ``` ### help() - 查看帮助文档 ```python # 查看函数帮助 help(print) # 查看模块帮助 import random help(random) ``` ### map() - 映射函数 ```python # 将列表中的每个元素都平方 numbers = [1, 2, 3, 4, 5] squared = list(map(lambda x: x**2, numbers)) print(squared) # [1, 4, 9, 16, 25] # 将两个列表对应元素相加 list1 = [1, 2, 3] list2 = [10, 20, 30] sum_lists = list(map(lambda x, y: x + y, list1, list2)) print(sum_lists) # [11, 22, 33] ``` ### filter() - 过滤函数 ```python # 过滤出偶数 numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] even_numbers = list(filter(lambda x: x % 2 == 0, numbers)) print(even_numbers) # [2, 4, 6, 8, 10] # 过滤出非空字符串 strings = ['', 'hello', '', 'world', ' '] non_empty = list(filter(None, strings)) print(non_empty) # ['hello', 'world', ' '] ``` ### any()和all() - 逻辑判断 ```python # any() - 只要有一个元素为True就返回True print(any([True, False, False])) # True print(any([])) # False print(any([num > 5 for num in [1, 3, 7, 4]])) # True # all() - 所有元素为True才返回True print(all([True, True, True])) # True print(all([True, False, True])) # False print(all([num < 10 for num in [1, 3, 7, 4]])) # True ``` ### pow() - 幂运算 ```python # 基本用法 print(pow(2, 3)) # 8 (2³) print(pow(2, -3)) # 0.125 (1/2³) # 带模运算的幂 print(pow(2, 3, 5)) # 3 (2³ % 5) ``` ### divmod() - 同时获取商和余数 ```python # 返回一个包含商和余数的元组 print(divmod(7, 3)) # (2, 1) - 7除以3商2余1 print(divmod(8, 4)) # (2, 0) - 8除以4商2余0 # 在金融计算中很有用 minutes, seconds = divmod(150, 60) print(f"{minutes}分{seconds}秒") # 2分30秒 ``` ### hash() - 获取对象的哈希值 ```python # 获取不可变对象的哈希值 print(hash('hello')) # 某个整数 print(hash((1, 2, 3))) # 某个整数 # 可变对象不能哈希 # print(hash([1, 2, 3])) # TypeError: unhashable type: 'list' ``` ### chr()和ord() - 字符和ASCII码转换 ```python # 数字转字符 print(chr(65)) # 'A' print(chr(97)) # 'a' # 字符转ASCII码 print(ord('A')) # 65 print(ord('a')) # 97 ``` ### bin(), hex(), oct() - 进制转换 ```python # 转二进制 print(bin(42)) # '0b101010' # 转十六进制 print(hex(42)) # '0x2a' # 转八进制 print(oct(42)) # '0o52' # 去掉前缀 print(bin(42)[2:]) # '101010' ``` ### vars(), globals(), locals() - 命名空间 ```python # 查看对象的属性字典 class Person: def __init__(self, name, age): self.name = name self.age = age p = Person('Alice', 25) print(vars(p)) # {'name': 'Alice', 'age': 25} # 查看全局命名空间 print(globals()) # 返回全局变量字典 # 查看局部命名空间 def test_func(): x = 1 print(locals()) # 返回局部变量字典 ``` ### id() - 获取对象的唯一标识符 ```python # 不同对象的id不同 x = [1, 2, 3] y = [1, 2, 3] print(id(x)) # 某个整数 print(id(y)) # 不同的整数 # 相同对象的id相同 z = x print(id(x) == id(z)) # True ``` ### callable() - 检查对象是否可调用 ```python # 函数是可调用的 def greet(): print("Hello") print(callable(greet)) # True # 普通对象不可调用 x = 42 print(callable(x)) # False # 实现__call__方法的类实例是可调用的 class Counter: def __call__(self): return 42 c = Counter() print(callable(c)) # True ``` help(random.randint) ``` ## 实际应用示例 ### 1. 数据处理 ```python # 处理学生成绩数据 scores = [85, 92, 78, 65, 90, 88] # 计算统计信息 print(f"学生人数: {len(scores)}") print(f"最高分: {max(scores)}") print(f"最低分: {min(scores)}") print(f"平均分: {sum(scores) / len(scores):.2f}") # 成绩排序 sorted_scores = sorted(scores, reverse=True) print(f"成绩排名: {sorted_scores}") ``` ### 2. 文件处理 ```python # 读取文件并处理数据 with open('data.txt', 'r') as f: lines = f.readlines() # 处理每行数据 for i, line in enumerate(lines, 1): # 去除空白字符并转换为整数 number = int(line.strip()) print(f"Line {i}: {number}") ``` ### 3. 数据转换 ```python # CSV数据处理 csv_data = """name,age,city Alice,25,New York Bob,30,London Charlie,35,Paris""" # 将CSV转换为结构化数据 lines = csv_data.split('\n') headers = lines[0].split(',') data = [] for line in lines[1:]: values = line.split(',') data.append(dict(zip(headers, values))) print(data) ``` ### 4. 用户输入验证 ```python def get_valid_age(): while True: try: age = int(input("请输入年龄: ")) if not isinstance(age, int): raise ValueError("年龄必须是整数") if age < 0 or age > 150: raise ValueError("年龄必须在0-150之间") return age except ValueError as e: print(f"输入错误: {e}") age = get_valid_age() print(f"您的年龄是: {age}") ``` ## 最佳实践 1. **类型转换安全性** ```python # 不好的做法 user_input = input("Enter a number: ") number = int(user_input) # 可能引发异常 # 好的做法 try: number = int(user_input) except ValueError: print("请输入有效的数字") ``` 2. **使用enumerate替代手动计数** ```python # 不好的做法 index = 0 for item in items: print(f"{index}: {item}") index += 1 # 好的做法 for index, item in enumerate(items): print(f"{index}: {item}") ``` 3. **合理使用zip** ```python # 不好的做法 for i in range(len(names)): print(f"{names[i]}: {scores[i]}") # 好的做法 for name, score in zip(names, scores): print(f"{name}: {score}") ``` 4. **使用列表推导式替代map和filter** ```python # 不好的做法 numbers = list(map(int, ["1", "2", "3"])) even = list(filter(lambda x: x % 2 == 0, numbers)) # 好的做法 numbers = [int(x) for x in ["1", "2", "3"]] even = [x for x in numbers if x % 2 == 0] ``` 通过本文的学习,你应该已经掌握了Python中常用内置函数的使用方法。这些函数是Python编程中的基础工具,灵活运用它们可以让你的代码更加简洁高效。继续练习和探索这些函数,你会发现它们在实际编程中的强大作用!