股票查询小程序_以龙虎榜数据为例

功能需求

1.程序启动后,给用户提供查询接口,允许用户重复查股票行情信息(用到循环)

2.允许用户通过模糊查询股票名,比如输入“生物”,就把所有股票名称中包含“生物”的所有股票的信息打印出来

3.允许按'收盘价','涨跌幅','龙虎榜净买额','龙虎榜买入额','龙虎榜卖出额','龙虎榜成交额','市场总成交额','净买额占总成交比','成交额占总成交比','换手率','流通市值'等条件来筛选信息,比如输入“收盘价>20”,则把收盘价大于50的所有股票的信息都打印出来。

目录

功能需求

1.获取股票数据集

2.构建查询小程序

2.1 根据股票名称进行精确或模糊查询

2.2 根据变量数值进行简单条件查询

2.2.1 代码步骤分解

2.2.2 条件查询的代码整合

2.2.3 代码试错演示


1.获取股票数据集

通过akshare数据库搜集龙虎榜详情数据并将结果另存为csv文件保存

import akshare as akstock_lhb_detail_em_df=ak.stock_lhb_detail_em()# 东方财富网-数据中心-龙虎榜单-龙虎榜详情stock_lhb_detail_em_df.head()stock_lhb_detail_em_df.to_csv('Statistics/stock_lhb_detail_em_df.csv')

构建查询数据集

import pandas as pd
lhb_df=pd.read_csv('Statistics/stock_lhb_detail_em_df.csv',encoding="utf-8")
lhb_df.head()

 将数据转换为字典,定义索引并转置

stock_dict=stock_lhb_detail_em_df.set_index("名称").T.to_dict("list")

2.构建查询小程序

2.1 根据股票名称进行精确或模糊查询

while True:cmd=input("请输入要查询的股票名称,输入“退出”结束")for stock_name,stock_data in stock_dict.items():if cmd in stock_name:print(stock_name,stock_data)if cmd=="退出":break

2.2 根据变量数值进行简单条件查询

2.2.1 代码步骤分解

查看所有变量列名

headers=list(stock_lhb_detail_em_df.columns)
headers

输入查询条件

cmd=input("请输入要查询的股票列名及条件") 

第1步,检查格式是否合法

import re
if '>' not in cmd and '<' not in cmd:print("您的输入中未包含<或>,请重新输入!")
else:cmd_parser=re.split("[<>]",cmd)#re.split()以列表形式返回分割的字符串。分割符是<或>,获得分隔后的listcmd_parserif len(cmd_parser) !=2:print("格式不合法,请检查后重新输入!")else:print("格式合法,可继续")filter_column,filter_val=cmd_parser

第2步,格式合法后检查列名是否合法

if filter_column in ['收盘价','涨跌幅','龙虎榜净买额','龙虎榜买入额','龙虎榜卖出额','龙虎榜成交额','市场总成交额','净买额占总成交比','成交额占总成交比','换手率','流通市值']:print("列名合法,可继续")
else:print('------------------------')print("出错了!!!\n您输入的列名不合法,请核对后重新输入!")print('------------------------')

第3步,格式、列名都合法后再检查数值是否合法
 

try:filter_val=float(filter_val)print('数值合法,可继续')#打印顺利运行提示信息print('索引名为:%s'%(filter_column))print('条件为:%s'%(cmd[len(cmd_parser[0])]))print('条件数值为:%s'%(filter_val))
except:print('数值不合法,请重新输入')  # 处理异常方式:打印错误提示信息    

第4步,格式、列名、数值都合法后再进行股票数据查找

column_index=headers.index(filter_column)
print(column_index)#打印索引的数字,输出结果应为4,因为“收盘价”是所有索引中的第5个for s_id,s_data in stock_dict.items():#返回之前定义的字典,分别定义索引和数值if str(cmd[len(cmd_parser[0])])=='>':if float(s_data[column_index])>float(filter_val):print(s_id,s_data)else:if float(s_data[column_index])<float(filter_val):print(s_id,s_data)

2.2.2 条件查询的代码整合

import rewhile True:cmd=input("请输入要查询的股票列名及条件,输入“退出”结束查询")#定义退出查询条件if cmd=="退出":print("已退出查询!")break #第1步,检查格式是否合法if '>' not in cmd and '<' not in cmd:print('------------------------')print('出错了!!!\n您的输入中未包含<或>,请重新输入!')print('------------------------')else:if len(cmd_parser) !=2:print('------------------------')print("出错了!!!\n格式不合法,请检查后重新输入!")print('------------------------')else:cmd_parser=re.split("[<>]",cmd)#re.split()以列表形式返回分割的字符串。分割符是<或>,获得分隔后的listfilter_column,filter_val=cmd_parser#第2步,格式合法后再检查列名是否合法if filter_column in ['收盘价','涨跌幅','龙虎榜净买额','龙虎榜买入额','龙虎榜卖出额','龙虎榜成交额','市场总成交额','净买额占总成交比','成交额占总成交比','换手率','流通市值']:#第3步,格式、列名都合法后再检查数值是否合法try:filter_val=float(filter_val)print('索引名为:%s'%(filter_column))print('索引条件为:%s'%(cmd[len(cmd_parser[0])]))print('条件数值为:%s'%(filter_val))print('------------------------')print('检索结果如下:')print('------------------------')#第4步,格式、列名、数值都合法后再进行股票数据查找column_index=headers.index(filter_column)for s_id,s_data in stock_dict.items():#返回之前定义的字典,分别定义索引和数值if str(cmd[len(cmd_parser[0])])=='>':if float(s_data[column_index])>float(filter_val):print(s_id,s_data)else:if float(s_data[column_index])<float(filter_val):print(s_id,s_data)except:print('------------------------')print('出错了!!!\n数值不合法,请重新输入')#处理异常方式:打印错误提示信息print('------------------------')else:print('------------------------')print("出错了!!!\n您输入的列名不合法,请核对后重新输入!")print('------------------------')  

2.2.3 代码试错演示:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1619307.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【龙虎榜小红牛分析系统G6.2】发布时间2021年03月14日

----更新功能如下 龙虎榜小红牛分析系统G6.20 #龙虎榜小红牛系统 #官方微信公众号&#xff1a;gxzfp888A.优化了数据库写入前先判断是否存在当天数据&#xff0c;避免因多次点入&#xff0c;重复写入数据问题&#xff0c;即一键下载龙虎和涨停数据。 B. 优化了再做&#xff0c…

上海亚商投顾:沪指窄幅震荡 ChatGPT概念股全线下挫

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪 三大指数早盘小幅冲高&#xff0c;随后又震荡走低&#xff0c;午后一度集体翻绿&#xff0c;临近尾盘有所回升。Ch…

python 通达信板块_[python]沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上...

将沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上 原理:python读取前一次处理完的计算5日后涨跌幅输出的csv文件 文件名前加"[paint]" 安照通达信的画图文件和板块文件格式,输出文件 用通达信的导入功能,导入画图文件和板块文件即可 事前数据截图: 处理后…

[python]数据整理,将取得的众多的沪深龙虎榜数据整一整

将昨日取得的众多的沪深龙虎榜数据整一整 提取文件夹内所有抓取下来的沪深龙虎榜数据&#xff0c;整理出沪深两市&#xff08;含中小创&#xff09;涨幅榜股票及前5大买入卖出资金净值&#xff0c;保存到csv文件 再手动使用数据透视表进行统计 原始数据&#xff1a; 整理后数据…

攻防演练期间一次对某企业的渗透测试

免责声明 由于传播、利用本文章说黑客所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;文章作者说黑客不为此承担任何责任&#xff0c;一旦造成后果请自行承担&#xff01; 前言 某次攻防演练中&#xff0c;主办方只提供了目标…

应用TortoiseSVN的SubWCRev管理VisualStudio C#项目编译版本号

1、拷贝Porperties目录下的文件AssemblyInfo.cs生成副本AssemblyInfo.template.cs, 作为版本管理的模板文件。 2、修改模板文件中的想要管理的版本号信息 // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.5.0.$WCREV$")]//0.9.5…

c#之反射详解

总目录 文章目录 总目录一、反射是什么&#xff1f;1、C#编译运行过程2、反射与元数据3、反射的优缺点 二、反射的使用1、反射相关的类和命名空间1、System.Type类的应用2、System.Activator类的应用3、System.Reflection.Assembly类的应用4、System.Reflection.Module类的应用…

9. 解谜游戏

目录 题目 Description Input Notes 思路 暴力方法 递归法 注意事项 C代码&#xff08;递归法&#xff09; 关于DFS 题目 Description 小张是一个密室逃脱爱好者&#xff0c;在密室逃脱的游戏中&#xff0c;你需要解开一系列谜题最终拿到出门的密码。现在小张需要打…

【Windows10】利用分区助手扩展C盘分区

文章目的&#xff1a;   在开始对C盘进行空间分配时&#xff0c;配额空间过小&#xff0c;后续使用希望扩展C盘的空间大小 分区助手百度网盘下载链接&#xff1a;link   提取码&#xff1a;go16 1、下载安装好分区助手后打开&#xff0c;点击右上角Tools&#xff0c;再点击…

将C盘分区部分容量分配给其他分区

最近在学习OpenStack相关的实验&#xff0c;硬盘容量需要分配一百多两百个G。电脑用久了&#xff0c;不知不觉磁盘也将要挤满的感觉&#xff0c;除C盘外。就想着把C盘的一些容量转到E盘里。 以下为具体步骤&#xff1a; 下载分区工具 选择合适的分区工具下载。我使用的是 win1…

Windows: 如何调整C盘分区大小

最开始安装系统&#xff0c;做分区时给C分区的大小一般都太小&#xff0c;后面发现不够时却无从下手。 Windows磁盘管理做不了这个事。因为它只能扩展后面为空白的。但D分区已有数据&#xff0c;无法扩展。 所以&#xff0c;我们得借助另一个工具&#xff1a;DiskGenius. 操…

【八股】2023秋招八股复习笔记5(计算机网络-CN)

文章目录 八股目录目录1、应用层 & HTTP一些http题HTTPS 加密原理&#xff08;问过&#xff09;HTTP/1.1 新特性HTTP/2.0 与 RPC&#xff08;问过&#xff09;GET 和 POST 比较 2、传输层 & TCPTCP三次握手 & 四次挥手&#xff08;问过&#xff09;为什么每次TCP 连…

基于vue和element的脚手架【vue-element-admin 和vue-element-plus-admin 】

vue-element-admin vue-element-admin 是一个后台前端解决方案&#xff0c;它基于 vue 和 element-ui实现 介绍 | vue-element-adminA magical vue adminhttps://panjiachen.github.io/vue-element-admin-site/zh/guide/ vue-element-plus-admin vue-element-plus-admin 是一…

keras深度学习框架通过简单神经网络实现手写数字识别

背景 keras深度学习框架&#xff0c;并不是一个独立的深度学习框架&#xff0c;它后台依赖tensorflow或者theano。大部分开发者应该使用的是tensorflow。keras可以很方便的像搭积木一样根据模型搭出我们需要的神经网络&#xff0c;然后进行编译&#xff0c;训练&#xff0c;测试…

脑优化全集

1电脑优化全集 一、系统优化设置 1、删除Windows强加的附件&#xff1a; a.用记事本NOTEPAD修改sysoc.inf&#xff08;在windiws/inf文件夹&#xff09;&#xff0c;用查找/替换功能&#xff0c;在查找框中输入,hide,7&#xff08;一个英文逗号紧跟hide&#xff0c;一个英文逗…

个人永久性免费-Excel催化剂功能第49波-标准数据结构表转报表样式结果

中国的企业信息化&#xff0c;已经过去了20年&#xff0c;企业里也产生了大量的数据&#xff0c;IT技术的信息化管理辅助企业经营管理也已经得到广泛地认同&#xff0c;现在就连一个小卖部都可以有收银系统这样的信息化管理介入。但同时也有一个很现实的问题&#xff0c;不是所…

个人永久性免费-Excel催化剂功能第37波-把Sqlserver的强大分析函数拿到Excel中用...

本人一直钟情于使用Sqlserver数据库的一大原因是其提供了非常好用、高效的数据分析函数&#xff08;窗口函数&#xff09;&#xff0c;可以在做数据清洗和数据分析场合等多个场景使用。只需简单的一个函数即可做出常规SQL语句很难以实现的效果。这么好用的函数&#xff0c;如今…

个人永久性免费-Excel催化剂功能第43波-文本处理类函数增强

Excel的函数有400多个&#xff0c;真正常用的50多个&#xff0c;而常有的文本处理类函数也不多&#xff0c;不是因为文本类处理简单&#xff0c;而是Excel真的有点挤牙膏式的每个版本更新那么几个小函数&#xff0c;普通用户等得急切&#xff0c;但实际上这些小函数&#xff0c…

个人永久性免费-Excel催化剂功能第30波-工作表快捷操作(批量创建、命名、排序、工作表目录)...

日常使用Excel过程中&#xff0c;最多的操作无外乎单元格和工作表的操作&#xff0c;单元格的操作在前面已经有详细的辅助功能提供&#xff0c;此篇提供工作表相关的操作。这两项的操作若能有提速&#xff0c;日常大量的工作叠加起来真是省下不少时间。 文章出处说明 原文在简书…

自定义镜像上传阿里云

目录 一、Docker制作jdk镜像 jdkv1.0版本 ① 编写Dockerfile文件 ② 执行Dockerfile文件&#xff0c;初次依赖镜像的时候会下载相应的镜像 ③ 查看镜像 ④ 创建并启动容器 二、alpine 制作jdk镜像 jdkv2.0的版本 1.alpine Linux 简介 2.基于 alpine 制作 j…