学习Python的代码记录

#0925-第三关 if条件语句

answer=input ('''人在烦躁的时候要怎么办?你有三个选项,请回答1、2、3、4    ''')
if answer=='1':
    print('没有什么是一杯酸奶解决不了的')
elif answer=='2':
    print('你可以多跑几圈')
elif answer=='3':
    print('写写日记和自己对话吧')
else:
    print('那就坐着发呆吧')

#0928-第四关 布尔值
#1.布尔值的使用情况:两个数值在比较时会产生布尔值; eg. ‘长安’==‘长安’; ‘长安’!=‘金陵’;<;>;>=;<=
#2.数值本身作为一个条件,被判断真假; eg. 整数1在if条件中作为一个条件,被判断为真; 【假的:0;’’;[];{};none】
#3.布尔值的运算;eg.or;and;not

a=input('对方长得好看吗?')
b=input('对方善良吗?')
if a=='好看' and b=='善良':
    print ('那就嫁给他吧')
else:
    print ('不要在一棵树上吊死~')

#0928-第五关 while循环
#难度 低【仅有while循环】
man=’’ #定义了变量man为空的字符串。使用变量前要先定义变量并为变量赋值
while man!='有': print('没有人愿意为了小龙女去死的话,那么小龙女不能出山') man=input('有没有人愿意为了小龙女去死?') print('小龙女可以下山了~')#while循环结束后的代码,即循环外部的代码。因为当有人愿意为她去死的时候,while后面的条件就是假的,此时程序就会结束循环,运行外部代码

#难度 中【while循环中有break】

while True: #【True作为一个条件时,被判断为真。因为真永远真,所以while true就代表无限循环的意思】
    print ('Leo苦命还花呗ing')
    help=input('Leo的生活费到了吗?')
    if help=='到了':
        break #【如果if后面的条件被满足,那么执行下面的break;否则,回到while true继续循环。break表示循环结束,即去执行循环外部的代码】
print('Leo终于可以依靠生活费还花呗了')

#exit() 也可以作为程序终止的代码 代替break
#如果不小心写了循环代码,可以用【ctrl+c】来强制结束程序

#难度 高【while循环中有continue】
#continue子句是在while循环内部使用的,当某个条件被满足时,下面的代码就不执行了,而是直接回到while循环的开始。

while True:
    a=input('你是间谍吗?')
    b=input('你是间谍吗?')
    if a=='是' and b=='是':
        break
    else:
        continue
print('你们都免罪释放')

#0928-第六关-复习总结
#【例题:1-100的加总】

a=1
sum=0
while a <101:
    sum=sum+a
    a=a+1#这一行和上面那行不能变换顺序
print (sum)

#int()和str()

a=int(input('请你输入妈妈的年龄'))
b=100-a
print('你还可再陪妈妈'+str(b)+'年')

#0928-第七关-列表和字典
#列表[]的索引是从0开始的;[1:]指打印列表里面第1个和此之后的所有元素;[:4]指打印列表的第2个和此之前的所有元素;[1:4]指打印列表的第1、2、3元素
#追加 a.append(‘5’) 指把数据5加入列表的尾部

#字典{}里的数据是一一对应的关系

catologue={'全家饭团':7.5,'sandwich':6.5,'canteen diets':11}#"全家饭团"是"键";"7.5"是”值“
#以上字典表述可以用列表表示为:
catologue=['全家饭团','sandwich','canteen diets']
price=[7.5,6.5,11]

#1010-第八关-for循环
#字典、列表、字符串都可以放在循环中作为可迭代对象,可以被遍历
#for循环经常和range()函数一起使用, 以确定具体的循环次数;其中range(t)可以生成从0到t-1的整数序列

广东=['榴莲酥','双皮奶','马拉糕','杨枝甘露']
四川=['红糖糍粑','冰粉','米花糖','蛋烘糕']
江南=['青团','桂花糕','酒酿圆子','糖芋苗']
foodlist=[广东,四川,江南]

for i in foodlist: 
    for l in i:
        print (l)
        question=input('夫人这是你想吃的吗?')
        if question=='是':
            print ('好的!我明天就给你买'+l)

            exit()
print('我再去找其他好吃的,给夫人吃')

#1010-第九关-函数
#def的意思是定义,return的意思是返回,就是你给一个参数给函数,函数就会返还一个值给你

def niduoda(age):
    if age < 12:
        return '是小朋友啊'
    elif age < 18:
        return '是少年啊'
    else:
        return '嗯,永远18岁'

n = niduoda(30)
print(n)

#第一点:在一个函数内定义的变量仅能在函数内使用,这叫局部变量。
#第二点:在函数外定义的变量,可以在程序的任何位置使用,这叫全局变量。
#可以直接在网上搜索【图片转ascii】,也可以把你喜欢的形象转为ascii的图案。

import time
time.sleep(1)
#关于控制流中的处理异常问题,用try...except...
num = [0,1,2,3]
for x in num:

try:

在try内部,我们可以使用input() 函数,来获取用户的数据,然后如果输入的不是数字,就属于ValueError,except后面的是ValueError,你可以参照着try…except的语法来写:
#尝试执行下列代码

print (6/x)
        #使用6除以num中的元素,并输出
    except ZeroDivisionError:#这一条很重要,是报错后的Python提示!
    #除非发生ZeroDivisionError报错,执行下列代码:
        print('0是不能做除数的!')
        #打印“0是不能做除数的!”

#或者是

【1.except后面什么也不跟,直接加冒号。意味着,只要报错就执行下面的代码,不管是什么错误类型。

#2.报错后执行的代码,你也可以只写一个’pass’】
except: #如果发生报错,不管是什么错,都执行下列代码:
pass #啥也不干,接着走下一轮循环吧

#1010-第十关-编码
#比如编码print(‘princess’.encode(‘utf-8’))【uft-8可以换为gbk、ASCII】
#比如解码print(b’\xce\xe2\xb7\xe3’.decode(‘gbk’))
#使用ord()的方法,来获取单个字符的十进制整数编码。如 print(ord(‘柔’))【ord与chr相反】

#1011-第十一关-文件读写----乱七八糟

#【读文件示例】
file1 = open('/Users/Leona/Desktop/python practice/1.py', 'r',encoding='utf-8') #【r是读,w是写】
filecontent = file1.read()  
file1.close() #【关闭文件】

#【写文件示例】
#file1 = open(’/Users/motanyuan/Desktop/abc.txt’, ‘w’,encoding=‘utf-8’)
#file1.write(‘张无忌\n’) 把字符串"张无忌"写入文件file *【\n】这个转义字符的作用,就是“另起一行”
#readlines() 会从txt文件取得一个字符串的列表,列表中的每个字符串就是abc.txt中的每一行。而且每个字符串后面还有换行的\n符号
#data =i.split() #把字符串切分成更细的一个个的字符串
#join(),是把字符串合并;
如:
a=[‘h’,‘e’,‘r’]
b=’’
print(b.join(a)) #her
c=’-’
print(c.join(a)) #h-e-r

#1012-第十二关-类和对象
#类由人去定义——这一点和函数很像。只是把“def”变成“class”。然后在这个类里面,去定义属性,去定义方法。
#a.append(‘defg’) 给列表a追加元素’defg’

class Food():
#定义一个食物的类别
    delicious = True
    #属性“好吃”为真
    def taste(self,people):
    #定义一个“品尝”的方法,参数有两个。其中self是系统预设关键词,代表的是这个对象本身,调用该方法时可省略这个参数的填写。
    #people是吃食物的人。
        print(people,'说:真香!')
        #输出people,'说:真香!'
zhaji = Food()
#定义一个食物,炸鸡
print(type(zhaji))
#输出食物炸鸡的数据类型
print(zhaji.delicious)
#输出食物炸鸡的delicious属性
zhaji.taste('wufeng')

#1012-第十二关-来复习吧!–基础知识over

for i in range(0,3):
    print('R')

#1012-第十四关-requests模块
#3Q:模块能做什么?需要我输入什么?得到的对象有哪些属性和方法可用?
#wins+R打开命令提示窗口,输入pip install +模块名 即可安装模块
#3A:requests模块用来Get下载东西;需要我输入一个网址;有text和content可用

import requests #引用requests模块
sanguo = requests.get('https://static.pandateacher.com/sanguo.md') #下载《三国演义》,赋值给sanguo
k = open('《三国演义》.txt','w')
#创建一个名为《三国演义》的txt文档
for words in sanguo.text:
#回想一下,循环那里的知识。sanguo.text是字符串,是可遍历的
    try:
    #尝试执行下面的内容。在学习处理异常时,我们了解过try……except……的用法
        k.write(words)
    except:
    #出现报错,则执行:
        pass
        #跳过。pass的意思,就是什么也不执行,通常起占位作用,保证程序格式完整
        #网络上的电子书常有乱码,会导致不能写入报错。所以我们加一个跳过异常防止意外
    continue
    #继续循环
k.close()
#关闭文档

或直接print(sanguo.text[:30]) #response对象有一个方法是text,可以提取文本;【:30】是指只提取前30个字
#因此,给变量名后面加.text是输出文本。如果你下载的是网页源代码,或者是一个txt格式的电子书,那么这种方式会很好用。
#.content获取二进制内容,不丢失数据,可以下载图像和音频

response=requests.get('https://gratisography.com/thumbnails/gratisography-318-thumbnail.jpg')
pic = open('photo.jpg','wb')
#图片内容,需要以二进制wb读写。你在学习open()函数时接触过它。
#你看到这里的文件没加路径,它会被保存在程序运行的当前目录下。
pic.write(response.content)
#不同于.text是获取文本内容,.content是获取二进制内容,不会产生数据丢失或乱码。
#这行代码,是将response写入pic内。

#1012-第十五关-HTML基础
#推荐用谷歌浏览器,ctrl+u查看网页源代码;或用 右键-检查(ctrl+shift+i);再点击左上角的箭头(ctrl+shift+c)
#html中,是开始标签,是结束标签

#1013-第十六关-json模块
#打开周杰伦的QQ音乐界面之后,进入检查-Network。有用的数据分类包括ALL(查看全部);XHR(仅查看XHR);Img(仅查看图片);Media(仅查看媒体文件)
#歌名就藏在XHR里面
#在Python当中有这样一个模块,它的名字叫json。它的技能是text进去(即输入字符串text),(返回)列表/字典出来。
#[headers]-[general]-[request url]里面的链接,是这个XHR所真正访问的链接。【注意修改地址】

import requests,json
#引用json,json是一种跨平台的轻量级数据交换语言。这是一个系统预装模块,你不需要手动安装。
url = 'https://c.y.qq.com/soso/fcgi-bin/client_search_cp?ct=24&qqmusic_ver=1298&new_json=1&remoteplace=txt.yqq.song&searchid=60997426243444153&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p=1&n=20&w=%E5%91%A8%E6%9D%B0%E4%BC%A6&g_tk=5381&loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq.json&needNewCode=0'
#打开我们新抓取到的网址---XHR真正访问的链接
res = requests.get(url)
#下载该网页,赋值给res
jsonres = json.loads(res.text) #requests模块把网页变成字符串(有时也需要我们拿bytes数据手动转成字符串),json模块接过来字符串把它变成列表/字典,如此你就读懂了XHR。
#使用json来解析res.text
music = jsonres['data']['song']['list']
#一层一层地取字典,获取歌单的列表
for x in music:
#music是一个列表,x是它里面的元素
    print('歌曲名:'+x['name'])
    #以name为键,查找歌曲名。
    print('所属专辑'+x['album']['name'])#查找专辑名
    print('播放时长'+str(x['interval'])+'秒')#查找播放时长

#1016-第十七关-带参数地请求数据
#requests模块:requests.post函数向服务器传输数据;需要输入网址,或者是待上传的数据;会返回一个对象,有text和content两个方法
payload = {‘key1’: ‘value1’, ‘key2’: ‘value2’}
#把待上传的数据封装进一个字典

r = requests.post("http://httpbin.org/post", data=payload)
#post函数需要两个参数,一个是网址,一个就是我们刚才封装好的那个字典,赋值给data。

url = 'https://api.github.com/some/endpoint'
#网址
headers = {'user-agent': 'my-app/0.0.1'}
#把User-Agent的信息写成一个字典
r = requests.get(url, headers=headers)
#get函数需要两个参数,一个是网址,一个就是我们刚才封装好的那个字典,赋值给headers。

#1016-第十八关-BeautifulSoup模块(上)
#BeautifulSoup可以解析html网页源代码,即解析,查找,提取;json可以解析XHR
#存在于urllib库里的quote()函数,可以把gbk/utf-8编码的结果,转换成网址的样子
#bs4.BeautifulSoup(),用于解析html,需要输入网页源代码(x.text)html解释器(html.parser),有select()方法可以用

#import bs4
#bs=bs4.BeautifulSoup(text,'html.parser')
import requests,bs4
#引用requests和bs4(BeautifulSoup4的缩写),如果没有安装bs4,可以使用pip install beautifulsoup4下载。 
from urllib.request import quote#从urllib库的request模块里,去调用quote函数。
#quote函数,可以帮我们把内容转为标准的url格式,作为网址的一部分打开。
movie = '水形物语'
gbkmovie=movie.encode('gbk')
#将汉字,用gbk格式编码,赋值给gbkmovie。
urlmovie = 'http://s.ygdy8.com/plus/so.php?kwtype=0&searchtype=title&keyword='+quote(gbkmovie)
#将gbk格式的内容,转为url,然后和前半部分的网址拼接起来。
res =requests.get(urlmovie)#下载“《水形物语》的搜索结果页”,赋值给res。 拿到源代码
print (type(res))#通过之前的学习,你已经知道res是一个对象,所以结果是:<class 'requests.models.Response'>。这一行代码只是帮你理解,实际上它不是必要的。
bsmovie = bs4.BeautifulSoup(res.text,'html.parser')
#res.text是网页的源代码,html.parser是调用python的内置html解释器。这样,我们就创造了一个BeautifulSoup的对象,命名为bsmovie。
print (type(bsmovie))

#因为bsmovie是一个对象,跑出来的结果是<class ‘bs4.BeautifulSoup’>。
##注:我们平时使用浏览器上网,是服务器发过来一个原始数据,浏览器负责解析成我们最后看到的东西。但是在爬虫中,这件事就要由BeautifulSoup来代劳。它需要一个解析器帮助它来读懂数据,只有它先读懂,才能接着听我们的指挥,要什么给什么,而"html.parser"就是那个解析器。

link = bsmovie.select('.co_content8 b a')
#你能看出它的意思是:匹配class属性的值为co_content8的元素,在它的内部再查找名为<b>的元素,在<b>元素里再找标签为<a>的元素。
print (type(link))
print (len(link))
print(type(link[0]))
print(len(link))
print(type(link[0])) #Tag对象本身可被print
print(str(link[0]))#将Tag对象转为字符串
#虽然Tag本身就可以print,但是当作为字符串print的时候,可以作为BeautifulSoup的参数,可以再解析一次)
print(link[0].get('href'))#【第0个元素,属性href的值---就是我们想要的网址链接!!】
print(link[0].getText())#去掉标签和去掉属性,元素内的文本内容
print(type(link[0].attrs))#提取属性以及属性的值,会是一个字典

#1016-第十九关-BeautifulSoup模块(下)

link = bsmovie.select('.co_content8 b a')
finallink='http://www.ygdy8.com'+link[0].get('href')
print(finallink)
xiazai=requests.get(finallink).content.decode('gbk')#使用requests模块,拿到电影下载页的源代码。使用content方法,拿到bytes数据,再进行decode,此时xiazai是字符串
bsxiazai=bs4.BeautifulSoup(xiazai,'html.parser')#解析网页。因为此时的xiazai已经是字符串,所以就不需要加text。
download=bsxiazai.select('table tbody tr td b a')#查找目标
for x in download:
    print(x.get('href'))
print(download[0].get('href'))#打印出第一个下载链接
print(download[1].get('href'))#打印出第二个下载链接

#1018-第二十关-复习

#1018-第二十一关-用python发邮件
#用python内置的模块smtplib可以满足;在浏览器里搜索关键词“smtplib python(教程)”
#smtplib模块能做什么?连接服务器、登录邮箱、发送邮件、推出服务器;要输入给模块的是两个参数:一个是电子邮箱的服务器域名,一个则是端口
#浏览网页使用的是http(超文本传输)或者https(超文本传输安全)协议;下载文件(比如下载电影)使用了ftp(文件传输)协议;发送邮件也有一个专属的协议,就是smtp(简单邮件传输协议)

import smtplib
#smtplib是python的一个内置模块,所以不需要你用pip安装
qqmail = smtplib.SMTP_SSL('smtp.qq.com',465)#或者写成(...587,'utf-8')

qqmail = smtplib.SMTP('服务器地址',端口)

#如果端口是用TLS加密,请这样写代码。其中qqmail是变量名。
qqmail = smtplib.SMTP_SSL('服务器地址',端口)
#如果端口是用SSL加密,请这样写代码。其中qqmail是变量名。

#如下是smtp对象的登录方法 只限英文

import smtplib
qqmail = smtplib.SMTP_SSL('smtp.qq.com',465)
#如果出现编码错误UnicodeDecodeError,你可以这样写:qqmail = smtplib.SMTP_SSL('smtp.qq.com',465,'utf-8')
account = input('请输入你的邮箱账号:')
password = input('请输入你的邮箱密码:')
#如果是QQ邮箱,你需要输入授权码,或者是独立密码。
qqmail.login(account,password)
recipient = input('请输入收件人邮箱,有多个邮箱请用空格分开:')
#输入收件人
recipient = recipient.split()
#将上面输入的字符串,用空格做切分,转换成列表
theme = 'Subject:'+input('请输入邮件主题:')
#输入邮件主题,主题要用Subject标记。请用英文来写这封邮件,晚点再告诉你原因。
text = '\n\n'+input('请输入邮件正文:')
#输入邮件正文,正文和主题之间要用两个换行。请用英文来写这封邮件,晚点再告诉你原因。
qqmail.sendmail(account,recipient,theme+text)
#发送邮件需要三个参数:发件人,收件人,邮件内容——包含主题和正文。
qqmail.quit()
#断开服务器连接

#以下为中文改版

import smtplib
from email.mime.text import MIMEText
from email.header import Header
qqmail = smtplib.SMTP_SSL('smtp.qq.com',465)
#以上,登录服务器
account = input('请输入你的QQ邮箱:')
password = input('请输入你的邮箱密码:')
qqmail.login(account,password)
#以上,是登录邮箱
theme = input('请输入邮件标题:')
text = input('请输入邮件正文,使用<br>换行:')
recipient = input('请输入收件人邮箱,多个发件人使用空格隔开:')
recipient = recipient.split()
sender = input('请输入发件人昵称(可跳过):')
#以上,是输入内容
message = MIMEText(text,'plain','utf-8')#使用MIMEText创建一个对象
#创建对象需要输入三个参数:第0个是我之前写入的邮件正文,第2个是编码表,第1个还不懂
message['Subject'] = Header(theme,'utf-8')
#使用Header创建一个对象
#创建对象需要两个参数:第0个是我之前写入的邮件主题,第1个是编码表
#创建来的对象,赋值给message['Subject']
message['From'] = Header(sender,'utf-8')
#使用Header模块创建一个对象
#创建对象需要两个参数:第0个是我之前写入的发件人,第1个是编码表
#创建来的对象,赋值给message['from']
#以上,是一波转换操作
try:
    qqmail.sendmail(account,recipient,message.as_string())
    #发送邮件,这个我懂
    #只是发送邮件的第2个参数,本来是邮件内容,现在变成message.as_string()
    #根据之前的代码,我知道message这个对象里,至少包含:邮件内容,邮件主题,发件人这三个数据。
    #显然我知道as_string()是message的一个方法
except:
    print('对不起,发送失败请重试!')
#以上,是发送
qqmail.quit()
#以上,是退出

#1019-第22关-研究一个产品

import requests,json
#写这个程序,要用到requests和json两个模块。
link = requests.get('https://www.shanbay.com/api/v1/vocabtest/category/')
#先用requests下载链接。
js_link = json.loads(link.text)
#用json模块解析下载得到的内容。
bianhao = int(input('''请输入你选择的词库编号,按Enter确认
1,GMAT  2,考研  3,高考  4,四级  5,六级
6,英专  7,托福  8,GRE  9,雅思  10,任意
>'''))
#让用户选择自己想测的词库,输入数字编号。
ciku = js_link[data][bianhao-1][0]
#利用用户输入的数字编号,获取题库的代码。如果以输入“高考”的编号“3”为例,那么ciku的值就是,在字典js_link中查找data的值,data是一个list,查找它的第bianhao-1,也就是第2个元素,得到的依然是一个list,再查找该list的第0个元素。最后得到的就是我们想要的NCEE。
print (ciku)
#打印ciku,校验我们是不是写对。

用扇贝检验英语词汇量

test = requests.get('https://www.shanbay.com/api/v1/vocabtest/vocabularies/?category='+ciku)
words = json.loads(test.text)
danci = []
#新增一个list,用于统计用户认识的单词
words_knows = []
not_knows = []
print ('测试现在开始。如果你认识这个单词,请输入Y,否则直接敲Enter:')
n=0
for x in words['data']:
    n=n+1
    print ("\n第"+str(n)+'个:'+x['content'])
    #加一个\n,用于换行。
    answer = input('认识请敲Y,否则敲Enter:')
    if answer == 'Y':
        danci.append(x['content'])
        #把用户认识的单词,追加进danci这个list。
        words_knows.append(x)
    else:
        not_knows.append(x)

print ('\n在上述'+str(len(words['data']))+'个单词当中,有'+str(len(danci))+'个是你觉得自己认识的,它们是:')
print(danci)


print ('现在我们来检测一下,你有没有真正掌握它们:')
wrong_words = []
right_num = 0
for y in words_knows:
    print('\n\n'+'A:'+y['definition_choices'][0]['definition'])
    #我们改用A、B、C、D,不再用rank值,下同
    print('B:'+y['definition_choices'][1]['definition'])
    print('C:'+y['definition_choices'][2]['definition'])
    print('D:'+y['definition_choices'][3]['definition'])
    xuanze = input('请选择单词\"'+y['content']+'\"的正确翻译(填写数字即可):')
    dic = {'A':y['definition_choices'][0]['rank'],'B':y['definition_choices'][1]['rank'],'C':y['definition_choices'][2]['rank'],'D':y['definition_choices'][3]['rank']} 
    #我们创建一个字典,搭建起A、B、C、D和四个rank值的映射关系。
    if dic[xuanze] == y['rank']:
    #此时dic[xuanze]的内容,其实就是rank值,此时的代码含义已经和之前的版本相同了。
        right_num += 1
    else:
        wrong_words.append(y)
print ('现在,到了公布成绩的时刻:')
print ('在'+str(len(words['data']))+'个'+js_link['data'][bianhao-1][1]+'词汇当中,你认识其中'+str(len(danci))+'个,实际掌握'+str(right_num)+'个,错误'+str(len(wrong_words))+'个。')
#这是句蛮复杂的话,对照前面的代码和json文件你才能理解它。一个运行示例是:在50个高考词汇当中,你认识其中30个,实际掌握25个,错误5个。

save = input ('是否打印并保存你的错词集?填入Y或N: ')
#询问用户,是否要打印并保存错题集。
if save == 'Y':
#如果用户说是:
    f = open('错题集.txt', 'a+')
    #在当前目录下,创建一个错题集.txt的文档。        
    print ('你记错的单词有:')
    f.write('你记错的单词有:\n')
    #写入"你记错的单词有:\n"
    m=0
    for z in wrong_words:
    #启动一个循环,循环的次数等于,用户的错词数:
        m=m+1
        print (z['content'])
        #打印每一个错词。
        f.write(str(m+1) +'. '+ z['content']+'\n')
        #写入序号,写入错词。           
    print ('你不认识的单词有:')
    f.write('你没记住的单词有:\n')
    #写入"你没记住的单词有:\n"
    s=0
    for x in not_knows:
    #启动一个循环,循环的次数等于,用户不认识的单词数。
        print (x['content'])
        #打印每一个不认识的单词。
        f.write(str(s+1) +'. '+ x['content']+'\n')
        #写入序号,写入用户不认识的词汇。 
    print ('错词和没记住的词已保存至当前文件目录下,下次见!')
    #告诉用户,文件已经保存好。
    #在网页版终端运行时,文件会被写在课程的服务器上,你看不到,但它的确已经存在。
else:
#如果用户不想保存:
    print('下次见!')
    #输出“下次见!”


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值