python中is和==的区别,以及函数中数据保存的内存地址

Python中的双等号(==)是一个比较运算符,用于检查两个值是否相等 由于name1的值不等于name2的值,所以条件判断的结果为False,程序将执行else语句,输出"两个名字不相同"。在这个示例中,我们定义了两个列表变量list1和list2,并使用双等号将它们进行比较。当使用双等号进行比较时,它将评估左右两侧的值,并返回一个布尔值,即True或False,表示两个值是否相等。由于x的值不等于y的值,所以条件判断的结果为False,程序将执行else语句,输出"x不等于y"。需要注意的是,双等号比较的是变量的值是否相等,而不仅仅是变量的身份是否相等。 阅读详情

先上今天群里发现的很有意思的一个函数。

def f(x,l=[]):
    for i in range(x):
        l.append(i*i)
    print(l)

如上,非常简单的一个函数,看看输出是什么

print(f(2))
[0, 1]

一切都很正常,**

但是!

再执行一次呢?

[0, 1]
None
[0, 1, 0, 1]  #忽略这里的None,发现?????? 怎么列表变成了这样,按道理不应该是返回和第一次返回的一样的值吗。
None

经过对函数的一点改装,发现问题所在。

def f(x,l=[]):
    for i in range(x):
        l.append(i*i)
    print(l)
    print(id(l))
    
print(f(2))
print(f(2))

[0, 1]
2411718212680 #l的内存地址
None
[0, 1, 0, 1]
2411718212680 #也是l的内存地址,完全一样!
None

对原函数追加一条代码 print(id(l)) 来得到这个列表的内存地址,再继续按上面的步骤执行两次之后发现,
内存地址一样,这样就不难理解了! python在执行这个函数的时候,第一次执行,python在某个内存地址里创造了这个列表l,默认传入是个空列表,但是在执行一次之后,这个列表里已经保存了内容,再次执行的时候,
由于没有传入l参数,不要误以为这里l默认还是传入了空列表,这个时候python会调用指向这个内存地址的列表作为这个函数的默认参数传入,所以其实第二次执行的时候就相当于执行了下面的语句!

print(f(2,l=[0,1])

python中is和==的区别。

直接上代码,cmd命令行中

>>> a = 1
>>> b = 1
>>> a == b
True
>>> a is b
True

这里没问题,再看下面

>>> a = 1000
>>> b = 1000
>>> a == b
True
>>> a is b #注意比较上面代码和这里的代码!
False
>>> id(a)
2634722354288
>>> id(b)   #承接上述代码,会发现a和b都指向1000时,内存地址是不一样的!
2634722356976

如上,这里就可以得出结论了,python中,==仅仅用来比较二者的值相不相等,是比较浅层的判断。
而is是对于两个对象内存地址的判断,是更深层次的判断! 请看下述例子

>>> id(True)
1402990752
>>> id(2>1) #地址一样。
1402990752

这里还有个知识可以掌握,python中,在[-5,256]这个区间内,不同变量的赋值,赋给同样的值时,他们的内存地址是相等的,所以既可以用is判断,又可以用==来判断,看下面代码。

>>> a = 256
>>> b = 256
>>> a == b
True
>>> a is b
True
>>> a = 257
>>> b = 257
>>> a == b
True
>>> a is b
False
>>> a = -5
>>> b = -5
>>> a == b
True
>>> a is b
True
>>> a = -6
>>> b = -6
>>> a == b
True
>>> a is b
False

由上述代码可见,[-5, 256] 是闭区间,两端可以取到,到这里结束了。

一点小知识,可以帮助理解python运作时的原理,帮助加深对代码的理解。
继续进步!!

【Python中is和==的区别】 🤵‍♂️ 个人主页✍🏻作者简介:Python学习者🐋 希望大家多多支持我们一起进步!😄如果文章对你有帮助的话,在Python中一切都是对象。Python中对象包含的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)。对象之间比较是否相等可以用==,也可以用is。is和==都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同。下面来看看具体区别在哪?以下代码在Python3.5下测试通过。解释一下为什么?is也被叫做同一性运算符,也就是id是否相同。 阅读详情

相关推荐

python——体育收入排行2012-2019

请分析文件并读取数据,完成以下功能: 1. 某年的收入排名前若干名选手 如果输入n是2012-19之间的年份,则可以输入整数k,输出n年的前k名排名信息。如果k大于当年排名运动员人数,则输出当年所有的信息。每行一名运动员信息,以' | '间隔该行各项信息。 2. 某年属于某个运动项目的所有运动员信息,和收入总和 如果输入的是'sport'(不区分大小写),则可以继续输入一个年份201*,输出一个当年排行中的运动项目菜单,按照字符串升序排列,格式见示例,再输入运动项目对应的数字来输出该项运动当

m0_62488776的博客 2257

js 一个等号"=" 二个等号"==" 三个等号"===" 的区别

一个等号是赋值操作,==先转换类型再比较,===先判断类型,如果不是同一类型直接为false。 === 判断规则 如果类型不同,就[不相等]  如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断)  如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。 

说:/~不了的专栏 1922

三极管开关电路在脉冲应用中的性能瓶颈分析

深入探讨三极管开关电路在高频脉冲场景下的响应延迟与功耗问题,揭示其性能限制的关键因素。结合实际应用,分析开关速度与信号完整性之间的矛盾,为优化三极管开关电路设计提供实用参考。

weixin_42602368的博客 588

三个等号和两个等号的区别(“===”与“==”的区别)

1.===:三个等号我们称为等同符,当等号两边的值为相同类型的时候,直接比较等号两边的值,值相同则返回true,若等号两边的值类型不同时直接返回false。      例:100===“100”   //返回false               abc===“abc”   //返回false               ‘abc’===“abc”  //返回true           

zephyr15的博客 7万+

USB接口ESD保护电路:深度剖析与选型建议

USB接口在热插拔和频繁使用中极易遭遇静电放电(ESD)冲击,导致芯片损坏或通信异常。本文结合实际电路设计经验,详解TVS二极管、集成ESD防护器件等方案在USB接口上的应用要点,重点分析钳位电压、结电容、IEC 61000-4-2等级等关键参数对信号完整性与防护效果的影响,助你为USB接口匹配高可靠、低干扰的ESD保护方案。

weixin_36289813的博客 510

Gephi新手必看:如何用Excel整理CSV数据快速生成网络图(附模板)

本文为Gephi新手提供了一份从Excel数据整理到生成专业网络图的完整指南。详细讲解了如何构建规范的节点表和边表CSV文件,并导入Gephi进行可视化分析。通过实战案例,帮助读者快速掌握利用Excel整理数据、规避常见错误,并运用布局算法与视觉编码,将复杂关系数据转化为直观的网络洞察。

weixin_28487433的博客 390

{} == {} 结果为什么是false?

var a = function() {console.log(11)}; var b = function() {console.log(11)}; console.log( a==b ); //false console.log( {}=={} ); //false console.log( []==[] ); //false 如你所见,上述三个例子结果都为false。 相信很多人都碰到

hb_zhouyj的博客 1万+

Android 14 (AOSP) 源码架构深度解析与开发者指南

Android14源码的仓库指南信息

保持专注,保持热爱 1186

Python 中等于到底用 == 还是 is,两者究竟有什么区别?

print(list1 is list2) # 输出: False,因为 list1 和 list2 是不同的对象。print(a is b) # 输出: False,因为 a 和 b 是不同的对象,尽管它们的内容相同。print(a is c) # 输出: True,因为 c 和 a 引用的是同一个对象。print(a == b) # 输出: True,因为 a 和 b 的内容相同。print(a == b) # 输出: True。print(c == d) # 输出: True。

leyang0910的博客 1660

智能手表 BOM 表与版本管理记录

试产与量产阶段 智能手表 BOM 表与版本管理记录

hoony123的博客 1053

高通Camx功能feature分析之八:高通NCS服务之架构和初始化

本文介绍了高通NCS(NONCameraSensor)服务的架构与初始化流程。NCS服务通过QMI接口访问非相机传感器,为CameraEIS、AEC等算法节点提供陀螺仪、加速度计等传感器数据支持。文章详细解析了NCS服务的分层架构,包括客户端、服务端、QSEE接口实现等组件,并重点分析了初始化过程中获取传感器列表、查询能力等关键步骤。通过camxsetting.xml中的enableNCSService开关控制服务启动,初始化过程涉及QSEE单例创建、传感器能力查询等核心操作。后续文章将继续深入讲解相关技术

930

Python 中 is 和 == 的区别

python 对这些数值已经提前创建好了内存空间,即使多次重新定义也不会再重新开辟新的空间,但是小整数池外的数值在重新定义时都会再次开辟新的空间所以对于小整数池中的数,内存地址一定是相同的,小整数池中外的数,内存地址是不同的好,那这次我用小整数池之外的数?玩我是吧,说好的小整数池中外的数,内存地址是不同的,那上面的代码结果怎么跟说的不一样上面的代码我是在 IDE 环境下面敲的,我们试着在交互模式下敲可以看到,在交互模式下,小整数池外的数内存地址不相同,这是为什么呢?

python03011的博客 991

COMSOL介电弹性体数值仿真指南:预拉伸圆形DEA的稳态变形分析(I)

本期博客是《COMSOL介电弹性体数值仿真指南》系列博客中的一期。聚焦于介电弹性体驱动器(DEA)中最为经典的预拉伸圆形DEA驱动器构型,对其物理特性及数值仿真总体方案进行介绍与讨论。

忘了面孔的Batou 453

Python中is和==的区别

在Python中一切都是对象。Python中对象包含的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)。对象之间比较是否相等可以用==,也可以用is。is和==都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同。下面来看看具体区别在哪?以下代码在Python3.5下测试通过。

weixin_73136678的博客 4726

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Python中is和==的区别,小数据池

比较操作符和同一性运算符 Python中有很多运算符,今天注意讲一下is和==两种运算符在应用上的本质区别是什么。 我们知道Python中对象包含的三个基本要素:id(身份标识),type(数据类型)和 value(值)。 is和==都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同,下面来看看具体区别在哪: ==比较操作符 和 is同一性运算符 ==是python标准操作符中...

Lemon的博客 908

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Python基础知识——is和==的区别

在Python中一切都是对象。 Python中对象包含的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)。对象之间比较是否相等可以用==,也可以用is。 is和==都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同。下面来看看具体区别在哪? is比较的是两个对象的id值是否相等,也就是比较两个对象是否为同一个实例对象,是否指向同一个内存地址。 ==比较的是两个对象的内容是否相等,默认会调用对象的__eq__()方法

m0_72543700的博客 1054

深度学习工具包 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 is和==的区别

Python中对象包含的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)。 s和==都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同. 官方文档中说 is 表示的是对象标示符(object identity),而 == 表示的是相等(equality)。is 的作用是用来检查对象的标示符是否一致,也就是比较两个对象在内存中的地址是否一样,而 == 是用来检查两个对象是否相等。 is比较的是对象标识符,用来检查对象的标识符是否一致,即两个对象在内存中的地址是否一

weixin_39331401的博客 240

Python is与==的区别 +编码小解

主要内容: 1、is和==的区别 2、编码的问题 一 is和==的区别 id() 通过id()我们可以查看到一个变量表示的值在内存中的地址。 s = 'devil' print(id(s)) #32056744 s1 = 'devil' print(id(s1)) #32056744 lst = [1,2,3] print(id(lst)) #35652744 lst1=[1,2,3] pr...

DevilLin的博客 266

python中is和==的区别

前提:变量、内存地址 >>> a = "test" #a是变量名,变量的值是"test" >>> id(a) #变量的内存地址是2364845921088,id函数返回变量的内存地址 2364845921088 is:比较的是两个对象的id值是否相等,也就是比较俩对象是否为同一个实例对象,是否指向同一个内存地址。 int数据类型: >...

chang_jinling的专栏 415

Python中Is 和 == 的区别

在讲is和==这两种运算符区别之前,首先要知道Python中对象包含的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)。 is和==都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同。下面来看看具体区别在哪。 ==比较操作符和is同一性运算符区别 ==是python标准操作符中的比较操作符,用来比较判断两个对象的value(值)是否相等,例如下面两个字...

围城客的专栏 299

is 和 == 的区别

在Python中一切都是对象。 Python中对象包含的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)。对象之间比较是否相等可以用==,也可以用is。 is和==都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同。下面来看看具体区别在哪? is比较的是两个对象的id值是否相等,也就是比较两个对象是否为同一个实例对象,是否指向同一个内存地址。 ==比较的是两...

qq_36388741的博客 609

python中 和 的区别_详解Python中is和==的区别

在Python中一切都是对象。Python中对象包含的三个基本要素,分别是:id(身份标识)type(数据类型)value(值)对象之间比较是否相等可以用 == ,也可以用 is 。is 和 == 都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同。下面来看看具体区别在哪?is 比较的是两个对象的id值是否相等,也就是比较两个对象是否为同一个实例对象,是否指向同一个内存地址。== 比较的...

weixin_39964978的博客 75

让你知道python中is和==的区别到底是什么

在Python中一切都是对象。 Python中对象包含的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)。对象之间比较是否相等可以用==,也可以用is。 is和==都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同。下面来看看具体区别在哪? is比较的是两个对象的id值是否相等,也就是比较两个对象是否为同一个实例对象,是否指向同一个内存地址。 ==比较的是两个对象的内容是否相等,默认会调用对象的__eq__()方法。 以下代码在Python3.5下测试.

weixin_55688024的博客 272
上一篇: 关于python中密码加盐的学习体会
下一篇: 爬虫之UserAgent的获得方法
0x101
博客等级 码龄8年 16粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值