• 老男孩python学习阶段性作业- 股票信息查询程序


    程序实现功能

    功能一:程序启动后,给用户提供查询接口,允许用户重复查股票行情信息;
    功能二:允许用户通过模糊查询股票名,比如输入“啤酒”, 就把所有股票名称中包含“啤酒”的信息打印出来;
    功能三:允许按股票价格、涨跌幅、换手率这几列来筛选信息,
    比如输入“价格>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('不在可查询范围内!')
    
  • 相关阅读:
    微信小程序Rx 引入 调用合并的方法
    小程序 引入 es-canvas wx:for 单页面渲染多个for不同数据
    jquery操作数组对象
    Docker MySQL 8 主从配置
    CentOS 7 安装 LNMP
    lnmp1.6 配置负载均衡
    Nginx + PHP-FPM 参数优化、性能监视和问题排查
    「查缺补漏」巩固你的Nginx知识体系
    Android生成SHA1(证书指纹)
    android studio 如何把依赖导出成 jar
  • 原文地址:https://www.cnblogs.com/zhanglongfei/p/11714901.html
Copyright © 2020-2023  润新知