Python基础(1)-循环、容器

如何学好一门语言:
1、提高独立思考解决问题的能力:增加自己练习的时间
2、多沟通交流

第一章

创始人:吉多·范罗苏姆(Guido van Rossum) ,龟叔,一名荷兰计算机程序员
Python的优点:简单易学、应用广泛、面向对象
Python:解释性语言(指使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行的语言)

1 注释

注释的作用:注释不是程序,不能被执行,只是对程序代码进行解释说明,让别人可以看懂代码的作用,能够大大增强程序的可读性。
单行注释:#
多行注释:""" """''' '''
##文档说明

# 单行注释:输出helloworld
print('hello world')
"""
双引号的多行注释
这是一首古诗
"""

'''
单引号的多行注释
作者:李白
古诗名:静夜思
'''
print('静夜思')
print('床前明月光,疑是地上霜')
print('举头望明月,低头思故乡')

Pycharm创建python文件自动添加日期作者等信息
自动添加作者、时间信息

$ {project_name} - 项目名称
$ {name} - 新建文件的名称
$ {user} - 当前用户的登录名
$ {date} - 当前系统日期
$ {time} - 当前系统时间
$ {year} - 当前年份
$ {month} - 当月
$ {day} - 当月的当天
$ {hour} - 当前小时
$ {minute} - 当前分钟
$ {month_name_short} - 月份名称的前3个字母
$ {month_name_full} - 一个月的全名

添加完成后,点击 ok 键进行保存。新建python文件就会看到已添加的默认信息。
pycharm自动添加注释信息

2 关键字和标识符

关键字
查看关键字的方式

import keyword
print(keyword.kwlist)

print(help("keywords"))
Here is a list of the Python keywords.  Enter any keyword to get more help.

False               class               from                or
None                continue            global              pass
True                def                 if                  raise
and                 del                 import              return
as                  elif                in                  try
assert              else                is                  while
async               except              lambda              with
await               finally             nonlocal            yield
break               for                 not                 

None

② 标识符
标识符要遵循5个规范(法律层面,必须遵守)!:

(1)见名知意;
(2)由数字、字母、下划线组成,且不能以数字开头;
(3)区分大小写;
(4)不能和关键字同名;
(5)长度没有限制,但是最好不要超过15个字符.

常见命名方法(道德层面)

(1)小驼峰命名法命名(lower camel case): myCompanyName
(2)大驼峰命名法命名(upper camel case): FirstStudentName
(3)下划线方式命名:user_name

命名规范:

(1)【变量名】/函数名/方法名: 所有字母均小写,且单词与单词之间使用下划线连接;
(2)模块名: 所有字母均小写;
(3)类名:遵循大驼峰命名法.

3 变量与数据类型

变量就是用来存储数据的。
变量的定义:变量名 = 变量的值

(1)定义变量后的结尾处不用添加分号;
(2)前面的代码执行会影响到后面代码的结果;
(3)可以通过变量名来访问变量值。

type(x):查看变量类型。
常用数据类型转换
eval()函数:用于把字符串中的数字转换为原数据类型
数据类型
作用:可以给变量定义格式与范围
常见的数据类型:
常见的数据类型

4 输出

print()输出函数,普通输出:输出变量名、值
要给一个字符转义,一般要在字符前添加反斜杠\

\n 换行,将光标移到下一行的第一格
\t 水平制表符,将光标移到下一个水平制表位置
\v 纵向制表符
(在行尾时) 续行符
\ 反斜杠符号
\’ 单引号
\” 双引号
\a 响铃
\b 退格(Backspace)
\e 转义
\000 空
\r 回车
\f 换页

格式化输出方式1:格式化符号输出
在Python中,完整的格式化符号是与%一同使用
格式化输出

# 1.定义变量
name = '小明'
year = 3
money = 6245747645.99
# 2.输出内容
print('我的名字叫%s,工作%d年了,存款有%f元' % (name, year, money))  # %后面是数组(name,year,money)
print('我的名字叫%s,工作%d年了,存款有%.2f元' % (name, year, money))  # 保留两位小数

格式化输出方式2:format简化输出
format简化输出

# -------------10format输出------------
# 定义变量
name="小明"
tel="13855558888"
# 2.foramt输出
# 先写完整数据,再用数值替换
print("我叫{},手机号码是{},请给我打call".format(name,tel))
print("我叫{0},手机号码是{1},请给我打call".format(name,tel))  # 了解

python3.6版本后,为了简化format输出操作,引入了一个简写形式。
print(f"xxxxx{变量名1}xxxxxxxxx{变量名2}xxxxxxxxx")

print(f"我叫{name},手机号码是{tel},请给我打call")

结果都是:我叫小明,手机号码是13855558888,请给我打call

5 输入

作用:通过键盘输入内容值
语法:input("输入提示内容")

1:当没有输入内容完毕,则程序会阻塞直到输入内容结束;
2:input()后面可以添加一些提示信息,便于提示如何操作;
3:可以把input()接收的结果给一个变量,并使用变量来接收结果值;
4:input()接收的所有内容结果类型是字符串str.

passward = input("请输入密码:")
# 输出
print(f"密码是:{passward}")
print("密码是:%s"%passward)

运行结果:
在这里插入图片描述
如果需要用input获取int支付类型需进行转换

# -------------14-input存在的问题-------------
name = input("请输入商品名称:")
price=float(input("请输入单价价格:"))
# 求总价
tatal_price = price*3
# 输出
print(f"您购买了3份{name},总计价格为{tatal_price}元,请您尽快支付!!!")

第二章:Python流程控制

1 运算符

(1)算术运算符:+、-、*、/、//[取整数]、% 、** [次幂:x**y表示返回x的y次幂(次方) ];
算术运算符

# 求梯形面积:1.定义变量
a=int(input("请输入上底值:"))
b=int(input("请输入下底值:"))
c=int(input("请输入高值:"))
# 2.求面积
area=(a+b)*c/2
# 3.输出结果
print(f"求解梯形的面积为:{area}")

(2)赋值运算符:=[赋值号]、(+=、-=、*=、/=、//=、%=、**=)复合赋值运算符;
赋值运算符

# 赋值运算符求解圆的面积:1.定义变量
pi = 3.14
r = float(input("请输入圆的半径:"))
# 2.求解
s = pi * (r ** 2)
# 3.输出
print("圆的面积为:%f" % s)

(3)比较运算符:>、<、>=、<=、 == (等号)、!=;
结果总是布尔型(即结果为True或False)的,单独的比较运算符是没有意义的。会与条件判断、逻辑运算配合使用!
比较运算符

(4)逻辑运算符:not(非)、and(与)、or(或)。
逻辑运算符运行的两端都是布尔值,单独逻辑运算没有意义,会与条件判断进行配合使用
逻辑运算符
(5)运算符的优先级
1:先乘除,后加减;
2:适当添加()提高可读性;
算数运算符的优先级

2 if基础语法

三大基本语句:开发中通常混合使用
顺序语句:从上往下依次执行
分支语句:根据条件的不同,执行不同的代码
循环语句:让代码反复多次执行,也可以设置终止循环的关键字或条件break、continue

3 较为复杂的if语法

两种复杂:
① 分支语句:-if elif else
格式:

if 条件1: # 1.条件的结果总是bool; 2.结尾处:的下一行代码的开始处必须强制缩进
满足条件1,执行代码1

elif 条件2:
满足条件2,执行代码2

elif 条件3:
满足条件3,执行代码3


[else:
不满足上述所有条件,执行代码
…]

# 1.定义变量
score = float(input("请输入成绩:"))
# 2.判断并输出
if 0 <= score < 60:
    print(f"您的成绩为:{score},不及格")
elif 60 <= score < 70:
    print(f"您的成绩为:{score},及格")
elif 70 <= score < 90:
    print(f"您的成绩为:{score},良好")
elif 90 <= score <= 100:
    print(f"您的成绩为:{score},优秀")
else:
    print(f"您的成绩为:{score},成绩不合法")

if嵌套语句

# if嵌套语句写法
# 1.定义变量
score = float(input("请输入成绩:"))
# 2.判断并输出
if 0 <= score < 100:
    if 60 <= score < 100:
        if 60 <= score < 70:
            print(f"您的成绩为:{score},及格")
        elif 70 <= score < 90:
            print(f"您的成绩为:{score},良好")
        else:
            print(f"您的成绩为:{score},优秀")
    else:
        print(f"您的成绩为:{score},不及格")
else:
    print(f"您的成绩为:{score},成绩不合法")

# 1.定义变量
tickets = 0
knife_length = 25
# 2.外层if判断
if tickets > 0:
    # 3.内层判断
    print("有车票,可以进站了")
    if knife_length > 15:
        print("管制刀具长度过长,无法通过安检")
else:
    print("没有车票无法进站")

② 循环语句 -循环: while、for; 特殊控制:break、continue

4 while循环

程序里的循环

i = 0
while i <=9:
    print(i)
    i += 1

格式:

初始化变量语句
while 循环条件:
循环体语句
改变循环条件的语句 # 先写,以免进入死循环

while循环应用
eg:求1到100的总和:

# 正向
total_sum = 0
i = 0
while i <= 100:
    # print(i)
    total_sum += i
    i += 1
print(f"求和为:{total_sum}")

# 逆向
total = 0
j = 100
while j >= 1:
    total += j
    j -= 1
print(f"求和为{total}")

死循环&&无限循环
1:缺少了"改变循环条件的语句";
2:误写了循环条件;
3:死循环的标准格式:

while True:
代码1
代码2
...
i=0
while i<=10: #一直为True
    print('hello world')

while True:
    print("hello world")

5 其他循环语句

5.1 for循环

跟while循环一样,for循环也能完成反复多次的执行。
for循环的格式:

for 临时变量 in 列表或字符串等序列:
循环满足条件时执行的代码

range(x,y):一个序列,专门用于给for循环使用。 从x到y的取值范围,[x,y) 能获取到x值但获取不到y的值

# 1.0-4
for temp in range(0,5):
    print(temp)
# 2.hello world -与else搭配使用
for temp1 in "hello world":
    print(temp1)
else:
    print("已循环执行结束")

ps:数字不是序列
iterable # 扩展:送代、循环、遍历 ====>循环
TypeError: 'int' object is not iterable
error:TypeError: 'int' object is not iterable

5.2 嵌套循环

在这里插入图片描述
不建议超过两层,时间复杂度较高

# 1.输出行,外层循环控制行
i = 1
while i <= 5:
    # 2.输出列,内层循环控制列
    j = 1
    while j <= 5:
        print("*", end="\t")
        j += 1
    print("")
    i += 1

执行结果如下:
在这里插入图片描述

eg:九九乘法表while循环

# 行
i = 1
while i <= 9:
    # 列
    j = 1
    while j <= i:
        print(f"{j}*{i}={i * j}", end="\t")
        j += 1
    print("")
    i += 1

eg:for循环

# 行
for i in range(1, 10):
    # 列
    for j in range(1, i + 1):
        print(f"{j}*{i}={i * j}", end="\t")
    print("")

执行结果如下:
python九九乘法表

5.3 break 跳出循环

break语句是改变程序流程控制的语句【特殊语句】,主要是用于终止某个循环语句块的执行。break的语法格式如下:

循环语句块
……
break # 跳出循环
其他语句
# 1.循环
i = 1
while i <= 50:
    print(f"正在跑第{i}圈")
    if i == 10:
        print(f"身子不适停止跑步")
        # 2、跳出循环
        break
    i += 1

运行结果如下:
break语句的使用

5.4 continue 中断

continue语句也是改变程序流程的语句之一,多用于跳过某个循环语句块的一次执行,然后继续执行下一轮的循环。continue的语法格式如下:

循环语句块
……
continue
其他语句

continue:中断,会跳过循环的一次执行,然后继续下一轮的循环执行.

# 1.定义变量 for语句
for temp in range(1, 5):
    print(f"---------------------")
    if temp == 2:
        continue  # 跳过循环的单次执行,继续下一轮的循环执行
    print(temp)

执行结果如下:
在这里插入图片描述
总结:break、continue

1:break语句会跳过当前循环的整个循环,终止;
2:continue语句会跳过当前循环的一次循环,然后会继续下一轮的循环执行;
3:break和continue只能应用在循环语句中,不能应用于其他地方;
4:break不能跳出所有循环,如多层嵌套循环

while xx:
	while xxx:
		break

应用:猜拳游戏

import random
# 1.显示界面
print("==========猜拳小游戏v1.0==========")
# 2.玩家出拳
print("可以选择出拳的方式有:")
print("\t(1)石头")
print("\t(2)剪刀")
print("\t(3)布")
print("退出游戏请输入0")
while True:
    player=int(input("请输入您的出拳:"))
    # 3.电脑
    computer=random.randint(1,3)
    # 4.判断
    if(player==1 and computer==2) or (player==2 and computer==3) or (player==3 and computer==1):
        print("恭喜您,获得胜利啦~")
    elif player==computer:
        print("噢吼,平局了~")
    elif player==0:
        print("游戏退出成功!")
        break
    else:
        print("哎呀,你输了")

第三章 python容器

1 字符串str " "

使用双引号引起来的内容

# 1.字符串变量
a="python"
print(a)
print(type(a))

1.1 字符串拼接:

① + 字符串连接符

s1 = "hello" + str(777)
print(s1 + "666")

结果如下:
字符串拼接
字符串只能和字符串数据拼接

s2 = "hello" + 777  # 报错

s2 = "hello" + 777 TypeError: can only concatenate str (not "int") to str,字符串只能和字符串数据拼接

1.2 索引

索引有时也称为下标、编号。
格式:变量名[索引值]
len(s):返回变量s的长度或元素个数。
(1)长度值是从1开始计算的;
(2)索引与长度的关系可表示为:【最大索引值 = 长度 - 1】;
(3)当使用超出最大索引的值去访问字符串的元素,会报错。
eg:获取字符串长度及其最后一个字符

# 1.定义变量
strs="helloworld"
# 2.获取元素
print(strs[0])
print(strs[5])
# 3.长度
print(len(strs))
# 4。访问最后一个元素
print(strs[9])
print(strs[len(strs)-1]) # 更灵活

1.3 切片!

切片指的是:截取字符串中的一部分内容
格式:[起始:结束:步长] 步长可省略,默认为1
说明:
(1)切片语法选取的范围是左闭右开型,即==[起始, 结束)==;
(2)注意:截取内容时,包含起始位,但不包含结束位。
(3)切片操作适用于所有序列的操作,比如对字符串、列表、元组等

# 1.定义变量
strs= "helloITHEIMA"
# 2.截取字符串中2-4位
print(strs[1:5])
# 3.获取字符串第2-end位
print(strs[2:len(strs)])
print(strs[2:12])
# 4/2-倒数第二
print("2到倒数第二位:"+strs[2:10])
print(strs[2:len(strs)-2])
print(strs[2:-2])
# 5.首位到第三位
print(strs[0:3])
print(strs[:3])
# 6 1 8 2跳着来
print(strs[1:8:2])

对字符串反转

print(strs[::-1])

1.4 字符串的遍历

使用for或者while遍历字符串中所有元素

strs="ABCDE"
# 使用for遍历
for temp in strs:
    print(temp)
for temp in strs:
    print(temp)
else:
    print("所有元素遍历结束")
# 逆向遍历
# 1. 定义变量
strs="ABCDE"
# 2.使用while循环
i=(len(strs))-1
while i>=0:
    # 3.访问元素
    print(strs[i])
    i-=1
print("所有元素遍历结束")

总结:
(1)如果想快速获取字符串的所有元素,可以直接使用for循环;
(2)注意:使用for语句遍历字符串时,无法直接显示索引值。
(3)可以使用for或while来遍历字符串,但优先考虑使用(for)循环来遍历

1.5 常用操作方法

① 查找元素
字符串的查找方法指的是查找元素(或子串)在字符串内容的索引位置。查找方法有:
查找元素

name = "hello world and study and html and Python"
print(name.find("and"))
print(name.index("and"))
# 对比find
print(name.find("888")) #稳定
# print(name.index("888")) #报错

# 4.从右往左 right
print(name.rfind("and"))
print(name.rindex("and"))

# 总次数
print(f'and出现的总次数{name.count("and")}')

② 修改元素
字符串的修改方法,指的是修改字符串中的数据。
修改元素

strs = " hello python good good study "
# 2.替换
ret1 = strs.replace(" ", "666")
print(ret1)
# 3.分割、切割
ret2 = strs.split("o")
print(ret2)

# 4.去掉空白
result = strs.strip()
print(result)
result1 = strs.rstrip()
print(result1)
result2 = result1.lstrip()
print(result2)

总结:
(1)当要对字符串文本内容进行替换数据时,可以使用(replace())方法;
(2)注意:split()常应用与分割字符串数据内容。

2 列表list[ ] (可变)

使用[ ]表示的内容,列表中可以存在多种不同类型的数据,且列表的长度会随着添加数据的变化而变化
格式:变量名 = [元素1,元素2,元素3,...]

# 2.列表
b=["hi","python"]
print(b)
print(type(b))

2.1 添加元素

append(x):在列表结尾处,添加数据内容x。(添加一个元素)
insert(index, x):在列表索引index处,新增一个元素x。
extend(x):给列表添加另一个列表的所有元素内容,并形成一个完整列表。(添加多个元素)
eg:给列表添加元素

country_list=["中国", "美国", "英国", "俄罗斯"]
print(f"原始数据:{country_list}")

# 2.添加一个元素到结尾
country_list.append("德国")
print(country_list)

# 3.在美国元素后添加
country_list.insert(2,"日本")
print(country_list)

# 4.添加一个列表多个元素
lists=["100","200","300"]
country_list.extend(lists)
print(country_list)

# 5.扩展,append添加一个元素,嵌套添加进去
country_list.append(lists)
print(country_list)

2.2 删除元素

remove(x):删除列表元素值x。
del 变量名[索引]:根据索引值,删除列表的某个元素。

# 1.定义列表的变量
country_list=["中国", "美国", "英国", "俄罗斯"]
print(f"原始数据:{country_list}")
print(f"原始长度:{len(country_list)}")

# 2.remove()删除
country_list.remove("英国")
print(f"删除英国后的数据:{country_list}")
print(f"删除后的长度:{len(country_list)}")

# del删除
del country_list[1]
print(f"删除美国后的数据:{country_list}")
print(f"删除后的长度:{len(country_list)}")

# 扩展,删除最后一个元素
country_list.pop()
print(f"删除最后一个元素:{country_list}")
print(f"删除最后一个元素:{country_list[:-1]}")

运行结果如下:
在这里插入图片描述

2.3 修改元素

用的较少了解即可
变量名[索引] = 值:根据索引值,来修改列表中的某个元素值。

# # 1.定义列表的变量
country_list=["中国", "美国", "英国", "俄罗斯"]
print(f"原始数据:{country_list}")

# 2.修改中国
country_list[0]="中华人民共和国"
print(country_list)

# 2.修改俄罗斯
country_list[-1]="Russia"
print(country_list)

2.4 查找元素

len(s):返回s的长度或元素个数。
in:判断指定数据是否在某个列表序列中。如果在就返回True,否则返回False。

ip_lists=["192.168.1.15", "10.1.1.100", "172.35.46.128","172.32.24.99"]
# 2.获取长度
print(len(ip_lists))
# 3.判断是否是黑名单
temp_ip = input("请输入IP地址:")
if temp_ip in ip_lists:
    print("Forbidden 403,您被禁止访问了!!!")
else:
    print("欢迎您!!!")

2.5 排序元素

reverse():将列表进行倒序,即输入顺序与输出顺序相互倒过来。
sort([reverse=False]):对列表进行从小到大排序。当设置reverse=True可改为由大到小排序。

# 1.定义变量
data =[10,200,20,100,20,0]
# 2.倒序
data.reverse()
print(data)

# 3.从小到大排序
data.sort()
print(data)

# 4.从大到小排序
data.sort()
data.reverse()
print(data)

data.sort(reverse=True)
print(data)

3 元组tuple()

使用( )表示的内容

# 3.元组
c=("hi","python",)
print(c)
print(type(c))

注意:元组的定义,元组只有一个元素时定义应多加一个逗号
在这里插入图片描述
元组的内容可以查询,但不能增删改
eg:1.定义变量

source=("python","Linux","MySQL","Hadoop")

测试修改数据:不支持修改,运行结果如下:

    source[0]="java"
TypeError: 'tuple' object does not support item assignment

测试删除数据:不支持删除,运行结果如下:

    del source[1]
TypeError: 'tuple' object doesn't support item deletion

元组的应用场景
元组的主要用途有存储数据、传递元组数据

# 拼接
name = "Auyang"
age = 18
hight = 162.00
print("姓名:%s,年龄:%d,身高:%fcm" % (name, age, hight))

# # 互换位置
a = 18
b = 99
a, b = b, a
print(a)
print(b)

# 按位异或
a = a ^ b
b = a ^ b
a = a ^ b
print(f"a={a}")
print(f"ab={b}")

4 字典dict {} (可变)

使用{ } 表示的内容,且元素形式为键值对
格式:变量名 = {键1: 值1, 键2: 值2, ...}

# 4.字典
d = {"name":"python", "age":30}
print(d)
print(type(d))

get(key[, default]):返回指定键key对应的值,若值不在字典中,则返回默认值。

student={"name":"Auyang","address":"中国","age":18}
# 获取值
print(student["name"])
print(student["address"])
# 3.访问不存在的值
print(student.get["sex"])  # 报错 TypeError: 'builtin_function_or_method' object is not subscriptable
print(student.get("sex"))
print(student.get("sex","女"))  # 1.None,如果有值获取值,没有使用默认值

[掌握]添加元素

teacher={"name":"tboy","weight":"95","age":"18"}
print(teacher)
# 2.添加一个元素
teacher["gender"]="男"
print(teacher)
# 3.空字典添加2个元素
teacher={}
teacher["name"]="aboy"
teacher["like"]="爱好工作"
print(teacher)

[了解]删除元素
del 变量名[键]:删除指定元素。
clear():清空字典的所有元素内容。

teacher={"name":"tboy","weight":"95","age":"18"}
# 删除数据
del teacher["weight"]
print(teacher)
# 清空数据
teacher.clear()
print(teacher)

修改元素
变量名[键] = 值

# 1.定义变量
teacher={"name":"tboy","weight":"95","age":"18"}
# 修改姓名
teacher["name"]="cboy"
# 修改体重
teacher["weight"]=110
print(teacher)

查找元素
get(key[, default]):返回指定键key对应的值,若值不在字典中,则返回默认值。

teacher={"name":"tboy","weight":"95","age":"18"}
print(teacher["name"])
print(teacher.get("age")) #若报错,则优先考虑使用get()

字典的遍历
keys0、values0和items()方法。

datas={"name":"bboy","adress":"china","age":"134"}

# print(datas.keys())
# for key in datas.keys():
#     print(f"{key} --> {datas.get(key)}")

# 3.item()
# for temp in datas: #默认是keys()
#     print(temp)

# for value in datas.values():
#     print(value)
#
# for item in datas.items():
#     print(item)

for item in datas.items():
    key=item[0]
    value=item[1]
    item=item
    print(key,value)

生成验证码案例

import random
strs="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
code=""
for temp in range(6):
    index=random.randint(0,len(strs)-1)
    text =strs[index]
    # print(text)
    code+=text
print(code)
message=f"验证码{code},用于手机验证码登录,5分钟内有效。验证码提供给他人可能导致账号被盗,请勿泄露,谨防被骗。"
print(message)

5 集合(可变)

可变类型:列表、字典、集合
集合是无序的(输入、输出);不能有重复数据(自动去重)

# 定义集合
sets={1,2,33,"hello",100,100,100}
# 输入此集合
print(sets)                 # {1, 2, 3, 100, 'hello'}(自动去重)
print(type(sets))           # <class 'set'>

利用集合去重

# 1.定义列表 重复元素
lists=[1,2,3,4,4,3,546,6,7,865,4,3,45,345,99,99,99,9,9,8,100,100,100]
# 先转换为集合,转换为集合的时候会自动去重
sets=set(lists)
print(sets)
# 再转换为列表
result=list(sets)
print(f"去重的结果:{result}")
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值