字符串(搜查案例)

本文详细介绍了字符串的基础概念、创建语法、切片方法及多种操作技巧。通过一个寻找犯罪嫌疑人的实战案例,展示了如何利用字符串处理技术进行信息筛选与匹配。

1. 字符串

1.1 字符串的概念

字符串是一个容器,包含若干个字符并按照一定的顺序组织成一个整体。

1.2 创建字符串的基本语法

变量名 = "字符串信息"(推荐)			
变量名 = '字符串信息'			
变量名 = """字符串信息"""		
变量名 = '''字符串信息'''
复制代码

1.3 注意事项

字符串定义过程中如出现"匹配问题,使用"进行转义

2. 字符串切片

2.1 字符串切片指获取字符串中的某一部分,形成新的字符串对象。

2.2 字符串切片基本语法

字符串[开始索引:结束索引] 字符串[开始索引:结束索引:步长]

3. 字符串操作

3.1 基本操作

3.2 获取状态操作

3.3 字符串转换操作

3.4 格式转换操作

3.5 拆分操作

3.6 连接操作

3.7 查询操作

3.8 替换操作

3.9 其它操作

案例:找出真凶

"""
案例找出真凶
张某,绰号“斌哥”,男性,1975年-1978年出生,B型血,身高165-170之间,体重65公斤左右。
河北口音,请协助户籍警对周边35w流动人口进行排查。
分析:
1.姓 name                startswith
2.名 name nick_name      find
3.性别 gender            ==
4.血型 blood             ==
5.籍贯 native            find
6.出生日期 idcard        切片,比较运算
"""
db_infos = [{"name": "张三丰","gender": 1, "nick_name": "三爷", "idcard": "110101153808081017", "blood": "b", "native":"湖北省丹江口市武当山玉虚宫"},{"name": "张大彪","gender": 1, "nick_name": "斌仔", "idcard": "130323197711111011", "blood": "b", "native":"河北省秦皇岛市武山海关区鞋拔子路胶水胡同103"}]
# 1. 循环列表,取出个人信息
for person in db_infos:
# 2. 取出个人信息
    name = person["name"]
    nick_name = person["nick_name"]
    gender = person["gender"]
    blood = person["blood"]
    native = person["native"]
    idcard = person["idcard"]
# 3.判断是否满足条件
# 3.1 所有条件都满足,打印个人信息
# 3.2 只要有一个条件不满足,检查下一个人
    if not name.startswith("张"):
        continue   # 如果不姓张,跳出循环
    if name.find("斌") == -1 and nick_name.find("斌") == -1:
        continue   # 如果名字和小名中都没找到斌,跳出
    if gender != 1:
        continue   # 如果不是男性,跳出
    if blood != "b":
        continue   # 如果不是b型血,跳出
    if native.find("河北") == -1:
        continue   # 如果籍贯中没有找到河北,跳出
# 身份证号: XXXXXX XXXX XX XX XXX X  取6-9位包括9,注意字典取出的值不一定是数字,用int包裹保证同类中进行对比
    if int(idcard[6:10]) < 1975 or int(idcard[6:10]) > 1978:
        continue  # 如果出生日期小于1975,并且大于1978,跳出
    # 设计字典,做对应关系(映射)
    genders = {1:"男",0:"女",-1:"不详"}
    # 到达此处说明所有条件都已经通过,打印个人信息
    print("姓名:"+name+"小名:"+nick_name+"性别:"+genders[gender]+"血型:"+blood+"籍贯:"+native+"身份证号:"+idcard)
复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值