2021-01-30

该内容涉及快递分拣模拟,通过遍历收件人地址信息,按省份进行分类整理,便于快递物流管理。同时,展示了文本处理操作,如用户登录验证,全局文本替换脚本以及账号锁定机制。此外,还包含了文件读写和信息检索的实例。
摘要由CSDN通过智能技术生成

模拟快递分拣

infos = [
    ['王*名','北京市海淀街重阳路大厦4层'],
    ['孙*化','北京市昌平区哈哈哈哈路大厦3层'],
    ['李*以','浙江省杭州市海淀街重阳路大厦4层'],
    ['赵*哈','上海市海淀街重阳路大厦3层'],
    ['钱*的','上海市海淀街重阳路大厦4层'],
    ['吴*看','湖北省武汉市海淀街重阳路大厦4层'],
    ['代*睿','湖北省武汉市海淀街重阳路大厦4层'],
    ['李*名','河北省石家庄市海淀街重阳路大厦4层'],
    ['贺*佳','河北省石家庄海淀街重阳路大厦4层'],
    ['何*名','四川省重庆市海淀街重阳路大厦4层'],
    ['倪*昵','四川省重庆市海淀街重阳路大厦4层'],
    ['张*名','北京市海淀街重阳路大厦4层'],
    ['甲*名','北京市海淀街重阳路大厦4层'],
    ['乙*8','北京市海淀街重阳路大厦4层'],
    ['丙*名','北京市海淀街重阳路大厦4层'],
    ['高*', '新疆乌鲁木齐市哈哈哈哈路99号建行大厦100楼'],
    ['张*', '陕西省咸阳市哈哈哈路20号'],
    ['司*鹏', '河南省鹤壁市嘻嘻嘻路3130号'],
    ['王*', '天津市河北区埃德加地铁站旁体育中心'],
    ['王*都', '宁夏银川市海淀街重阳路大厦4层'],
    ['阿夫*亚','内蒙古呼和浩特市海街重阳路大厦4层'],
    ['张*俊', '新疆巴音郭楞州石化大道塔指1区25栋403']
]
address = {}
province = []
for info in infos:
    if "省" in info[1][:3]:
        province.append(info[1][:3])
    if "市" in info[1][:3]:
        province.append(info[1][:3])
    if "新疆" in info[1][:2]:
        province.append(info[1][:2])
    if "内蒙古" in info[1][:3]:
        province.append(info[1][:3])
    if "宁夏" in info[1][:2]:
        province.append(info[1][:2])
    if "黑龙江省" == info[1][:4]:
        province.append(info[1][:4])
    province = list(set(province))
for i in province:
    address[i] = []
for info in infos:
    for i in province:
        if i in info[1]:
            address[i].append(info)
print("{")
for k,v in address.items():
    print(k,":[")
    for j in v:
        print("  ",j)
    print("]")
print("}")

name文件

字母哥  ge  男  36
字母爹  die  男  34
字母姐  jie  女  37
字母妹  mei  女  33
字母妈  ma   女  56

文件提取

f = open("name")
#print(f.readlines())
for line in f:
    line = line.split()
    sex = line[2]
    if sex == "男":
        print(line)

文件修改

f = open("name","r+")  # r+为可读可写模式
# 1.加载到内存
data = f.read()
data = data.replace("字母弟","字母爹")
print(data)
# 2.清空文件
f.seek(0)   # 把光标移到最前面
f.truncate()  # 截断文件
# 3.把内容写回硬盘
f.write(data)
f.close()

全局文本检索替换小脚本

import sys
print(sys.argv)
old = sys.argv[1]
new = sys.argv[2]
file = sys.argv[3]
# 1.加载到内存
f = open(file,"r+")
data = f.read()
# 2. 检索替换
old_count = data.count(old)
data = data.replace(old,new)
# 3.清空文件
f.seek(0)
f.truncate()
# 4.把内容写回硬盘
f.write(data)
f.close()
print(f"成功替换字符:{old}为{new},一共{old_count}处...")

用户登录小程序

database:

wwf a1234 1
wave b1234 0
1914080903126 c1234 0
# 1.建立账号信息database
# 2.把账号信息读取到内存,方便调用
accounts = {}
f = open("database","r")
for line in f:
    line = line.strip().split(" ")
    accounts[line[0]] = line
# 3.输入用户信息,循环判断能否登入
while 1:
    username = input("账号:").strip()
    if username not in accounts:
        print("此账号不存在...")
        continue    #无法输入密码
    elif accounts[username][2] == "1":
        print("此用户已被锁定,请联系管理员")
        continue    #无法输入密码
    count = 0
    while count < 3:
        password = input("密码:").strip()
        if password == accounts[username][1]:
            exit(f"成功登入...欢迎亲爱的{username}...")  #登入后就跳出登录程序
            #break
        else:
            print("密码错误...")
        count += 1
    if count == 3:    #将用户进行锁定
        print(f"连续输入{count}次密码错误,用户{username}已被锁定")
        accounts[username][2] = "1"  #改变accounts字典中此用户的状态
        ff = open("database","w")  #将更改后的信息重写入database
        for k,v in accounts.items():
            line = " ".join(v) + "\n"
            ff.write(line)
        ff.close()
        print("......")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值