定义一个账户类,可以创建多个账户进行存款、取款 、查询余额、以及销户等操作

3-35 声明银行账户类Account,成员变量包括账号、储户姓名、开户时间、身份证号码、存款余额等账户信息,成员方法包括开展户、存款、取款、查询(余额、明细)、销户等操作。 阅读详情

总思路:

将一个字典作为一个用户的储存空间,来储存用户的用户名和密码,在传入列表进行一个用户的储存,再通过列表的来取出某一个字典从而获取该用户的数据进行比对

##定义一个账户类
class ZhangHu:
    name = ""
    yuer =0
    password=''
    def __init__(self,name,password):
        self.name = name
        self.password=password
    # 存款
    def cunkuan(self):
        while True:
            yuer=int(input("请输入你要存的钱"))
            self.yuer+=yuer
            a=isinstance(self.yuer,(int,float))
            if a==True:
                print(f"亲爱{self.name}用户您刚刚存入了{yuer}您现在账户有{self.yuer}¥")
                break
            else:
                print("你的输入有误")
    # 查询余额
    def chaxun(self):
        print(f"您的余额为{self.yuer}")
##取款
    def qukuan(self):
        while True:
            yuer = int(input("请输入取款金额"))
            if yuer>self.yuer:
                print("您的余额目前没有这么多钱,请返回查询余额")
                return denglu()
            self.yuer -= yuer
            a = isinstance(self.yuer, (int, float))
            if a == True:
                print(f"亲爱{self.name}用户您刚刚取出了{yuer}您现在账户剩余{self.yuer}¥")
                break
            else:
                print("你的输入有误")
    # 注销账户
    def dels(self,pasword):
        global List_Person,index
        if self.yuer>0:
            print("您的余额中还有%s元请先取出在注销"%self.yuer)
            return False
        else:
            if pasword==self.password:
                self.yuer=0
                self.name=''
                self.password=''
                print(index)
                del List_Person[index-1]
                print("注销成功")


##这是一个用户操作的函数
def denglu():
    global List_Person,User,password,path1
    choose=int(input("1.存款 2.余额查询3.取款4.账户注销5.退出"))
    if choose==1:
        path1.cunkuan()
        return denglu()
    elif choose ==2:
        path1.chaxun()
        return denglu()
    elif choose==3:
        path1.qukuan()
        return denglu()
    elif choose==4:
        pa=input("请输入密码")
        a=path1.dels(pa)
        if a==False:
            return denglu()
    elif choose==5:
        pass



##主程序
List_Person=[]
Users=[]
while True:
    index = 0##用来记录是第几个用户
    Person = {}
    s=int(input("请输入你要执行的操作1.用户开户2.登录 3.退出"))
    if s==1:
        User = input("请输入用户名")
        Password =input("请输入密码")
        if User not in Users:
            Users.append(User)
            path=ZhangHu(User,Password)
            Person["用户名"]=User
            Person["密码"]=Password
            Person["地址"]=path
            List_Person.append(Person)
        else:
            print("用户名已存在")
    if s==2:
        user=input("请输入用户名")
        password=input("请输入密码")
        rs=True
        for i in List_Person:
            index+=1
            if user== i["用户名"] and password==i["密码"]:
                print("登录成功")
                path1=i["地址"]
                denglu()
                rs=False
        if rs:
            print("输入的用户名或密码有误")
    if s==3:
        print("操作结束")
        break


不太会写解释,请见谅(我也是初学者,🤭)

Python面向对象:银行(定义一个账户类,可以创建账户,存款,取款,查询余额,以及销户等操作) 定义类和属性方法,运用到面向对象里面一些基本特征:封装、继承、多态、抽象;Pyhon创始人:吉多 '魔法函数' 查看所有的魔法函数dir(类名) 魔法方法 __init__ 初始化函数魔法方法 帮助我们解决属性冲突的问题 为实例对象设立独有的属性,在实例化时会自动的调用class Aa: # 账户类初始化方法:def __init__(self, name, passworld, money=0): # __init__是一个魔法方法。 阅读详情

相关推荐

储蓄综合平台——(取款,查询,存款,销户,开户)

/* * Copyright (c) 2012, 烟台大学计算机学院 * All rights reserved. * 作 者: 袁静 * 完成日期:2012 年 12 月26日 * 版 本 号:v1.0 * * 输入描述:无

ycj170320的专栏 1330

定义一个账 户类,可以创建账户、存款、取款 、查询余额、以及销户等操作

需求:定义一个账户类,可以创建账户、存款、取款 、查询余额、以及销户等操作 分析: 类的组成:属性(描述信息)和方法【成员】 定义类的关键字-class 创建账户、存款、取款 、查询余额、以及销户 功能,行为,动作,对应的是类里面的方法 存款:余额加上要存储的金额 属性:姓名,卡号,密码,余额 优化:一个完整的功能应该包含的内容,1.校验,2操作 校验:正确校验,错误校验,边界校验 如果输出正确应该怎么样? 如果输入错...

weixin_65748882的博客 2114

ATM机项目实现:实现登录,注册操作(登录后可以存款,取款,查询余额,转账)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、分析需求二、建立TestDemo.java三、建立ATM.java四、建立Bank.java五、建立BankCard.java扩展:垃圾回收机制 前言 大家平时发工资需要去银行存款,逛淘宝买东西时需要给商家付款,这个资金也是从银行里用户账户转给商家账户的,那么银行内部到底是如何实现这些功能的呢?ATM机底层到底是如何实现的呢?结合使用之前学习的数组操作以及新学的类和对象的知识,让我们一起来实现一下吧! 一、分析需求 AT

ventureyyt的博客 1674

Python使用函数封装简易ATM(V1.0)

无

J12469的博客 1764

java学习案例---ATM系统详细讲解案例(实现基础功能)

ATM系统详细讲解案例(实现基础功能)

小库里的学习记录 2855

Java代码实现银行ATM系统,包含开户、登录、查询账户、退出账户、存款、取款功能实现

Java代码实现银行ATM系统,包含开户、登录、查询账户、退出账户、存款、取款功能实现

2301_79953405的博客 3623

python基础(十七)----- 三大特性

定义:将一些数据封装到一个自定义类中。向类外提供必要的功能,隐藏实现的细节。将一些数据封装到一个自定义类中将数据与对数据的操作相关联,代码可读性更高。便于分工,便于复用,可扩展性强。更符合人类的思考方式向类外提供必要的功能,隐藏实现的细节。在设计类时,刻意地将一些属性和方法隐藏在类的内部,这样在使用此类时,将无法直接以“类对象.属性名”或者“类对象.方法名(参数)”的形式调用这些属性或方法,而只能用未隐藏的类方法间接操作这些隐藏的属性和方法。使用者不必了解具体的实现细节,只需要调用对外提供的功能。.....

qq_70761095的博客 837

Ollama运行DeepSeek大模型调优指南:GPU与CPU协同实现性能最大化

Ollama运行DeepSeek大模型调优指南

qq_32358423的博客 3998

定义一个账户类,可以创建账户、存款、取款 、 查询余额、以及销户等操作

class Account(): #初始化方法 def __init__(self,name,pwd,money = 0): self.name = name self.pwd = pwd self.money = money #存款 def deposit(self,pwd,money): if pwd == self.pwd: if isinstance(money.

weixin_56358909的博客 2243

高通camera:PDAF的配置与测试

确认相关log日志都已经打开了之后,判断是在3A算法中没有应用到PDAF,可能是之前在调试AF效果的时候关闭了PDAF,打开效果文件对应的文件夹,在\kamorta_lce_S5K3P9\Scenario.Default\XML\STATS。在log中搜索af_pdaf_proc_pd_single,这个函数是pdaf算法中的,源码被封装了,这里看不到,因此只能通过log打印出来的参数来分析pd是否正确,主要参数有pd ,defocus,confidence。PDAF的配置与测试。

arvin_xiong的博客 2488

Windows版MySQL8.4.2LTS解压直用(下载免安装-绿色-项目打包直接使用-含卸载)

安装前运行微软常用运行库全集(也可能称为依赖)关于MySQL8中相关参数配置,可通过。选择8.5.2LTS长期服务版。选中密码,右键会直接复制。

xzzteach的博客 1440

C#实验 面向对象编程(图书管理应用和银行卡存取款业务)

完成课本C#实验三,包括图书管理应用和银行卡存取款应用。每个题目分为两部分跟着学习和自己思考两部分。

weixin_53540280的博客 1645

PCIe Electrical PHY(4)-PCIE SPEC第8章指标讲解

1.1 PCIE TX SPEC TX主要关心两类参数,一类是Voltage Parameters,一类是Jitter Parameters。 其中Voltage相关参数主要关心不同preset下差分电压幅度的准确性。以及共模电压的稳定性。 PCIE spec中对Jitter相关的参数测量定义如下: 分为两大类:DDJ(Data dependent Jitter)和UJ(Uncorrelated ...

maxwell2ic的博客 5951

java 银行账户类

申明一个银行账户类,成员变量包括账号、储户姓名、开户时间、身份证号码、存款余额等账户信息,成员方法包括开户、存款、取款、查询(余额,明细)、销户等操作。 import java.util.Date; import java.text.SimpleDateFormat; import java.util.Scanner; public class Account { private String Number; private String Name; private

yexianqiu的博客 4538

Verilog数字钟

使用Verilog语言进行的数字钟的编写,FPGA开发板亲测正常 大学生一个,第一次自己做的东西,写出来分享在这里插入代码片一下,有不对的地方请大家批评指正。 这次的做的题是:设计一个数字钟,该数字钟能进行正常的时,分计时功能,且能对数字钟的时间进行调整。 该数字钟有3个按键,按键1为功能键,用于数字钟在“正常计时”,“时调整”,“分调整”这三个功能之间切换;按键2,3用于调整时间,仅当数字钟处于...

bin_bin_bun的博客 6149

Transformer 面试题及详细答案120道(1-10)-- 基础概念

本文总结了Transformer模型的10个常见面试问题及答案,涵盖了其核心结构、创新点、工作机制等关键知识点。主要内容包括:Transformer的自注意力机制和多头注意力机制创新点,相比RNN/CNN的优势,模型在《Attention Is All You Need》论文中的提出背景,以及Encoder-Decoder协同工作流程等。重点解析了位置编码的作用、长距离依赖处理能力、与传统注意力机制的区别等核心问题。每个问题都给出了简明扼要的专业解答,适合作为Transformer相关面试准备的参考资料。

大剑师兰特的GIS世界 849

Java实验13 银行账户存取款业务

题目类别: 实验 关键字: 对象类型转换、覆盖、继承、多态 内容要求: 要求编写程序模拟银行账户的存、取款操作。按要求完成以下步骤:      步骤 1:编写程序 Account.java,其中定义银行账户类 Account。该类中有账号、姓名、存款余额等数据域,余额默认是 0;有存款、取款、获取当前余额等方法。其中账号为长度为 12 位数字的字符串,姓名为字符串,存款余额为 double。      步骤 2:编写名为

zg 6162

ABAP Open SQL 数据拷贝导致 SAPSQL_DATA_LOSS:从报错机理到稳妥修复

数据类型与长度不合规。一旦在Open SQL的无损赋值检查里被发现,系统宁可中止也不会偷偷替你截断。把变量声明对齐到字典、在需要时明确表达转换/截断意图、写法上避免落入高危的操作数位置,再配合ATC的预防性检查,既能解决你这次的ST22Dump,也能把同类问题消灭在萌芽状态。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 429

类的封装:实现银行账户信息的开户,存款,取款,查询,销户操作

代码如下: package 银行; import java.util.*; public class Account { public int id; public String name; public long number; public long time; public int money; publi...

weixin_30591551的博客 1611

微信公众号 - 最新详细实现H5网页接入微信支付功能,开发移动端、PC端网站集成使用微信支付流程及示例代码,公众号网页利用JS-SDK/JSAPI/H5支付授权唤起微信支付,可脱离微信环境支付或内置浏

微信公众号,微信支付,网页,移动端,h5,扫码支付,二维码付款,手机网页,电脑pc网页生成支付二维码,js-sdk,jsapi,外部浏览器调起微信支付,脱离微信环境,在微信内置浏览器如何进行微信支付,前端H5微信支付,web网站,vue2,vue3,nuxt2,nuxt3,jquery,微信公众号h5支付流程,如何实现,怎么做,回调报错,redirect_uri参数错误,必须部署才能调试吗,怎么不打包发布就能在本机测试,微信H5支付能力,uniapp微信支付,h5页面调起支付,支付没反应,无效,失败,H5页

🏆 前端领域优质创作者 6103

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

python作业 银行(定义一个账户类,可以创建账户,存款,取款,查询余额,以及销户等操作)

练习笔记

qq_34589842的博客 4168

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

类的封装,继承和多态 : 声明银行账户类,成员变量包括账号、储户姓名、开户时间、身份证号码、存款余额等账户信息,成员方法包括开户、存款、取款、查询(余额、明细)、销户等操作。...

import java.util.Scanner;public class BankAccount{ private String Number;//账号 private String Name; //储户姓名 private String OpenTime;//开户时间 private String CardNumber;//省份证号码 private doubl...

weixin_30321449的博客 3012

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Java模拟实现ATM系统

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、项目需求是什么?二、技术选型技术点分析:1. 面型对象分析:2. 使用集合容器:3. 程序流程控制:4. 使用常见API:三、实现步骤1.账户类、首页设计2.读入数据总结 前言 自动取款机又称ATM(Automated Teller Machine的缩写),意思是自动柜员机,因大部分用于取款,又称自动取款机。它是一种高度精密的机电一体化装置,利用磁性代码卡或智能卡实现金融交易的自助服务,代替银行柜面人员的工作。可提取现金.

qq_47387991的博客 1万+

ATM的功能的模拟: 开户 销户 查询余额 查询最后5笔明细 存款 取款 转帐 退出

#include #include #include #define LEN sizeof(struct Account) #define RECORDCOUNT 5 #define MESSAGELENGTH 100 #define NAMELENGTH 100 #define VIEWCOUNT 5 #define DEFAULTBALANCE 0.00 #define

张仁阳专栏 7245

java小项目:银行开户(存、 取、 查、 销户,可开多用户)

功能 1.存款 2.取款 3.查余额 4.创建账户 5.销户 注意 1.建立的java文件,要与代码中的public class 名相同 2.package 包名; 要与自己建立的相同 源代码 package program; import java.util.*; class Bank { Scanner reader=new Scanner(System.in); static int ii=0; //保证开一次户ii加一次;值得注意的是在JAVA中static的创建只能在类中

✈ 正在努力 の 寒江(StudiousTiger) ✌ 呐 ✈ 4714

Java基础 —— 项目一:ATM存取款系统

他人之得,不必视为自己之失—— 24.7.15。

m0_73983707的博客 4161
下一篇: python爬取小说
sitive
博客等级 码龄5年 3粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值