Python 内置函数(len/str 等)使用:分清用法 + 速查对照表

举报
Jack20 发表于 2025/12/24 19:29:46 2025/12/24
【摘要】 刚学 Python 时,特别容易搞混 “直接引用的属性” 和 “要加 () 调用的函数”—— 比如想知道列表长度得写len(list),而转字符串要写str(123),不是直接写len或str就行。其实这些都是 Python 给我们准备好的 “内置工具”,不用额外装包就能用。一、先搞懂:len/str 到底是什么?为什么有的要加 ()?这么说吧,len()、str()、int()这些带括号的...
刚学 Python 时,特别容易搞混 “直接引用的属性” 和 “要加 () 调用的函数”—— 比如想知道列表长度得写len(list),而转字符串要写str(123),不是直接写lenstr就行。其实这些都是 Python 给我们准备好的 “内置工具”,不用额外装包就能用。

一、先搞懂:len/str 到底是什么?为什么有的要加 ()?

这么说吧,len()str()int()这些带括号的,都是 Python 的内置函数—— 相当于 Python 提前给你准备好的 “现成工具”,需要你 “主动调用”(加括号、传参数)才能干活;而你说的 “直接引用” 的,大概率是对象的属性 / 方法(比如list.append是方法,math.pi是属性),要么是不用传参的属性,要么是需要加括号调用的方法(比如s.lower())。
举个直观例子:
  • 想知道['a','b','c']的长度:得调用len(['a','b','c'])(把列表传给 len 工具,它返回 3);
  • 想把数字 123 转成字符串:得调用str(123)(把数字传给 str 工具,它返回 '123');
  • 而列表的append是 “方法”(属于列表自己的工具),得先有列表,再调用:lst = [1,2]; lst.append(3)(不能直接写append(3))。
至于 “能不能替换”:
  • 比如len(lst)本质上是调用了列表自己的lst.__len__()方法,你写成lst.__len__()也能得到长度,但绝对不推荐—— 内置函数len()是 Python 官方规范的写法,兼容所有可计算长度的对象(字符串、字典、元组等),而__len__()是对象的底层方法,不同类型的写法可能不一致,还容易出错;
  • 同理,str(123)等价于123.__str__(),但优先用str(),通用性更强。
简单说:内置函数是 “通用接口”,不用替换,直接用就是最优解。

二、常用内置函数速查对照表(按场景分类,好记好用)

我把日常用得最多的内置函数按 “用途” 分类,你不用记全,遇到对应场景翻这个表就行:

1. 序列 / 容器操作(最常用,比如 len)

函数 作用 示例 返回结果 能不能替换(不推荐)
len(obj) 计算可迭代对象的长度(字符串 / 列表 / 字典等) len('abc') / len([1,2,3]) 3 / 3 obj.len()
max(iter) 找可迭代对象的最大值 max([1,5,3]) 5 无通用替换,手动遍历更麻烦
min(iter) 找可迭代对象的最小值 min((2,0,4)) 0 无通用替换
sum(iter) 计算数值型可迭代对象的和 sum([1,2,3]) 6 手动循环累加(低效)
sorted(iter) 排序可迭代对象(返回新列表) sorted([3,1,2]) [1,2,3] list.sort ()(改原列表)
reversed(iter) 反转可迭代对象(返回迭代器) list(reversed([1,2])) [2,1] obj [::-1](切片,仅序列可用)

2. 类型转换(比如 str/int)

函数 作用 示例 返回结果 能不能替换
str(obj) 转成字符串类型 str(123) / str(True) '123' / 'True' obj.str()
int(obj) 转成整数(需可转换,比如数字字符串) int('123') / int(3.9) 123 / 3 无通用替换
float(obj) 转成浮点数 float('3.14') / float(5) 3.14 / 5.0 无通用替换
list(iter) 转成列表 list('abc') / list((1,2)) ['a','b','c'] / [1,2] 无通用替换
tuple(iter) 转成元组 tuple([1,2]) (1,2) 无通用替换
dict(iter) 转成字典(需键值对格式) dict([('a',1),('b',2)]) {'a':1,'b':2} 无通用替换

3. 判断 / 检查(辅助逻辑判断)

函数 作用 示例 返回结果
type(obj) 查看对象类型 type(123) / type('abc') int / str
isinstance(obj, cls) 判断对象是否是指定类型 isinstance(123, int) / isinstance('a', str) True / True
bool(obj) 转成布尔值(空 / 0 为 False,其余 True) bool(0) / bool([1]) False / True

4. 输入输出(基础交互)

函数 作用 示例 说明
print(obj) 打印内容到控制台 print('hello') 直接用,无替换
input(msg) 接收用户输入(返回字符串) name = input (' 请输入姓名:') 直接用

三、避坑小技巧:什么时候用内置函数?什么时候用对象方法?

咱们不妨看看实际场景,避免搞混 “内置函数” 和 “对象方法”:
  1. 内置函数是 “全局工具”:比如len()能算字符串、列表、字典的长度,不管是什么类型,只要能算长度,传进去就行;而对象方法是 “专属工具”—— 比如字符串的'abc'.upper(),只有字符串能用,列表就没有upper()方法。
  2. 优先用内置函数:比如排序时,sorted(lst)返回新列表,不修改原列表;而lst.sort()是列表的方法,会改原列表,根据需求选,但len()str()这类内置函数,直接用就对了。
  3. 不用纠结 “替换”:除非是面试考底层原理,否则日常开发中,len(obj)就是最优写法,不用换成obj.__len__()—— 既不规范,也容易在不同对象上出问题(比如字典的__len__()和列表的写法虽然一样,但自定义对象可能没实现)。

四、总结一下下干货

  1. len()str()等是 Python内置函数,需要加括号传参数调用,是官方推荐的通用写法;
  2. “直接引用” 的通常是对象的属性 / 方法(比如lst.append),和内置函数是不同类型的 “工具”;
  3. 内置函数不用替换,对照上面的分类表,按场景选就行;
  4. 核心原则:优先用内置函数(通用、规范),对象方法按需求用(专属、灵活)。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。