程序實現功能
功能一:程序啟動后,給用戶提供查詢接口,允許用戶重復查股票行情信息;
功能二:允許用戶通過模糊查詢股票名,比如輸入“啤酒”, 就把所有股票名稱中包含“啤酒”的信息打印出來;
功能三:允許按股票價格、漲跌幅、換手率這幾列來篩選信息,
比如輸入“價格>50”則把價格大於50的股票都打印,輸入“市盈率<50“,則把市盈率小於50的股票都打印,不用判斷等於。
#!/user/bin/env python
# -*- coding:utf-8 -*-
data_list = {} # 定義一個空字典存文件中的內容
f = open(file='stock_data.txt', encoding='UTF-8', mode='r')
data_title = f.readline().strip().split(',') # 將第一行設置為每次打印的標題行
for item in f:
item = item.strip().split(',') # 將每行數據處理成一個列表,以逗號分割
data_list[item[2]] = item # 將名稱列作為字典的鍵,將每行數據作為值
f.close()
select_list = ['最新價', '漲跌幅', '換手率'] # 定義可查詢范圍
while True:
match_count = 0 # 定義一個計數字段記錄匹配數
flag = True # 定義一個標識字段,控制匹配數的輸出
input_content = input('股票查詢接口:').strip()
if len(input_content) == 0: # 判斷用戶輸入內容,若為空,跳出該次循環(解決空字符永遠在任一字符串中的問題)
continue
print(data_title)
for i in data_list: # 進行模糊匹配查詢
if input_content in i:
print(data_list[i])
match_count += 1
if '>' in input_content and '=' not in input_content: # 進行大於查詢
input_name, input_value = input_content.strip().split('>')
input_name = input_name.strip()
input_value = float(input_value.strip())
if input_name in select_list:
input_index = data_title.index(input_name)
for v in data_list.values():
if float(v[input_index].strip('%')) > input_value:
print(v)
match_count += 1
else:
flag = False
elif '<' in input_content and '=' not in input_content: # 進行小於查詢
input_name, input_value = input_content.strip().split('<')
input_name = input_name.strip()
input_value = float(input_value.strip())
if input_name in select_list:
input_index = data_title.index(input_name)
for v in data_list.values():
if float(v[input_index].strip('%')) < input_value:
print(v)
match_count += 1
else:
flag = False
elif '=' in input_content:
flag = False
if flag:
if match_count > 0:
print('找到%s條' % (match_count,))
else:
print('未找到符合查詢條件的結果!')
else:
print('不在可查詢范圍內!')
