f = open('stock_data.txt', encoding='utf-8') # 打开文件 d = {} # 空字典方便把文件信息录入 ss = "" # 空字符串来装信息防止用户输入错误 need_data = ['最新价', '换手率', '涨跌幅'] # 用到的3个筛选信息,方便后续对应 first_line_data = f.readline().strip().split(',') # 文件第一行去空格存列表方便后续查找对应 for line in f: a = line.strip().split(',') d[f'{a[2]}'] = a # 把文件转成字典 while True: count = 0 # 方便后面计数,告诉用户有多少匹配的股票 answer = input('股票查询接口>>:') if len(answer.strip()) == 0: # 防止用户输入空格 continue # print(first_line_data) for k, v in d.items(): # D字典就是文件转换来的,遍历字典来找到用户需要的股票 ss = ss + k # 对应43行代码 来确认用户是否输入错误 if answer.strip() in k: print(first_line_data) # 答应第一行 方便客人查看对应的信息 print(v) count += 1 if '>' in answer: a_data, a_num = answer.split('>') # 分开用户的输入(最新价>XX)来计算 符合用户的股票 a_data = a_data.strip() a_num = float(a_num) if a_data in need_data: a_data_index = first_line_data.index(a_data) # 通过用户输入的信息来查找 文件第一行对应的下标 已经在第五行split成列表 for k, v in d.items(): if float(v[a_data_index].strip('%')) > a_num: # 通过下标来查找字典中value(是一个列表)对应的值 来判断大小 print(first_line_data) print(v) count += 1 elif '<' in answer: # 与上面大于号效果相同. a_data, a_num = answer.split('<') a_data = a_data.strip() a_num = float(a_num) if a_data in need_data: a_data_index = first_line_data.index(a_data) for k, v in d.items(): if float(v[a_data_index].strip('%')) < a_num: print(first_line_data) print(v) count += 1 elif answer.strip() not in ss: # 在遍历字典是 加了key值到 SS字符串 来判断是否符合要求 print('您的输入有误,请输入股票名或通过股票价格,涨跌幅,换手率的大小来查询.') if count > 0: print(f'匹配到{count}条')
股票查询 作业记录
猜你喜欢
转载自www.cnblogs.com/benzhangwen/p/11601254.html
今日推荐
周排行