python数据和变量类型_python 数据类型和变量初识

int (整数)

Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等。

计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等等。

float (浮点数)

浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x109和12.3x108是完全相等的。浮点数可以用数学写法,如1.23,3.14,-9.01,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。

整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差。

2、布尔值

布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写),也可以通过布尔运算计算出来:

>>>True

True>>>False

False>>> 3 > 2True>>> 3 > 5False

布尔值可以用and、or和not运算。

and运算是与运算,只有所有都为True,and运算结果才是True:

>>>True and True

True>>>True and False

False>>>False and False

False>>> 5 > 3 and 3 > 1True

or运算是或运算,只要其中有一个为True,or运算结果就是True:

>>>True or True

True>>>True or False

True>>>False or False

False>>> 5 > 3 or 1 > 3True

not运算是非运算,它是一个单目运算符,把True变成False,False变成True:

>>>not True

False>>>not False

True>>> not 1 > 2True

3、空值

空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

4、字符串(str)

字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。

创建字符串很简单,只要为变量分配一个值即可。例如:

var1 = 'Hello World!'

万恶的字符串拼接:

python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间。

字符串格式化输出

在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。

如下实例:

#!/usr/bin/python

print("My name is %s and weight is %d kg!" % ('Zara', 21))

以上实例输出结果:

My nameis Zara and weight is 21 kg!

PS:  %s是格式化字符串; %d是格式化整数; %f是格式化 浮点数.

字符串常用功能:

移除空白

分割

长度

索引

切片

5.列表(list)

Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素

创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示

list1 = ['physics', 'chemistry', 1997, 2000];

list2= [1, 2, 3, 4, 5];

list3= ["a", "b", "c", "d"];

与字符串的索引一样,列表索引从0开始.

基本操作:

索引

切片

追加

删除

长度

切片

循环

包含

每个列表都具备如下功能:

List操作包含以下函数:

cmp(list1, list2): 比较两个列表的元素,两个元素相同返回0,前大后小返回1,前小后大返回-1len(list): 列表元素个数

max(list): 返回列表元素最大值

min(list): 返回列表元素最小值

list('var'): 将元素转换为列表

del L[1] 删除指定下标的元素

del L[1:3] 删除指定下标范围的元素

List操作包含以下方法:

L.append('var')          append方法用于在列表的尾部追加元素,参数'var'是插入元素的值

L.insert(index,'var')       用于将对象插入到列表中,俩个参数,第一个是索引位置,第二个插入的元素对象.

L.pop()                返回列表最后一个元素,并从List中删除.

L.pop(index)               返回列表索引的元素,并删除.

L.count(var)             该元素在列表中出现的个数

L.index('var')             取出元素的位置(下标),无则抛出异常.

L.remove('var')          remove方法用于从列表中移除第一次的值(值如果有重复则删除第一个)

L.sort()               排序

L.reverse()                倒序

L.extend(list1)              extend方法用于将两个列表合并,将list1列表的值添加到L列表的后面。

L.copy() 浅拷贝,只独立copy第一层,如果列表中嵌套列表修改后也会修改.

Python列表脚本操作符:

List 中 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。

1b887fa9a869becdff13dc16c8ffde35.png

Python列表截取:

L = ['spam', 'Spam', 'SPAM!','xusandu']

810d089a5f3526c74fa3a9594d0a9f54.png

操作实例:

#增加元素

>>> ShoppingList = ['car','clothers','iphone','apple'] #定义列表

>>> ShoppingList.append('xiaomi') #向列表中插入'xiaomi'字符串

>>> print(ShoppingList) #查看列表

['car', 'clothers', 'iphone', 'apple', 'xiaomi']>>> ShoppingList.insert(0,'smoke') #在列表下标为零处(即列表第一个元素),插入'smoke'元素

>>> print(ShoppingList)

['smoke', 'car', 'clothers', 'iphone', 'apple', 'xiaomi']#删除

>>> ShoppingList.remove('iphone') #从列表中移除'iphone'元素

>>> print(ShoppingList)

['smoke', 'car', 'clothers', 'apple', 'xiaomi']>>> ShoppingList.pop() #如果不指定下标默认从List中删除掉最后一个元素.ShoppingList.pop(1)表示删除下标为1的元素.

'xiaomi'

>>> print(ShoppingList)

['smoke', 'car', 'clothers', 'apple']>>>

>>> del ShoppingList[0] #使用del 函数删除List中下标为0的元素(此处下标为0表示的是smoke)

>>> print(ShoppingList)

['car', 'clothers', 'apple']#改

>>> ShoppingList[0] = 'bus' #将下标为0的元素(即‘car’字符)替换为‘bus’

>>> print(ShoppingList)

['bus', 'clothers', 'apple']#查询

>>> ShoppingList[0] #查看下标为零的元素,即第一个元素

'bus'

>>> ShoppingList[-1] #查看下标为-1的元素,即倒数第一个元素

'apple'

>>> ShoppingList[1:] #查看下标为1以后所有的元素

['clothers', 'apple']>>> ShoppingList[:-1] #查看下标为-1之前的所有元素

['bus', 'clothers']>>>

>>> 'car' in ShoppingList #List列表中查找'car'元素,如果存在则返回Ture

True>>>

>>> ShoppingList.index('rain') #使用index方法查找rain的下标值

>>>

#统计

>>> print(ShoppingList)

['bus', 'clothers', 'apple', 'rain', 'car']>>> ShoppingList.count('car') #统计列表中元素'car'的个数

>>>

#排序

>>> ShoppingList.sort() #对元素按第一个字母顺序排序

>>> print(ShoppingList)

['apple', 'bus', 'car', 'clothers', 'rain']>>>

>>> ShoppingList.reverse() #倒序

>>> print(ShoppingList)

['rain', 'clothers', 'car', 'bus', 'apple']>>>

#合并列表

>>> li = [1,2,3,4]>>> ShoppingList.extend(li) #将li列表中的元素添加到ShoppingList列表中

>>> print(ShoppingList)

['rain', 'clothers', 'car', 'bus', 'apple', 1, 2, 3, 4]>>>

#copy 浅copy,只独立拷贝第一层.

ShoppingList= ['car','clothers','iphone','bus']

li=ShoppingList.copy()print(ShoppingList)print(li)

ShoppingList[1] = "apple"

print(ShoppingList)print(li)#在列表中嵌套一个列表

ShoppingList = ['car','clothers',['a','b','c'],'iphone','bus']

lis=ShoppingList.copy()

ShoppingList[1] = "milk"ShoppingList[2][0] = "A"

print(ShoppingList)print(lis)----执行结果-----------------------['car', 'clothers', 'iphone', 'bus']

['car', 'clothers', 'iphone', 'bus']

['car', 'apple', 'iphone', 'bus']

['car', 'clothers', 'iphone', 'bus']

['car', 'milk', ['A', 'b', 'c'], 'iphone', 'bus']

['car', 'clothers', ['A', 'b', 'c'], 'iphone', 'bus']

使用列表实现购物车功能

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

#!/usr/bin/env python#coding:utf-8

'''脚本思路:

1.判断用户输入类型,

2.循环出商品和下标的对应值

3.判断用户商品编号输入值

4.商品价格和用户输入金额比较,如果商品价格低于用户余额,将商品加入购物车并减去商品价格.'''product_list=[

('Iphone',5800),

('Mac Pro',9800),

('Bike',800),

('Watch',10600),

('Coffee',31),

('Python',120),

]

shoping_list=[]

salary= input("请输入你的工资:")#如果输入的是数字返回True,如果不全是数字则返回flase.

ifsalary.isdigit():

salary=int(salary)whileTrue:for index,item in enumerate(product_list,start=0):print(index,item)

user_choice= input("请输入你要买商品的编号>>>:")ifuser_choice.isdigit():

user_choice=int(user_choice)if user_choice < len(product_list) and user_choice >=0:

p_item= product_list[user_choice] #通过商品下标取出商品对应元组

#print(p_item[1])

#通过商品价格和输入金额对比,如果买得起则进行后续操作

if p_item[1] <=salary:

shoping_list.append(p_item)#购买商品后的用户余额

salary -= p_item[1]print("你买的商品是 %s 你的剩余金额为 %s" %(shoping_list,salary))else:print("你的余额剩余 %s ,买不起该商品." %(salary))else:print("你输入的商品编号%s不存在." %(user_choice))elif user_choice == 'q' or user_choice == 'exit':print('''购买的商品列表如下:''')for i inshoping_list:print(i)print("你目前的余额为 %s" %(salary))

exit()else:print("编号必须为数字")else:print("输入工资必须为数字")

购物车代码

6.元组 (不可变列表)

不可变序列-----元组 tuple

元组通过圆括号中用逗号分隔的项目定义,不可以添加和删除元组.

创建元组:

ages = (11, 22, 33, 44, 55)

ages= tuple((11, 22, 33, 44, 55))

每个元组都具备如下功能:connt,index

>>> name_tuple = ('a','b','c','a','b')>>>type(name_tuple)

>>> name_tuple.count('a') //统计a出现次数2

>>> name_tuple.index('b') //获取b元素下标位置.

1

7.dict(字典)

字典是Python语言中唯一的映射类型。

映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的的关系,通常被认为是可变的哈希表。

字典对象是可变的,它是一个容器类型,能存储任意个数的Python对象,其中也可包括其他容器类型。

字典的特性:

dict是无序的

key必须是唯一的

字典没有下标.通过key检索

创建字典:

person = {"name": "saneri", 'age': 20}

person = dict({"name": "saneri", 'age': 20})

技巧:

字典中包含列表或字典

var1= {"ZhangSan" : ['23','IT'],"Lisi" : ['22','dota']}

var2= {"Wangwu" : {"age" : 23,"job":"IT"},"Song" : {"age":22,"job":"dota"}}

常用操作:

索引

新增

删除

键、值、键值对

循环

长度

python字典实例操作

#增加

>>> info = { "zhangsan" : 20,"Lisi" : 30,"Wangwu" : 40}>>> info['Zhaoliu'] = 60

>>> print(info)

{'zhangsan': 20, 'Lisi': 30, 'Wangwu': 40, 'Zhaoliu': 60}#修改#如果key存在则修改值,不存在则添加

>>> info['Zhaoliu'] = 80

>>> print(info)

{'zhangsan': 20, 'Lisi': 30, 'Wangwu': 40, 'Zhaoliu': 80}#删除

第一种方法,标准删除>>> print(info)

{'zhangsan': 20, 'Lisi': 30, 'Wangwu': 40, 'Zhaoliu': 80}>>> info.pop("Zhaoliu")80

>>> print(info)

{'zhangsan': 20, 'Lisi': 30, 'Wangwu': 40}

第二种方法:>>> del info["Zhaoliu"]>>> print(info)

{'zhangsan': 20, 'Lisi': 30, 'Wangwu': 40}

第三种,随机删除>>>info.popitem()

('Zhaoliu', 80)>>> print(info)

{'zhangsan': 20, 'Lisi': 30, 'Wangwu': 40}#查找

>>> print(info)

{'zhangsan': 20, 'Lisi': 30, 'Wangwu': 40, 'Zhaoliu': 80}>>> info['zhangsan'] #如果key存在就返回结果

20

>>> info['saneri'] #如果key不存在,dict就会报错:

Traceback (most recent call last):

File"", line 1, in KeyError:'saneri'要避免key不存在的错误,有两种办法,一是通过in判断key是否存在:>>> 'zhangsan' ininfo

True

二是通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:>>> info.get('saneri')>>> info.get('saneri',-1)-1注意:返回None的时候Python的交互式命令行不显示结果。#info.keys()方法

>>>info

{'zhangsan': 20, 'Lisi': 30, 'Wangwu': 40, 'Zhaoliu': 80}>>>info.keys()

dict_keys(['zhangsan', 'Lisi', 'Wangwu', 'Zhaoliu'])#info.values()方法

>>>info.values()

dict_values([20, 30, 40, 80])#info.items()方法

>>>info.items()

dict_items([('zhangsan', 20), ('Lisi', 30), ('Wangwu', 40), ('Zhaoliu', 80)])#info.setdefault()方法

setdefault() 函数和get()方法类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值>>> info.setdefault('saneri','100')'100'

>>>info

{'zhangsan': 20, 'Lisi': 30, 'Wangwu': 40, 'Zhaoliu': 80, 'saneri': '100'}>>> info.setdefault('adny')>>>info

{'zhangsan': 20, 'Lisi': 30, 'Wangwu': 40, 'Zhaoliu': 80, 'saneri': '100', 'adny': None}#info.update()方法

>>>info

{'zhangsan': 20, 'Lisi': 30, 'Wangwu': 40, 'Zhaoliu': 80, 'saneri': '100', 'adny': None}>>> dict = {1:2,3:4,'tom':'IT'}>>>info.update(dict)>>>info

{'zhangsan': 20, 'Lisi': 30, 'Wangwu': 40, 'Zhaoliu': 80, 'saneri': '100', 'adny': None, 1: 2, 3: 4, 'tom': 'IT'}

循环dict的方法

#!/usr/bin/env python#coding:utf-8

info={"zhangsan" : 20,"Lisi" : 30,"Wangwu" : 40}#1.建议使用

for i ininfo:print(i,info[i])print('---------------------------')#2.会先把dict转成list,数据里大时莫用

for k,v ininfo.items():print(k,v)-----------执行结果------------zhangsan20Lisi30Wangwu40

---------------------------zhangsan20Lisi30Wangwu40

三级菜单

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

#!/usr/bin/env python#coding:utf-8

city_list={"北京": {"海淀区": {"上地" : ["百度大厦"],"海淀黄庄" : ["互联网金融大厦"],"中关村" : ["海龙大厦"],

},"朝阳区": {"朝阳门" : ["丰联大厦"],"东直门" : ["银泰大厦"],"望京" : ["望京soho"],

},"昌平区": {"回龙观" : ["华联超市"],"龙泽" : ["美廉美超市"],"霍营" : ["霍营超市"],

},

},"陕西省": {"西安市": {"长安区" : [1],"碑林区" : [2],"雁塔区" : [3],"莲湖区" : [4],

},"咸阳市": {"秦都区": [0],"渭城区": [0],"西咸新区": [0],

},

},

}whileTrue:for i in city_list: #打印第一层

print(i)#北京、陕西省

choice = input("请输入城市名>>>>>:").strip()if choice in city_list: #如果输入城市在字典中,则执行如下操作

whileTrue:for m in city_list[choice]: #打印第二层

print(m)

choice2= input("请选择市区>>>>:").strip()if choice2 incity_list[choice]:whileTrue:for k in city_list[choice][choice2]: #打印第三层

print(k)

choice3= input("请选择区县>>>>>>>:").strip()if choice3 incity_list[choice][choice2]:for v in city_list[choice][choice2][choice3]: #打印第四层

print(v)

choice4= input("已经是最后一级,按b键返回>>>>:")if choice4 == "b":pass

if choice3 == "b":break

if choice2 == "b":break

if choice == "b":

exit()

三级菜单练习

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

#!/usr/bin/env python#coding:utf-8

city_list={"北京": {"海淀区": {"上地" : ["百度大厦"],"海淀黄庄" : ["互联网金融大厦"],"中关村" : ["海龙大厦"],

},"朝阳区": {"朝阳门" : ["丰联大厦"],"东直门" : ["银泰大厦"],"望京" : ["望京soho"],

},"昌平区": {"回龙观" : ["华联超市"],"龙泽" : ["美廉美超市"],"霍营" : ["霍营超市"],

},

},"陕西省": {"西安市": {"长安区" : [1],"碑林区" : [2],"雁塔区" : [3],"莲湖区" : [4],

},"咸阳市": {"秦都区": [0],"渭城区": [0],"西咸新区": [0],

},

},

}

exit_flag=Falsewhile notexit_flag:for i incity_list:print(i)

choice= input("请输入省市>>>>>>:").strip()if choice incity_list:while notexit_flag:for m incity_list[choice]:print(m)

choice2= input("请输入市区>>>>:").strip()if choice2 incity_list[choice]:while notexit_flag:for k incity_list[choice][choice2]:print(k)

choice3= input("请输入区县>>>>:").strip()if choice3 incity_list[choice][choice2]:while notexit_flag:for v incity_list[choice][choice2][choice3]:print(v)

choice4= input("最后一层,返回请按b键,退出请按q>>>:")if choice4 == "b":break

elif choice4 == "q":

exit_flag=Trueif choice3 == "b":break

elif choice3 == "q":

exit_flag=Trueif choice2 == "b":break

elif choice2 == "q":

exit_flag=Trueif choice == "b":break

elif choice == "q":

exit_flag= True

标志位三级菜单

8.set集合

集合(set)是一个无序不重复元素的序列。

它的主要作用如下:

去重,把一个列表变成集合,就自动去重了

关系测试,测试两组数据之前的交集、差集、并集等关系

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

创建格式:

1.可以使用大括号 { }

s={value1,value2,...}2.或提供一个list作为输入集合

s= set([value1,value2,...])3.或者 set() 函数创建集合set(value)

1. set成员测试

>>>student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}>>>print(student) # 输出集合,重复的元素被自动去掉

{'Mary', 'Tom', 'Jack', 'Rose', 'Jim'}

# 成员测试>>> if('Rose' instudent) :

... print('Rose 在集合中')

...else:

... print('Rose 不在集合中')

...

Rose 在集合中>>>

2.set进行集合运算

>>> s = set([3,5,9,10])>>> t = set(['a','b','c',1,2,3])>>> s -t # 求差集(项在s中,但不在t中)

{9, 10, 5}>>> s |t # s 和 t的并集

{1, 2, 3, 'b', 5, 'c', 9, 10, 'a'}>>> s &t # 求s 和 t的交集

{3}>>> s ^t #对称差集(项在s或t中,但不会同时出现在二者中)

{1, 2, 'b', 'c', 'a', 5, 9, 10}

3.通过set方法函数对集合进行操作

>>> s = set([3,5,9,10])>>> t = set(['a','b','c',1,2,3])#add(增加元素)

>>> t.add('x')>>>t

{1, 2, 3, 'b', 'c', 'x', 'a'}#remove()可以删除一项:

>>> t.remove('a')>>>t

{1, 2, 3, 'b', 'c', 'x'}>>>len(t)6

#测试 x 是否是 t 的成员

>>> 'x' int

True#测试 x 是否不是 t 的成员

>>> 'x' not int

False#issubset(判断子集)

>>>s.issubset(t)

False#issuperset(判断父集)

>>>s.issuperset(t)

False#返回一个新的 set 包含 s 和 t 中的每一个元素

>>>s.union(t)

{1, 2, 3, 'b', 5, 'c', 9, 10, 'x'}#返回一个新的 set 包含 s 和 t 中的公共元素

>>>s.intersection(t)

{3}

#返回一个新的 set 包含 s 中有但是 t 中没有的元素>>>s.difference(t)

{9, 10, 5}

#返回一个新的 set 包含 s 和 t 中不重复的元素>>>s.symmetric_difference(t)

{'x', 1, 2, 'b', 'c', 5, 9, 10}#在s中添加多项

>>> s.update([10,37,42])>>>s

{3, 37, 5, 9, 10, 42}>>>

变量

变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。

变量在程序中就是用一个变量名表示了,变量名必须是大小写英文、数字和_的组合,且不能用数字开头

在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,例如:

a = 123# a是整数

print(a)

a= 'ABC'# a变为字符串

print(a)

这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Java是静态语言,赋值语句如下(// 表示注释):

int a = 123; //a是整数类型变量

a = "ABC"; //错误:不能把字符串赋给整型变量

和静态语言相比,动态语言更灵活,就是这个原因。

请不要把赋值语句的等号等同于数学的等号。比如下面的代码:

x = 10x= x + 2

如果从数学上理解x = x + 2那无论如何是不成立的,在程序中,赋值语句先计算右侧的表达式x + 2,得到结果12,再赋给变量x。由于x之前的值是10,重新赋值后,x的值变成12。

理解变量在计算机内存中的表示也非常重要。当我们写:

a = 'ABC'

时,Python解释器干了两件事情:

在内存中创建了一个'ABC'的字符串;

在内存中创建了一个名为a的变量,并把它指向'ABC'。

也可以把一个变量a赋值给另一个变量b,这个操作实际上是把变量b指向变量a所指向的数据,例如下面的代码:

a = 'ABC'b=a

a= 'XYZ'print(b)

最后一行打印出变量b的内容到底是'ABC'呢还是'XYZ'?如果从数学意义上理解,就会错误地得出b和a相同,也应该是'XYZ',但实际上b的值是'ABC',让我们一行一行地执行代码,就可以看到到底发生了什么事:

执行a = 'ABC',解释器创建了字符串'ABC'和变量a,并把a指向'ABC':

7eecdbdf6cd8d7eb86954dcbaa7f16bc.png

执行b = a,解释器创建了变量b,并把b指向a指向的字符串'ABC':

57d2442da495085a82e4e9e7540fd0f3.png

执行a = 'XYZ',解释器创建了字符串'XYZ',并把a的指向改为'XYZ',但b并没有更改:

39a555c096dffef2cfa73ca6b59118c9.png

所以,最后打印变量b的结果自然是'ABC'了。

在Python中,有两种除法,一种除法是/,/除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数:

除法是//,称为地板除,两个整数的除法仍然是整数:

Python还提供一个余数运算,可以得到两个整数相除的余数:

>>> 9 / 3

3.0

>>> 9 //3

3

>>> 9 % 3

0

>>> 10 % 3

1

字符串和编码

在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值