Python | 简介
26 5 月, 2025Python基础 | 编辑器
26 5 月, 2025
想象你是奶茶店老板:
- 手动数库存:
珍珠剩15杯,椰果剩20杯(重复写len(珍珠))
- 计算利润:
18-6.5=11.5(重复写减法)
- 给订单编号:
第1单、第2单...(重复写i+1)
内置函数的本质:Python 官方预制的「万能工具」,无需定义直接用,解决 80% 的重复需求。就像奶茶店的「果糖定量机」,按一下就出标准量,比手动加糖快 10 倍。
# 原料库存(单位:杯)
小料库存 = ["珍珠", "椰果", "青稞", "脆啵啵"]
珍珠剩余 = [15, 22, 18, 20] # 4天的珍珠剩余量
# 用内置函数一键统计
print(f"小料种类:{len(小料库存)}种(len()数数量)")
print(f"本周珍珠总消耗:{sum(珍珠剩余)}杯(sum()求和)")
print(f"珍珠最大日消耗:{max(珍珠剩余)}杯(max()找最大值)")
小料种类:4种
本周珍珠总消耗:75杯
珍珠最大日消耗:22杯
(老板:比手动加计算器快10倍!)
新手必知:
len() 适用所有可迭代对象(列表、字符串、字典)
sum() 只能用于数字,sum(["珍珠", "椰果"]) 会报错
# 从Excel复制的订单(文字格式)
杯数 = "12" # 字符串
单价 = "18.5" # 字符串
# 转换后计算
总销售额 = int(杯数) * float(单价) # int()转整数,float()转浮点数
print(f"订单总额:{总销售额}元(原价12×18.5=222元)")
# 反向操作:数字转文字(打印标签)
标签 = str(杯数) + "杯" + str(单价) + "元奶茶"
print(f"标签内容:{标签}")
避坑现场:
int("18.5") 会报错(无法转整数),需先float()再int()
str(123) 转文字,repr(123) 保留类型(调试更友好)
# 普通循环(易出错)
for i in range(100): # range(100)=0-99
print(f"标签{i+1}:芋泥波波") # 手动+1,易错
# 用enumerate()自动编号(推荐)
for 序号, 奶茶名 in enumerate(["芋泥波波"]*100, start=1):
print(f"标签{序号}:{奶茶名}") # 自动从1开始,无需+1
奶茶店实战:
enumerate(库存列表, start=1) 给原料标序号(盘点更清晰)
range(3, 10, 2) 生成 3,5,7,9(每隔 2 个取一次,用于跳号盘点)
# 从POS机导出的原始数据(带空格和逗号)
原始订单 = " 珍珠奶茶, 热, 七分糖 "
# 清洗步骤
订单 = 原始订单.strip() # 去掉首尾空格 → "珍珠奶茶, 热, 七分糖"
详情 = 订单.split(", ") # 按逗号拆分 → ["珍珠奶茶", "热", "七分糖"]
奶茶名, 温度, 甜度 = 详情 # 拆包赋值
print(f"处理后:{奶茶名}({温度},{甜度})")
新手必学:
strip() 去空格,lstrip() 去左,rstrip() 去右
",".join(["珍珠", "椰果"]) 合并列表为字符串 → “珍珠,椰果”
珍珠数量 = "15" # 从Excel复制的字符串
单价 = 18.5 # 正确的浮点数
if isinstance(珍珠数量, str): # 检查是否是字符串
珍珠数量 = int(珍珠数量) # 转整数后计算
总价格 = 珍珠数量 * 单价
print(f"类型检查通过,总价格:{总价格}元")
避坑指南:
type(珍珠数量) is str 也可判断类型,但isinstance() 支持继承(更推荐)
- 搭配
try-except 处理无法转换的情况(如 “十五杯” 转 int 会报错)
# 原始数据(杯数,成本,售价)
订单 = [
(12, 6.5, 18),
(8, 5.2, 16),
(20, 7.8, 22)
]
# 用内置函数一键分析
总杯数 = sum(杯数 for 杯数, _, _ in 订单)
总成本 = sum(成本 * 杯数 for 杯数, 成本, _ in 订单)
总利润 = sum((售价 - 成本) * 杯数 for _, 成本, 售价 in 订单)
print(f"今日战绩:")
print(f"总销量:{总杯数}杯(sum()聚合)")
print(f"每杯最高利润:{max(售价 - 成本 for _, 成本, 售价 in 订单):.1f}元(max()找峰值)")
总销量:40杯
每杯最高利润:14.2元(来自第三单)
(老板:比雇会计便宜!)
len(123) # ❌ 报错!len()只能用于容器(列表、字符串)
str(123).__len__() # ✅ 正确,但直接用len(str(123))更简单
for i in range(5): # 0-4,共5次
for i in range(1, 6): # 1-5,共5次(适合编号从1开始)
"a,b,c".split(",") # 拆分 → ['a', 'b', 'c']
",".join(['a', 'b', 'c']) # 合并 → "a,b,c"
避坑口诀:类型转换先检查,range 编号看 start,split 拆分 join 合
- 优先用内置:遇到需求先想「Python 有没有自带函数?」(如
sum()比手动循环快 20 倍)
- 少写重复代码:
len(列表) 代替for i in 列表: count+=1
- 文档是朋友:忘记参数时,
help(len) 查看官方说明(终端直接敲)

统计:
len()(数量)、
sum()(求和)、
max()(最大值)

转换:
int()/
float()/
str()(类型转换)

流程:
range()(生成数列)、
enumerate()(带编号循环)

字符串:
strip()(去空格)、
split()/
join()(拆分合并)

检查:
type()/
isinstance()(类型判断)
挑战:用内置函数优化你的「外卖订单分析」!
任务:统计订单中「销量最高的菜品」和「总消费金额」,用max()+sum()实现
熟练使用内置函数的代码,就像本地人说方言一样自然:
- 新手写法:
count = 0; for x in list: count +=1
- 高手写法:
count = len(list)
报错急救箱:
遇到TypeError: object of type 'int' has no len() → 检查是否对数字用了len()
遇到ValueError: invalid literal for int() → 检查int(文字)是否包含非数字字符
26 5 月, 2025
Published by cofo on 26 5 月, 2025 26 5 月, 2025
Published by cofo on 26 5 月, 2025 26 5 月, 2025
Published by cofo on 26 5 月, 2025