Python利用wxPython制作股票價格查詢工具
效果如下所示
簡介
在當(dāng)今信息時代,金融市場是一個引人注目的話題。作為普通人,我們也可以通過使用 Python 和 wxPython 庫編寫一個簡單的股票價格查詢工具來了解股市的情況。本文將介紹如何使用 Yahoo Finance API、yfinance 模塊和 wxPython 庫來創(chuàng)建一個簡單的 GUI,可以查詢?nèi)蚬墒袑崟r價格。我們將會一步步地講解代碼的實現(xiàn)過程,使讀者在了解人工智能技術(shù)的同時,也能體驗到實用工具的編寫過程。
源代碼
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 工具,用于查詢納斯達克股票代碼對應(yīng)的股價。
首先,程序創(chuàng)建了一個名為 NASDAQStockPrice 的類,繼承自 wxPython 的 Frame 類,用于創(chuàng)建 GUI 窗口。在 init 方法中,程序創(chuàng)建了一個 Panel,然后使用 wxPython 的 BoxSizer 將窗口分為三個部分。第一部分是用于輸入股票代碼的輸入框,第二部分是用于顯示查詢結(jié)果的標(biāo)簽,第三部分是用于執(zhí)行查詢和重置輸入框的按鈕。
接著,程序定義了兩個方法,用于響應(yīng)查詢和重置按鈕的點擊事件。on_search 方法中,程序從輸入框中獲取股票代碼,然后使用 yfinance 模塊獲取對應(yīng)的股票信息,包括當(dāng)前股價。最后,程序?qū)⒉樵兘Y(jié)果顯示在標(biāo)簽中。如果用戶輸入的股票代碼不合法,程序?qū)棾鲆粋€錯誤對話框。on_reset 方法則用于清空輸入框和標(biāo)簽內(nèi)容,并將光標(biāo)置于輸入框中。
最后,程序使用 if name == 'main' 判斷當(dāng)前腳本是否作為主程序運行。如果是,則創(chuàng)建一個 wxPython 應(yīng)用程序?qū)嵗瑒?chuàng)建一個 NASDAQStockPrice 對象,并顯示出來。最后,啟動應(yīng)用程序的主循環(huán)。
這個工具雖然簡單,但可以幫助人們了解納斯達克股票代碼對應(yīng)的股價,尤其是對于經(jīng)常進行股票交易的人群來說,非常實用。同時,這個工具還展示了 Python 和 wxPython 的 GUI 編程能力,以及 Yahoo Finance API 的數(shù)據(jù)獲取能力。
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
到此這篇關(guān)于Python利用wxPython制作股票價格查詢工具的文章就介紹到這了,更多相關(guān)Python wxPython股票價格查詢工具內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python+selenium?實現(xiàn)掃碼免密登錄示例代碼
這篇文章主要介紹了python+selenium?實現(xiàn)掃碼免密登錄,首先掃碼登錄獲取cookies保存到本地未后面免密登錄做準(zhǔn)備,本文通過示例代碼給大家介紹的非常詳細,需要的朋友可以參考下2022-07-07python向已存在的excel中新增表,不覆蓋原數(shù)據(jù)的實例
下面小編就為大家分享一篇python向已存在的excel中新增表,不覆蓋原數(shù)據(jù)的實例,具有很好超參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05jupyter notebook參數(shù)化運行python方式
這篇文章主要介紹了jupyter notebook參數(shù)化運行python方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04Python3變量與基本數(shù)據(jù)類型用法實例分析
這篇文章主要介紹了Python3變量與基本數(shù)據(jù)類型用法,結(jié)合實例形式分析了Python3保留字、標(biāo)識符、變量、基本數(shù)據(jù)類型及相關(guān)操作技巧,需要的朋友可以參考下2020-02-02windows安裝TensorFlow和Keras遇到的問題及其解決方法
這篇文章主要介紹了windows安裝TensorFlow和Keras遇到的問題及其解決方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-07-07