• 简单的股票信息查询系统 1 程序启动后,给用户提供查询接口,允许用户重复查股票行情信息(用到循环) 2 允许用户通过模糊查询股票名,比如输入“啤酒”, 就把所有股票名称中包含“啤酒”的信息打印出来 3 允许按股票价格、涨跌幅、换手率这几列来筛选信息, 比如输入“价格>50”则把价格大于50的股票都打印,输入“市盈率<50“,则把市盈率小于50的股票都打印,不用判断等于。


    '''需求:
    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)
  • 相关阅读:
    关于 转换图片url为base64格式以及base64格式图片地址转为图片文件
    rem布局在Androidwebview中页面错乱
    vue中 $event 的用法--获取当前父元素,子元素,兄弟元素
    vue实现动态改变title
    vue页面跳转-携带参数
    vue项目打包部署生产环境
    Mark区
    kma 2019CSP前刷题记录
    机房的沙茶日常
    2019NOIP算法复健+学习
  • 原文地址:https://www.cnblogs.com/huahuawang/p/13539501.html
Copyright © 2020-2023  润新知