Appearance
Python 第一课:把客户名单变成可检查的数据
示例文件:
customer_list_check.py
最后核验:2026-08-02
本文从一份客户名单开始,说明变量、字符串、列表和字典怎样共同表达真实业务数据,并把数据质量规则落成可运行的代码。
这篇解决什么问题
一张客户名单里常见字段包括姓名、手机号、城市、来源、最近联系时间。手工检查时,最容易漏掉三类问题:
- 关键字段为空,例如手机号为空。
- 同一个字段写法不统一,例如“官网”“网站”“Web”混在一起。
- 统计依赖人工筛选,例如想知道每个来源有多少客户。
Python 的第一步不是学习所有语法,而是把这张表变成程序可以处理的数据。
核心判断
这一集的核心判断是:
text
变量:给一个值起名字
字符串:先把姓名、手机号、城市当文本处理
字典:保存一位客户的多个字段
列表:保存一批客户
规则:把“缺手机号”变成自动检查这几个概念放在一起,才构成一个真实动作:检查客户名单。
一个最小客户名单
先看三位客户:
python
customers = [
{"name": "李雷", "phone": "13800000001", "city": "上海", "source": "官网"},
{"name": "韩梅梅", "phone": "", "city": "杭州", "source": "展会"},
{"name": "王芳", "phone": "13900000003", "city": "", "source": "官网"},
]这里每一行都是一个字典。name、phone、city、source 是字段名;右边的内容是字段值。
多位客户放进 customers 列表后,程序就可以逐个检查。
检查缺手机号
python
missing_phone = []
for customer in customers:
if not customer["phone"]:
missing_phone.append(customer)
print("需要补手机号的客户:")
for customer in missing_phone:
print("-", customer["name"], customer["city"])这段代码只做一件事:如果客户的手机号为空,就加入 missing_phone。
它背后的业务含义是:手机号是后续回访链路的关键字段,不能为空。
顺手统计来源
python
source_count = {}
for customer in customers:
source = customer["source"]
source_count[source] = source_count.get(source, 0) + 1
print("客户来源统计:")
for source, count in source_count.items():
print("-", source, count)source_count 也是一个字典,但它保存的不是一位客户,而是“来源 -> 数量”的统计结果。
当程序读到一位官网客户,就把官网数量加一;读到一位展会客户,就把展会数量加一。
完整示例
把完整代码保存为 customer_list_check.py 后,可直接运行:
bash
python3 customer_list_check.py预期会输出两类结果:
- 需要补手机号或城市的客户。
- 按来源汇总的客户数量。
迁移到自己的表格
把这段逻辑换成自己的业务时,按四步改:
- 确认字段名:例如姓名、手机号、城市、来源是否和表头一致。
- 确认关键字段:哪些字段为空会影响后续业务。
- 确认统计口径:按来源、城市、等级还是销售人员统计。
- 确认输出方式:打印到屏幕、写入 CSV,还是交给下一步脚本。
常见误区
| 误区 | 后果 | 修正 |
|---|---|---|
| 把手机号当数字 | 前导零、区号和格式信息可能丢失 | 手机号先按字符串处理 |
| 字段名随手写 | 后续规则读不懂,也容易拼错 | 使用清楚稳定的英文 key |
| 规则写在脑子里 | 每次人工判断都可能不一致 | 把规则写成 if |
| 只看总人数 | 看不到数据质量问题 | 同时输出异常名单和统计 |
读完之后能完成什么
你应该能做到:
- 读懂一位客户为什么可以用字典表示。
- 读懂一批客户为什么可以放进列表。
- 修改“缺手机号”规则,改成检查缺城市或来源为空。
- 运行示例脚本,看到待处理客户和来源统计。
