day17笔记

作业讲解

"""
2.读取 youbian.txt 文件中的数据, 完成邮编查询的操作

		输入邮编号,如果有此邮编,输出对应的城市

		否则提示 无此邮编
	注意:如果读到的文件中有特殊符号的话 可以把文件内容拷贝到一个新建的文件中
"""

path = r"src/youbian.txt"

#方式一
"""
#打开
file  = open(path,"r",encoding="utf-8")

#读取
info_list = file.readlines()
print(info_list)

code = input("请输入需要查询的邮编:")

#处理数据,for-else的使用:
# 如果for循环中的出现了break,同时break如果不执行,则else在最后会执行,如果break执行了,则else不会执行
for info in info_list:
 if code == info[1:7]:
     print("%s对应的城市为:%s" % (code,info[9:-4]))
     break
else:
 print("无此邮编")

#关闭文件
file.close()
"""

#方式二
#打开
file  = open(path,"r",encoding="utf-8")

#读取
info_list = file.readlines()
print(info_list)

code = input("请输入需要查询的邮编:")

for info in info_list:
 if code in info:
     #获取code对应的城市
     data = info.rstrip(",\n")
     datalist = eval(data)  #[110105, '北京市朝阳区'] <class 'list'>
     print("%s对应的城市为:%s" % (code,datalist[1]))
     break
else:
 print("无此邮编")

#关闭文件
file.close()
"""
开房查询
	输入名字,查询其kaifanglist.txt文件中的开房记录,
	如果没有,是一个单纯哥们,
	如果有的话,将其所有开房信息写入到以这哥们命名的文件中
"""
"""
思路:
 a.读取文件内容
 b.输入名字,查询过程
 c.将查询的结构写入到一个新的文件中去
"""
import  os

#a.读取文件内容
def readfile(path):
 if not os.path.exists(path):
     print("路径不存在")
     return

 f = open(path,"r",encoding="utf-8")
 lt = f.readlines()
 f.close()
 #获取所有的信息
 return lt

#b.输入名字,查询过程
#思路:不管是否查找到数据,最后返回一个列表,根据列表是否为空就可以判断被查询人是否有开房记录
def searchbyname(name,path):
 sublt = []

 #获取所有人的信息
 alllt = readfile(path)

 for line in alllt:
     if name == line.split(",")[0]:
         sublt.append(line)

 return sublt

#c.将查询的结构写入到一个新的文件中去
def writeresult(name,singlelt):
 if singlelt:
     print(name + "果然去开房了~~~~")

     #写入
     #路径表示一
     # f = open(name + ".txt","a",encoding="utf-8")

     #路径表示二
     #拆分路径,结果是元组 (父路径,子路径)
     subpath = os.path.split("src/kaifanglist.txt")
     f = open(os.path.join(subpath[0],name + ".txt"), "a", encoding="utf-8")
     for line in singlelt:
         f.write(line)
         f.flush()
     f.close()

     print("数据提取成功")
 else:
     print(name + "是个好兄弟,好好珍惜~")

#调用
if __name__ == "__main__":
 while True:
     name = input("请输入需要查找的人的名字【输入q退出】:")
     if name == "q":
         break
     else:
         result = searchbyname(name,r"src/kaifanglist.txt")
         writeresult(name,result)

一、面向对象综合案例-购物车管理系统

"""
属性: 商品名称name	  商品价格price	  商品剩余量balance
"""
class Goods(object):
 __slots__ = ("gname","price","balance")

 def __init__(self,gname,price,balance):
     self.gname = gname
     self.price = price
     self.balance = balance

 def __str__(self):
     return "【Goods】商品名称:%s,商品价格:%s,商品剩余量:%s" % (self.gname,self.price,self.balance)

 __repr__ = __str__
"""
商品仓库类Storage

属性: 商品列表goods_list ,默认存放四个商品, 商品信息如下

         商品名称 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值