yezhuxing 发表于 2024-11-16 13:11

python练习,股票数据分析

本帖最后由 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=
#选出以不同字符结尾的列
d_list=
#将数据转化成一个列表
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
      data=s
      l_index=list_name.index(name)
      #处理以相同字符结尾的情况
      if l_index in q_list:
                for l in list_data:
                  try:
                        if float(l) > float(data):
                            print(l)

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


```

popofeng 发表于 2024-11-16 13:51

请问可以提取个股筹码形态数据进行分析吗?

犯罪嫌疑人 发表于 2024-11-16 13:58

厉害,炒股赚大钱

gengkaixuan 发表于 2024-11-16 14:13

厉害啊大佬,数据是爬下来的吗?
页: [1]
查看完整版本: python练习,股票数据分析