首页 > 数据库 >#Python 用Sqlite3做模拟银行系统

#Python 用Sqlite3做模拟银行系统

时间:2025-01-20 19:58:39浏览次数:3  
标签:note account name Python cursor amount conn Sqlite3 模拟

直接上干货:

#引用各大库以及模块:

from sre_constants import _NamedIntConstant
import tkinter as tk
from tkinter import messagebox, Toplevel
import sqlite3
import datetime

#系统基本操作1-创建记忆储存:

def create_account():
    conn = sqlite3.connect('bank_system.db')
    cursor = conn.cursor()
    cursor.execute('''
    CREATE TABLE IF NOT EXISTS accounts (
        id INTEGER PRIMARY KEY,
        account_name TEXT NOT NULL UNIQUE,
        balance REAL NOT NULL
    )
    ''')
    cursor.execute('''
    CREATE TABLE IF NOT EXISTS transactions (
        id INTEGER PRIMARY KEY,
        account_name TEXT NOT NULL,
        type TEXT NOT NULL,
        amount REAL NOT NULL,
        note TEXT,
        timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
    )
    ''')
    conn.commit()
    conn.close()

#系统基本操作2-创建存钱功能:

def deposit(account_name, amount, note=None):
    conn = sqlite3.connect('bank_system.db')
    cursor = conn.cursor()
    cursor.execute('''
    INSERT OR REPLACE INTO accounts (account_name, balance) VALUES (?, COALESCE((SELECT balance FROM accounts WHERE account_name = ?), 0) + ?)
    ''', (account_name, account_name, amount))
    cursor.execute('''
    INSERT INTO transactions (account_name, type, amount, note) VALUES (?, 'deposit', ?, ?)
    ''', (account_name, amount, note))
    conn.commit()
    conn.close()

#系统基本操作3-创建取钱功能:

def withdraw(account_name, amount, note=None):
    conn = sqlite3.connect('bank_system.db')
    cursor = conn.cursor()
    cursor.execute('''
    UPDATE accounts SET balance = balance - ? WHERE account_name = ?
    ''', (amount, account_name))
    cursor.execute('''
    INSERT INTO transactions (account_name, type, amount, note) VALUES (?, 'withdraw', ?, ?)
    ''', (account_name, amount, note))
    conn.commit()
    conn.close()

这四个部分只是这段代码的一小部分。下一篇将会接着讲系统的基本配置哦!

喜欢的话,请关注我!

标签:note,account,name,Python,cursor,amount,conn,Sqlite3,模拟
From: https://blog.csdn.net/2301_78933620/article/details/145268337

相关文章

  • 利用Python的matplotlib 库实现散点图
    importmatplotlib.pyplotasplt#定义数据x=[1,2,3,4,5,6,7,8,9,10]y=[2,4,5,7,6,8,9,11,12,10]#绘制散点图plt.scatter(x,y)#添加标题和标签plt.title('SimpleScatterPlot')plt.xlabel('X-axis')plt.ylabel('Y-axis'......
  • 【第一天】零基础入门刷题Python-算法篇-数据结构与算法的介绍(持续更新)
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、Python数据结构与算法的详细介绍1.基本概念2.Python中的数据结构1.列表(List)2.元组(Tuple)3.字典(Dictionary)4.集合(Set)5.字符串(String)3.Python中的常用算法1.排序算法2.搜索算法3.递......
  • 使用 Python 和 Tesseract 进行验证码自动识别
    验证码(CAPTCHA)广泛用于防止自动化程序(例如爬虫)滥用网站。它通过呈现扭曲的字符、图形或其他复杂模式,要求用户确认自己是人类而非机器人。虽然它的目的是为了避免自动化工具进行操作,但我们可以使用Python和TesseractOCR技术来自动化识别这些验证码。在这篇文章中,我们将讲解如......
  • 使用 Python 和 Tesseract 进行验证码识别
    验证码(CAPTCHA)是防止自动化程序(如爬虫、机器人的自动化脚本)的一种安全技术,通常通过图像显示扭曲的字母、数字或者符号,要求用户正确输入。这种技术在网络安全中起着重要作用,但我们也可以通过编程方式来自动化识别这些验证码。本文将通过Python和TesseractOCR(光学字符识别)技术来......
  • python的函数学习
    函数定义方式Python:defmy_function(param1,param2,keyword_param=None):returnparam1+param2+(keyword_paramifkeyword_paramisnotNoneelse0)Python使用def关键字来定义函数。参数类型不需要显式声明,Python是动态类型语言。C/C++:intmy_function(intp......
  • 使用Anthropic API的Python和TypeScript SDK快速入门
    在当今AI驱动的应用程序中,如何高效地调用强大的AI模型是开发人员面临的重要任务之一。Anthropic提供的Python和TypeScriptSDK,使得集成其AIAPI变得无比简单。无论你是通过AmazonBedrock还是GoogleCloudVertexAI进行开发,AnthropicSDK都为你提供了流畅的使用体验。技术......
  • 剑指offer面试题3:数组中重复的数字(Python实现)
    """面试题3:数组中重复的数字在一个长度为n的数组里所有数字都在0~n-1的范围内,某些数字是重复的,找出任意一个重复的数字"""defduplicate1(numbers:list,length:int)->int:"""修改原数组"""ifnumbers==[]orlength<=0:......
  • (2024最新毕设合集)基于SpringBoot的游乐园管理系统-69394|可做计算机毕业设计JAVA、PHP
    目录1绪论1.1选题背景与意义1.2国内外研究现状1.3论文结构与章节安排2系统分析2.1可行性分析2.1.1经济可行性2.1.2技术可行性2.1.3操作可行性2.2系统流程分析2.2.1系统开发流程2.2.2用户登录流程2.2.3系统操作流程2.2.4添加信息流程2.2.5......
  • Python Playwright学习笔记(二)
    一、模拟手机playwright.devices可以配置模拟器。importasynciofromplaywright.async_apiimportasync_playwrightasyncdefrun(playwright):iphone_12=playwright.devices['iPhone12']browser=awaitplaywright.webkit.launch(headless=False)conte......
  • python import 思考二
    前言思考一中简单介绍了import导入模块时的检索机制然而在实际的导入时,我们经常会导入失败,尤其是在相对导入时。下面就绝对导入和相对导入时发生的一些问题进行记录和思考文件目录结构my_project/|--package1/| |--subpackage1/| | |--module2.py| |--module......