'''需求:
1 程序启动后,给用户提供查询接口,允许用户重复查股票行情信息(用到循环)
2 允许用户通过模糊查询股票名,比如输入“啤酒”, 就把所有股票名称中包含“啤酒”的信息打印出来
3 允许按股票价格、涨跌幅、换手率这几列来筛选信息,
比如输入“价格>50”则把价格大于50的股票都打印,输入“市盈率<50“,则把市盈率小于50的股票都打印,不用判断等于。
''' # 1.加载文件到内存,以字典储存
stock_datas = {} # 保存所有股票信息 with open('stock_data.txt', mode='rt', encoding='utf=8') as f:
menu = f.readline().strip()
menu = menu.split(',') # 以列表存储股票相关信息目录(序号...换手率,市盈率,市净率) for str_stock in f:
stock = str_stock.strip().split(',') # 将单个股票信息的字符串形式转化为列表形式储存
stock_name = stock[2]
stock_datas[stock_name] = stock # 以字典形式保存股票信息,通过名字可以访问相关信息
# print(stock_datas) # 2 开始查询
while True:
count = 0 # 计数条数
query = input('请输入你想查询的关键词>>:').strip()
if not query: continue
if query == 'q':
break
print(menu)
# 2.1模糊查询
for key in stock_datas:
if query in key:
count += 1
print(stock_datas[key]) # 2.2筛选查询
# 1)当有'<'在查询的关键词中
flag = '' if '<' in query:
flag = '<'
elif '>' in query:
flag = '>'
else:
continue
query_list = query.split(flag) # 将输入的字符以’<‘or’>‘分隔点形成列表 例如换手率>50 -->[换手率,50]
q_name = query_list[0]
q_val = query_list[1]
index = menu.index(q_name) # 找到所需查询元素(例如‘换手率’的索引)
for k, v in stock_datas.items():
if flag == '<':
if float(v[index].strip("%")) < float(q_val):
count += 1
print(v)
if flag == '>':
if float(v[index].strip("%")) > float(q_val):
count += 1
print(v) print('找到%s条' % count)

最新文章

  1. Android 两个activity生命周期的关系
  2. HTML的ul和li标签的使用
  3. json转化为java实体
  4. goldengate 12c对teradata的支持
  5. PubSub的一种实现
  6. Java面试题-线程安全
  7. Linq 关键字
  8. 手机三种SIM卡 你所不知道的剪卡“秘密”
  9. 快速排序的时间复杂度nlogn是如何推导的??
  10. 转:apache 的mod-status
  11. remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
  12. python multiprocessing深度解析
  13. phprpc的使用示例以及报错Fatal error: Cannot redeclare gzdecode() in D:\wamp\www\immoc\phprpc\compat.php 处理
  14. Redis为什么可以支持那么大的并发访问量?为什么redis没有单点并发瓶颈?
  15. svg标签
  16. 转--利用hexo搭建个人静态博客
  17. DNA计算机及DNA存储
  18. Jenkins部署在Tomcat容器提示:反向代理设置有误
  19. code.google.com/p/log4go 下载失败
  20. 去掉WIN7 桌面图标的小箭头

热门文章

  1. Java瞬态变量transient
  2. Python 图像处理 OpenCV (15):图像轮廓
  3. myBatis源码解析-缓存篇(2)
  4. PHP array_udiff_uassoc() 函数
  5. 转载——完整的ASCII码表
  6. ABC 158 F - Removing Robots dp 单调栈
  7. sql_to_csv
  8. Docker学习日记-安装Docker
  9. python数据处理PDF高清电子书
  10. SpringBoot 发送邮件和附件