股票查询 作业记录

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