股票查询程序开发
把以下股票数据存入stock_data.txt
数据来源:东方财富网
开发程序对stock_data.txt进行以下操作:
程序启动后,给用户提供查询接口,允许用户重复查股票行情信息(用到循环)
允许用户通过模糊查询股票名,比如输入“啤酒”, 就把所有股票名称中包含“啤酒”的信息打印出来
允许按股票价格、涨跌幅、换手率这几列来筛选信息,比如输入“价格>50”则把价格大于50的股票都打印,输入“市盈率<50“,则把市盈率小于50的股票都打印,不用判断等于。
思路提示:加载文件内容到内存,转成dict or list结构,然后对dict or list 进行查询等操作。 这样以后就不用每查一次就要打开一次文件了,效率会高。
f = open ("stock_data_new.txt", "r",encoding="utf-8")
query_columns = ["最新价", "涨跌幅", "换手率"]
columns = f.readline().strip().split(',')
stock_data = {
}
for line in f:
line = line.strip().split(',')
name = line[2]
stock_data[name] = line # 创建股票数据dict{name:data...}
while True:
count = 0
cmd = input("输入查询指令>>:").strip()
if len(cmd) == 0:
continue
print(columns)
for s_name in stock_data:
if cmd in s_name:
print(stock_data[s_name])
count += 1
if ">" in cmd:
q_name,q_val = cmd.split('>')
q_name = q_name.strip()
q_val = float(q_val)
if q_name in query_columns:
q_name_index = columns.index(q_name)
for s_name,s_vals in stock_data.items():
if float(s_vals[q_name_index].strip('%')) > q_val:
print(s_vals)
count += 1
elif "<" in cmd:
pass
if count > 0:
print("匹配到%s条" % count)
# else: # 当输入不为空时
# query_name_list = query_name.strip().split(">"or'<')
# if len(query_name_list) == 1: # 当输入只为name时
# print(first_cross)
# for k in stock_data:
# if query_name in k:
# count += 1
# print(k,stock_data[k])
#
# print("相似信息共找到%d条" % count)
# break
# else:
# print("未找到相关信息,请重新输入")
# break