吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 311|回复: 3
收起左侧

[学习记录] python练习,股票数据分析

  [复制链接]
yezhuxing 发表于 2024-11-16 13:11
本帖最后由 yezhuxing 于 2024-11-16 13:14 编辑

开发程序对stock_data.txt进⾏行行以下操作:

程序启动后,给⽤用户提供查询接⼝口,允许⽤用户重复查股票⾏行行情信息(⽤用到循环)
允许⽤用户通过模糊查询股票名,⽐比如输⼊入“啤酒”, 就把所有股票名称中包含“啤酒”的信息打印出来
允许按股票价格、涨跌幅、换⼿手率这⼏几列列来筛选信息,⽐比如输⼊入“价格>50”则把价格⼤大于50的股票
都打印,输⼊入“市盈率<50“,则把市盈率⼩小于50的股票都打印,不不⽤用判断等于。
思路路提示:加载⽂文件内容到内存,转成dict or list结构,然后对dict or list 进⾏行行查询等操作。 这样以后
就不不⽤用每查⼀一次就要打开⼀一次⽂文件了了,效率会⾼

分为三个部分:
第一个部分是数据转化部分,首先要把数据转化为好处理得列表
这里要用到strip()和split(),去掉换行符并且以逗号分割列表里每个元素

第二个部分是最复杂的数据筛选部分,观察需要筛选的数据的特点:
比如4,5,6,8,10,元素末尾都有符号,比较数字时得去掉;
比如7,11元素末尾是单位不一样,为方便比较,在比较时约定单位为亿,故遇到"万"时,限定值应*10000
比如2,3,没啥特殊的,可以直接比较

第三部分是模糊查询部分
对于每一行数据,如果该行第二列含有这个词,则输出该行




数据集在附件中,修改文件名以及文件类型即可运行

************************************************************


#装转化后的数据
list_data=[]
#选出是以相同字符结尾的列。
q_list=[4,5,6,8,10]
#选出以不同字符结尾的列
d_list=[7,11]
#将数据转化成一个列表
f=open('stock_data.csv','r',encoding='utf-8')
#股票参数名列表
list_name=f.readline().strip('\n').split(',')
for line in f:
    line = line.strip('\n')
    list_data.append(line.split(','))
"""
print(list_name)
print(list_data)
"""

while True:
    s= input("股票查询接口>>").strip()
    print(list_name)
    if '>' in s:
        #分割命令
        index= s.index('>')
        name=s[0:index]
        data=s[index+1:]
        l_index=list_name.index(name)
        #处理以相同字符结尾的情况
        if l_index in q_list:
                for l in list_data:
                    try:
                        if float(l[l_index][0:-1]) > float(data):
                            print(l)

                    except ValueError as e:
                        continue
            #处理以不同字符结尾的情况
        elif l_index in d_list:
            for l in list_data:
                if '亿' in l[l_index]:
                    if float(l[l_index][0:-1])  > float(data):
                        print(l)
                if '万' in l[l_index]:
                    if float(l[l_index][0:-1]) > float(data)*10000:
                        print(l)
        else:
            for l in list_data:
                try:
                    if float(l[l_index]) > float(data):
                        print(l)
                except ValueError as e:
                    continue
    #处理小于情况
    elif '<' in s:
        index = s.index('<')
        name = s[0:index]
        data = s[index + 1:]
        # 获取所查的列数
        l_index = list_name.index(name)
        # 处理以相同字符结尾的情况
        if l_index in q_list:
            for l in list_data:
                try:
                    if float(l[l_index][0:-1]) < float(data):
                        print(l)
                except ValueError as e:
                    continue
        # 处理以不同字符结尾的情况
        elif l_index in d_list:
            for l in list_data:
                if '亿' in l[l_index]:
                    if float(l[l_index][0:-1])  < float(data):
                        print(l)
                if '万' in l[l_index]:
                    if float(l[l_index][0:-1]) < float(data)*10000:
                        print(l)
        else:
            for l in list_data:
                try:
                    if float(l[l_index]) < float(data):
                        print(l)
                except ValueError as e:
                    print(l)
    # 模糊查询
    else:
        for l in list_data:
            if s in l[1]:
                print(l)

数据集.txt

3.51 KB, 下载次数: 13, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 3吾爱币 +2 热心值 +2 收起 理由
breathtaker + 1 热心回复!
gengkaixuan + 1 + 1 谢谢@Thanks!
matatron + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

popofeng 发表于 2024-11-16 13:51
请问可以提取个股筹码形态数据进行分析吗?
犯罪嫌疑人 发表于 2024-11-16 13:58
gengkaixuan 发表于 2024-11-16 14:13
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 13:40

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表