Python小知识

一、技巧

1.1 镜像元安装指令:

pip install -i https://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com xxxx

1.2 唤醒虚拟环境

.\venv\Scripts\activate

1.3 解决包不兼容问题

pip install --use-deprecated=legacy-resolver somepackage

1.4 镜像源批量安装库

pip install -i https://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com -r requirements.txt


文件里内容写法举例(名称 == 版本号)
	accelerate==0.16.0
	aiohttp==3.8.4
	aiosignal==1.3.1
	async-timeout==4.0.2
	attrs==22.2.0
	bitsandbytes==0.37.0
	cchardet==2.1.7
	chardet==5.1.0
	contourpy==1.0.7

常见包

setuptools
pip
packaging
Pillow
fonttools
matplotlib
networkx
pyparsing
python-dateutil
numpy
six
scipy
kiwisolver
contourpy
numpy-financial
cycler
scikit-fuzzy
openpyxl
xlrd
statistics
statsmodels
pandas
pmdarima

1.5 更新pip

 python.exe -m pip install --upgrade pip

二、错误解决办法

警告:
	W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'cudart64_110.dll'; dlerror: cudart64_110.dll not found
解决:
	开头加:
	import os
	os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

三、Pycharm

3.1 添加安装包

在这里插入图片描述

python知识点梳理

图形用户界面

	Kivy:一个开源的 Python 库,用于开发多点触控应用程序。它支持多种输入设备,适合创建现代的、交互式的用户界面。
	
	PyGTK:这是 GTK+ (GIMP Toolkit) 的 Python 绑定,用于创建符合 GNOME 标准的图形用户界面。
	
	Flexx:使用 Web 技术的 Python GUI 工具包,可以用来创建跨平台的桌面和 Web 应用程序。
	
	Dear PyGui:一个简单易用但功能强大的 Python GUI 框架,它使用即时模式范例和 GPU 来促进极其动态的接口。
	
	PyOpenGL:这是 OpenGL 的 Python 绑定,可以用来创建 3D 图形和游戏。
	
	libavg:一个高级的 UI 框架,用于开发现代的触摸界面,它使用硬件加速来提高性能。

	Tkinter:Python 的标准 GUI 库,适合入门级用户。
	
	PyQt 或 PySide:基于 Qt 框架,功能强大,适合复杂的应用程序开发。
	
	wxPython:另一个强大的跨平台 GUI 库,提供本地应用程序的外观和感觉。
	
	PySimpleGUI:简化了 GUI 的创建过程,适合初学者快速上手。

AI

股票

可以读取指数

import requests
import random
import time
import tkinter as tk
from datetime import datetime
from tkinter import ttk, messagebox
import threading

# 视觉配置
COLOR_BG = "#0a0a1f"        # 深空背景
COLOR_TEXT = "#00ff9d"      # 荧光数据色
COLOR_CARD = "#1a1a3f"      # 信息面板
FONT_STYLE = "Consolas"
USER_AGENTS = [
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...",
]

class QuantumFinanceTerminal:
    def __init__(self, root):
        self.root = root
        self.setup_ui()
        self.running = True
        threading.Thread(target=self.data_loop, daemon=True).start()

    def setup_ui(self):
        """构建界面"""
        self.root.title("量子金融终端")
        self.root.geometry("800x600")
        self.root.configure(bg=COLOR_BG)

        # 标题栏
        title_frame = ttk.Frame(self.root, style="Title.TFrame")
        title_frame.pack(fill="x", pady=5)
        ttk.Label(title_frame, text="量子金融终端", font=("Microsoft YaHei", 14),
                  foreground="white", background="black").pack(pady=5)

        # 核心数据面板
        self.main_frame = ttk.Frame(self.root, style="Main.TFrame")
        self.main_frame.pack(pady=20, padx=30, fill="both", expand=True)

        # 数据展示组件
        self.setup_data_display()

        # 底部状态条
        self.setup_status_bars()

    def setup_data_display(self):
        """核心数据展示区"""
        # 最新价
        self.lbl_price = ttk.Label(self.main_frame, text="--",
                                   font=(FONT_STYLE, 48), foreground=COLOR_TEXT,
                                   background=COLOR_CARD)
        self.lbl_price.pack(pady=15)

        # 涨跌幅
        self.lbl_change = ttk.Label(self.main_frame, text="--%",
                                    font=(FONT_STYLE, 24), foreground=COLOR_TEXT,
                                    background=COLOR_CARD)
        self.lbl_change.pack()

    def setup_status_bars(self):
        """底部状态指示条"""
        status_frame = ttk.Frame(self.root)
        status_frame.pack(side="bottom", fill="x", pady=10)

        # 上涨条
        self.up_bar = self.create_status_item(status_frame, "上涨", 0, "#45ff6b")
        # 下跌条
        self.down_bar = self.create_status_item(status_frame, "下跌", 1, "#ff5050")
        # 成交量条
        self.vol_bar = self.create_status_item(status_frame, "成交量", 2, "#808080")

    def create_status_item(self, parent, title, column, color):
        """创建单个状态组件"""
        frame = ttk.Frame(parent)
        frame.grid(row=0, column=column, padx=15)

        ttk.Label(frame, text=title, foreground="white",
                  background=COLOR_BG).pack()
        return ttk.Label(frame, text="▮", font=("Consolas", 18),
                         foreground=color, background=COLOR_BG)

    def data_loop(self):
        """数据更新线程"""
        while self.running:
            try:
                data = self.get_market_data()
                if data:
                    self.root.after(0, self.update_display, data)
                time.sleep(30)
            except Exception as e:
                messagebox.showerror("系统错误", f"数据异常: {str(e)}")

    def get_market_data(self):
        """获取上证指数数据(腾讯接口)"""
        try:
            headers = {'User-Agent': random.choice(USER_AGENTS)}
            response = requests.get(
                "http://qt.gtimg.cn/q=sh000001",
                headers=headers,
                timeout=8
            )
            response.encoding = 'GBK'  # 关键编码处理
            return self.parse_data(response.text.split('~'))
        except Exception as e:
            print(f"[System] 数据获取失败: {str(e)}")
            return None

    def parse_data(self, raw):
        """精准数据解析[[1][8]]"""
        try:
            # 数据样例:v_sh000001="1~上证指数~3278.52~-12.75~-0.39~108925612~16895234567..."
            if len(raw) < 40:
                raise ValueError("数据字段缺失")

            return {
                "price": float(raw[3]),          # 当前指数
                "change": float(raw[4]),         # 涨跌额
                "change_pct": float(raw[5].strip('%')),  # 去除%转换
                "volume": int(raw[6] )//10000     # 成交量(万手)
            }
        except (IndexError, ValueError) as e:
            print(f"[System] 解析错误: {str(e)}")
            return None

    def update_display(self, data):
        """界面更新"""
        # 核心指标
        self.lbl_price.config(text=f"{data['price']:.2f}")

        # 涨跌指示
        change_color = "#45ff6b" if data['change_pct'] >=0 else "#ff5050"
        symbol = "↑" if data['change_pct'] >=0 else "↓"
        self.lbl_change.config(
            text=f"{symbol} {abs(data['change_pct']):.2f}%",
            foreground=change_color
        )

        # 状态条更新(比例缩放)
        self.up_bar.config(text="▮" * int(data['change_pct' ] *2))
        self.down_bar.config(text="▮" * int(abs(data['change_pct'] ) *2))
        self.vol_bar.config(text="▮" * int(data['volume' ] /5000))

    def on_close(self):
        """安全关闭"""
        self.running = False
        self.root.destroy()

if __name__ == "__main__":
    root = tk.Tk()
    style = ttk.Style()
    style.configure("Main.TFrame", background=COLOR_CARD,
                    borderwidth=3, relief="ridge")
    style.configure("Title.TFrame", background="black")
    app = QuantumFinanceTerminal(root)
    root.protocol("WM_DELETE_WINDOW", app.on_close)
    root.mainloop()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

感情谁不曾无奈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值