Python利用wxPython制作股票价格查询工具

作者:winfredzhang 时间:2021-11-25 19:09:52 

效果如下所示

Python利用wxPython制作股票价格查询工具

简介

在当今信息时代,金融市场是一个引人注目的话题。作为普通人,我们也可以通过使用 Python 和 wxPython 库编写一个简单的股票价格查询工具来了解股市的情况。本文将介绍如何使用 Yahoo Finance API、yfinance 模块和 wxPython 库来创建一个简单的 GUI,可以查询全球股市实时价格。我们将会一步步地讲解代码的实现过程,使读者在了解人工智能技术的同时,也能体验到实用工具的编写过程。

源代码

import wx
import yfinance as yf

class NASDAQStockPrice(wx.Frame):
   def __init__(self, parent, title):
       super(NASDAQStockPrice, self).__init__(parent, title=title, size=(400, 200))
       panel = wx.Panel(self)

vbox = wx.BoxSizer(wx.VERTICAL)

hbox1 = wx.BoxSizer(wx.HORIZONTAL)
       self.input_label = wx.StaticText(panel, label="Enter stock symbol (e.g., AAPL):")
       hbox1.Add(self.input_label, flag=wx.RIGHT, border=8)
       self.input_box = wx.TextCtrl(panel)
       hbox1.Add(self.input_box, proportion=1)
       vbox.Add(hbox1, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=10)

vbox.Add((-1, 10))

hbox2 = wx.BoxSizer(wx.HORIZONTAL)
       self.output_label = wx.StaticText(panel, label="")
       hbox2.Add(self.output_label, flag=wx.RIGHT, border=8)
       vbox.Add(hbox2, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=10)

vbox.Add((-1, 10))

hbox3 = wx.BoxSizer(wx.HORIZONTAL)
       self.search_button = wx.Button(panel, label="Search")
       hbox3.Add(self.search_button)
       self.reset_button = wx.Button(panel, label="Reset")
       hbox3.Add(self.reset_button, flag=wx.LEFT, border=5)
       vbox.Add(hbox3, flag=wx.ALIGN_RIGHT|wx.RIGHT|wx.BOTTOM, border=10)

self.Bind(wx.EVT_BUTTON, self.on_search, self.search_button)
       self.Bind(wx.EVT_BUTTON, self.on_reset, self.reset_button)

panel.SetSizer(vbox)

def on_search(self, event):
       try:
           stock_symbol = self.input_box.GetValue()
           stock = yf.Ticker(stock_symbol)
           current_price = stock.info['regularMarketPrice']
           self.output_label.SetLabel("{} is currently trading at ${:.2f}".format(stock_symbol.upper(), current_price))
       except ValueError:
           wx.MessageBox("Please enter a valid stock symbol!", "Error", wx.OK|wx.ICON_ERROR)

def on_reset(self, event):
       self.input_box.SetValue("")
       self.output_label.SetLabel("")
       self.input_box.SetFocus()

if __name__ == '__main__':
   app = wx.App()
   stock_price = NASDAQStockPrice(None, title="NASDAQ Stock Price Checker")
   stock_price.Show()
   app.MainLoop()

源代码说明

这段代码使用了 Python 的 wxPython 模块和 Yahoo Finance API 的 yfinance 模块编写了一个简单的 GUI 工具,用于查询纳斯达克股票代码对应的股价。

首先,程序创建了一个名为 NASDAQStockPrice 的类,继承自 wxPython 的 Frame 类,用于创建 GUI 窗口。在 init 方法中,程序创建了一个 Panel,然后使用 wxPython 的 BoxSizer 将窗口分为三个部分。第一部分是用于输入股票代码的输入框,第二部分是用于显示查询结果的标签,第三部分是用于执行查询和重置输入框的按钮。

接着,程序定义了两个方法,用于响应查询和重置按钮的点击事件。on_search 方法中,程序从输入框中获取股票代码,然后使用 yfinance 模块获取对应的股票信息,包括当前股价。最后,程序将查询结果显示在标签中。如果用户输入的股票代码不合法,程序将弹出一个错误对话框。on_reset 方法则用于清空输入框和标签内容,并将光标置于输入框中。

最后,程序使用 if name == 'main' 判断当前脚本是否作为主程序运行。如果是,则创建一个 wxPython 应用程序实例,创建一个 NASDAQStockPrice 对象,并显示出来。最后,启动应用程序的主循环。

这个工具虽然简单,但可以帮助人们了解纳斯达克股票代码对应的股价,尤其是对于经常进行股票交易的人群来说,非常实用。同时,这个工具还展示了 Python 和 wxPython 的 GUI 编程能力,以及 Yahoo Finance API 的数据获取能力。

url: https://query1.finance.yahoo.com/v7/finance/quote?formatted=true&lang=en-US&symbols=GOOG

问题:

Traceback (most recent call last):
File "d:\spiderdocs\stock.py", line 2, in <module>
import yfinance as yf
ModuleNotFoundError: No module named 'yfinance'

解决:

pip install yfinance

来源:https://blog.csdn.net/winniezhang/article/details/129870926

标签:Python,wxPython,股票,查询
0
投稿

猜你喜欢

  • 利用Python pandas对Excel进行合并的方法示例

    2022-07-31 13:39:41
  • 全新极速CSS选择器引擎whiz

    2009-08-30 15:48:00
  • python的mysql数据库建立表与插入数据操作示例

    2024-01-22 22:27:32
  • Python格式化字符串f-string的使用教程

    2023-10-07 22:33:29
  • 解决keras backend 越跑越慢问题

    2022-05-27 17:36:58
  • Python实现的数据结构与算法之队列详解

    2021-06-06 09:58:05
  • python判断设备是否联网的方法

    2022-05-03 12:34:55
  • Python执行Linux系统命令的4种方法

    2023-08-10 19:04:50
  • Python依赖包整体迁移方法详解

    2022-11-03 05:32:55
  • Python中Selenium模块的使用详解

    2022-03-31 05:53:47
  • Django实战之用户认证(初始配置)

    2022-08-17 22:15:02
  • python 如何将带小数的浮点型字符串转换为整数

    2021-04-24 01:35:51
  • 深入了解python列表(LIST)

    2022-09-04 18:25:55
  • js实现倒计时时钟的示例代码

    2024-04-22 22:30:13
  • Python开发时报TypeError: ‘int‘ object is not iterable错误的解决方式

    2023-08-23 20:30:05
  • 完美解决SQL server2005中插入汉字变成问号的问题

    2024-01-24 20:59:59
  • Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法

    2024-01-21 05:57:53
  • Python实战小项目之Mnist手写数字识别

    2023-01-20 23:24:56
  • Python异常信息的不同展现方法总结

    2021-02-20 10:14:26
  • Python OpenCV基于HSV的颜色分割实现示例

    2021-11-04 19:24:26
  • asp之家 网络编程 m.aspxhome.com