python语言

文章目录

一、python语言及其安装以及库函数配置

1、python语言

编程语言的发展大致分为以下进程:从底层的基本语言(机器语言、汇编语言)、到面向过程的C语言、再到面向对象的C++语言和java语言。再到现在的解释语言python。经历这个过程,语言越来越接近人类语言。python作为解释语言,其易上手的特点让其十分受欢迎。就像他的宣传语句:人生苦短,我用python。
python相对于其他语言来说,开发者不需要太关心,其计算机的底层逻辑原理,加之其具有很多的支持文件,进而铸就了python的地位。python广泛应用于数据分析。数据挖掘的应用。

2、python的安装

python发展至今已经有很多迭代了,python2.x到现在的python3.x。最新版的python3.10的官方下载地址为:https://www.python.org/downloads/release/python-3100/
下载后就可以按照安装引导进行python的安装。

3、python的文件的下载

就像很多软件一样,python在安装的时候,不会将所有的组件都安装进入其/bin文件夹中,因此我们需要自己下载文件依赖。文件依赖下载地址为:https://www.lfd.uci.edu/~gohlke/pythonlibs/
这种安装安装方式称为本地模式
同时,我们还可以使用cmd命令进行安装
首先我们按住win+r键,输入cmd按下回车。例如我们要安装 scipy库,我们只需要输入 pip install scipy其指令的格式如下:

pip install 软件包名称

二、python基本语法

1、编码规则

Python的默认编码规则是“UTF-8”,但是与此同时,python还可以是西点字符(unicode)的编码
其具体指定代码的语句为:

# -*- coding: UTF-8 -*-
# coding=utf-8  (等号两边不能有空格)

2、标志符

1、第一个字符必须是字母表中的字母或下划线_
2、标识符中的其他部分由字母、数字和下划线组成
3、标识符对大小写敏感
4、在python3中,非ASCII标识符 (如中文字符) 也是允许的

3、注释

1、单行注释:井号 #
2、多行注释:三个单引号’’’,或者三个双引号"""

4、关键字与保留字

python中关键字有以下几种:
1.and:表示逻辑‘与’
2.del:用于list列表操作,删除一个或者连续几个元素。
3.from:导入相应的模块,用import或者from…import
4.not:表示逻辑‘非’
5.while:while循环,允许重复执行一块语句,一般无限循环的情况下用它
6.as:as单独没有意思,是这样使用:with…as用来代替传统的try…finally语法的。
7.elif:和if配合使用的,if语句中的一个分支用elif表示。
8.global :定义全局变量
9.or:表示逻辑“或”
10.with:和as一起用,使用的方法请看as,见with
11.assert:表示断言(断言一个条件就是真的,如果断言出错则抛出异常)用于声明某个条件为真,如果该条件不是真的,则抛出异常:A
12.else:参考下面if的解释
13.if:if语句用于选择分支,依据条件选择执行那个语句块。(if语句中最好不要嵌套if语句,建议把嵌套的if语句写在另一个函数中)
14.pass:pass的意思就是什么都不做
15.yield:用起来和return很像,但它返回的是一个生成器
16.break:作用是终止循环,程序走到break的地方就是循环结束的时候。
17.except:和try一起使用,用来捕获异常。
18.import:用来导入模块,有时这样用from…import
19.class:定义类
20.in:查找列表中是否包含某个元素,或者字符串a是否包含字符串b。
21.raise:raise可以显示地引发异常。一旦执行raise语句,后面的代码就不执行了
22.continue:跳过continue后面循环块中的语句,继续进行下一轮循环。
23.finally:看到finally语句,必然执行finally语句的代码块。
24.is:Python中的对象包含三要素:id、type、value,用来判断对象是否相等
25.return:用于跳出函数,也可以在跳出的同时返回一个值。
26.def:用于定义方法
27.for:for…in 一起使用:它在一序列的对象上递归,就是遍历队列中的每个项目
28.lambda:即匿名函数
29.try:出现在异常处理中,使用格式为:try…except,try中放想要执行的语句,except捕获异常
30.nonlocal:nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量

三、python的变量与数据类型

1、变量赋值以及多变量赋值

python语言和C语言、java语言不同,可以在不进行变量进行申明的情况下直接在对变量进行赋值

index1 =10 #申明整型变量
index2 =10.0 #申明浮点型变量
index3="这是一个测试字符串"#申明字符串的变量

同时,python拥有多赋值的特性

index1=index2=index3=10  #为index1、index2、index3同时赋值为10

2、python具有的数据类型

python具有以下的数据类型:Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Set(集合)、Dictionary(字典)
1、不可变数据 :Number(数字)、String(字符串)、Tuple(元组)
2、可变数据:List(列表)、Set(集合)、Dictionary(字典)

3、进制表示

1、二进制:使用0b开头 例如:0b1010
2、八进制:使用0o开头 例如:0o555
3、十六进制:0x开头 例如:0x52A74(大小写都OK)

四、python基础之math数学函数库

数学库的作用及其导入指令

Python在其内部集成了很多了函数,本文章主要介绍math库及其使用方法。
程序的核心就是对于数据的处理加工进而通过用户想要的方式将结果展现出来,因此数学库对于程序设计具有举足轻重的作用。和其他程序设计语言一样,python同样集成了数学库,并提供一系列数学方法。我大体将其分为:1、基础数学方法;2、随机数方法;3、三角函数
和一般程序设计语言类似,python使用数学库需要将这个数学库引入,引入命令的为:import math

1、基本数学函数

下面我将详细介绍math的基本数学函数:

函数名称功能面述(返回值)
abs(x)返回数字的绝对值,如abs(-10) 返回 10
ceil(x)返回数字的上入整数,如math.ceil(4.1) 返回 5
(x>y)-(x<y)如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1
exp(x)返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
fabs(x)返回数字的绝对值,如math.fabs(-10) 返回10.0
floor(x)返回数字的下舍整数,如math.floor(4.9)返回 4
log(x)如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x)返回以10为基数的x的对数,如math.log10(100)返回 2.0
max(x1, x2,…)返回给定参数的最大值,参数可以为序列。
min(x1, x2,…)返回给定参数的最小值,参数可以为序列。
modf(x)返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
pow(x, y)x**y 运算后的值。
round(x [,n])返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。
sqrt(x)返回数字x的平方根。

2、随机函数

对于程序调试,我们需要利用随机函数生成一个随机序列,此时我们就需要利用随机方法生成,下面将介绍一些python一些生成随机数的方法

函数描述
choice(seq)从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。
randrange ([start,] stop [,step])从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1
random()随机生成下一个实数,它在[0,1)范围内。
seed([x])改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。
shuffle(lst)将序列的所有元素随机排序
uniform(x, y)随机生成下一个实数,它在[x,y]范围内。

3、三角函数

函数描述
acos(x)返回x的反余弦弧度值。
asin(x)返回x的反正弦弧度值。
atan(x)返回x的反正切弧度值。
atan2(y, x)返回给定的 X 及 Y 坐标值的反正切值。
cos(x)返回x的弧度的余弦值。
hypot(x, y)返回欧几里德范数 sqrt(xx + yy)。
sin(x)返回的x弧度的正弦值。
tan(x)返回x弧度的正切值。
degrees(x)将弧度转换为角度,如degrees(math.pi/2) , 返回90.0
radians(x)将角度转换为弧度

五、python的基本数据元素以及数据类型转换

1、数据类型

python和其他编程语言类似,都拥有其特有的数据组织结构,这些结构为程序存储相应的数据类型提供了基础。本文章主要介绍python存在的数据组织形式,了解这些数据元素的组织形式,可以为我们日后利用python进行编程提供了扎实深厚的数据组织。python的数据类型主要包括有:字符串、列表、元组、字典和集合。

2、 字符串(String)

字符串主要用来存储一系列的字符,Python中的字符串用单引号 ’ 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。下标从0开始。
1、字符串截取

变量[头下标:尾下标:步长)

2、字符串获取

print(str[0])

3、列表(List)

List(列表)是Python 中使用最频繁的数据类型。列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。列表是写在方括号[]之间、用逗号分隔开的元素列表。和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。

4、元组(Tuple)

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。

5、集合(set)

集合(set)是由一个。合的事物或对象称作元素或是成员。基本功能是进行成员关系测试和删除重复元素。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

6、字典(Dictionary)

字典(dictionary)是Python中另一个非常有用的内置数据类型。列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。键(key)必须使用不可变类型。在同一个字典中,键(key)必须是唯一的。

7、python类型转换

函数描述
int(x [,base])将x转换为一个整数
float(x)将x转换到一个浮点数
complex(real [,imag])创建一个复数
str(x)将对象 x 转换为字符串
repr(x)将对象 x 转换为表达式字符串
eval(str)用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s)将序列 s 转换为一个元组
list(s)将序列 s 转换为一个列表
set(s)转换为可变集合
dict(d)创建一个字典,d 必须是一个序列 (key,value)元组。
frozenset(s)转换为不可变集合
chr(x)将一个整数转换为一个字符(ASCII码)
ord(x)将一个字符转换为它的ASCII码值
hex(x)将一个整数转换为一个十六进制字符串
oct(x)将一个整数转换为一个八进制字符串

六、python的基本运算符

1、算术运算符

运算符功能描述
+两个对象相加;a + b 输出结果 31
-得到负数或是一个数减去另一个数;a - b 输出结果 -11
*两个数相乘或是返回一个被重复若干次的字符串;a * b 输出结果 210
/x 除以 y;b / a 输出结果 2.1
%取模返回除法的余数;b % a 输出结果 1
**返回x的y次幂 ;a**b 为10的21次方
//取整除向下取接近除数的整数 ;9//2 # 4-9//2 #-5

2、比较运算符

运算符功能描述
==等于比较对象是否相等(a == b) 返回 False
!=不等于比较两个对象是否不相等 (a != b) 返回 True
>大于返回x是否大于y (a > b) 返回 False
<小于返回x是否小于y (a < b) 返回 True
>=大于等于返回x是否大于等于y (a >= b) 返回 False
<=小于等于返回x是否小于等于y (a <= b) 返回 True

3、赋值运算符

运算符功能描述
=简单的赋值运算符c = a + b将a + b的运算结果赋值为 c += 加法赋值运算符 c += a 等效于 c = c+ a
-=减法赋值运算符c -= a 等效于 c = c - a
*=乘法赋值运算符c *= a 等效于 c = c * a
/=除法赋值运算符c /= a 等效于 c = c / a
%=取模赋值运算符c %= a 等效于 c = c % a
**=幂赋值运算符c **= a 等效于 c = c ** a
//=取整除赋值运算符c //= a 等效于 c = c // a

4、位运算符

运算符功能
&按位与运算符
\按位或运算符
^按位异或运算符
~按位取反运算符
<<左移动运算符
>>右移动运算符

5、逻辑运算符

运算符功能
and x and y布尔"与"
or x or y布尔"或"
not not x布尔"非"

七、Python基础之字符串及其相关操作

1、字符串的创建

字符串的创建和变量申明方法一样,只需要进行将字符串的值赋值给变量就可以完成字符串的创建。集体操作如下所示:

str =“this is a demo string”

2、字符串的元素访问

a = s[0]		# 访问弟0个元素
l = len(s)		# 字符串的长度

3、字符串运算

运算符功能描述
+字符串连接
*重复输出字符串
[]通过索引获取字符串中字符
[ : ]截取字符串中的一部分,遵循左闭右开原则
in成员运算符
not in成员运算符
r/R原始字符串
%格式字符串

4、字符串格式化

运算符功能描述
%c格式化字符及其ASCII码
%s格式化字符串
%d格式化整数
%u格式化无符号整型
%o格式化无符号八进制数
%x格式化无符号十六进制数
%X格式化无符号十六进制数(大写)
%f格式化浮点数字,可指定小数点后的精度
%e用科学计数法格式化浮点数
%E作用同%e,用科学计数法格式化浮点数
%g%f和%e的简写
%G%f 和 %E 的简写
%p用十六进制数格式化变量的地址

5、内部函数

运算符功能描述
capitalize()将字符串的第一个字符转换为大写
endswith(suffix,beg=0,end=len(string))检查字符串是否以 obj 结束
expandtabs(tabsize=8)把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。
find(str, beg=0 end=len(string))检测 str 是否包含在字符串中,如果包含返回开始的索引值,否则返回-1
index(str, beg=0, end=len(string))跟find()方法一样,只不过如果str不在字符串中会报一个异常.
isalnum()如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False
isdigit()如果字符串只包含数字则返回 True 否则返回 False…
isnumeric()如果字符串中只包含数字字符,则返回 True,否则返回 False
isspace()如果字符串中只包含空白,则返回 True,否则返回 False.
join(seq)以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
len(string)返回字符串长度
lower()转换字符串中所有大写字符为小写.
lstrip()截掉字符串左边的空格或指定字符。
max(str)返回字符串 str 中最大的字母。
min(str)返回字符串 str 中最小的字母。
replace(old, new [, max])把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。
rfind(str, beg=0,end=len(string))类似于 find()函数,不过是从右边开始查找.
rindex( str, beg=0, end=len(string))类似于 index(),不过是从右边开始.
rstrip()删除字符串字符串末尾的空格
split(str="",num=string.count(str)) num=string.count(str))以str为分隔符截取字符串,如果num有指定值,则仅截取 num个子字符串
splitlines([keepends])按照行(’\r’, ‘\r\n’, \n’)分隔
startswith(str,beg=0,end=len(string))检查字符串是否是以 obj 开头
strip([chars])在字符串上执行 lstrip()和 rstrip()
upper()转换字符串中的小写字母为大写

八、python编程基础之列表

1、 列表的创建

列表的创建方法如下:

list = [1,2,3,4,5,'jueyushikong']

2、列表值获取

列表值的获取方式如下:

l  = list[下标]
l1 = list2[下限:上限]
len(list)		#长度查看

3、列表更新

列表更新方法如下:

list[下标] = 'new string'

4、删除列表元素

列表元素删除方式如下:

del list[下标]

5、其他列表操作

操作符(关键字)功能
len()计算长度
+拼接列表
*数字重复n遍
字符 in list判断字符是否在list中
for x in list: print(x, end=" "迭代

6、列表的方法(函数)

函数功能描述
len(list)列表元素个数
max(list)返回列表元素最大值
min(list)返回列表元素最小值
list(seq)将元组转换为列表
list.append(obj)在列表末尾添加新的对象
list.count(obj)统计某个元素在列表中出现的次数
list.extend(seq)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
list.index(obj)从列表中找出某个值第一个匹配项的索引位置
list.insert(index, obj)将对象插入列表
list.pop([index=-1])移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list.remove(obj)移除列表中某个值的第一个匹配项
list.reverse()反向列表中元素
list.sort(cmp=None, key=None, reverse=False)对原列表进行排序
list.clear()清空列表
\ list.copy()复制列表

九、python编程基础之元组(Tuple)的基本操作

1、元组的创建

元组的创建步骤如下:

tup1 = ( 'jueyushikong', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";   # 不需要括号也可以

2、元组值获取

元组的获取方式如下:

tup1[下标]
tup1[下限:上限]

3、删除元组元素

元组删除元素的方法如下:

del tup[下标]

4、元组运算符

操作符(关键字)功能
len()计算长度
+拼接列表
*数字重复n遍
字符 in tuple判断字符是否在list中
for x in tuple: print(x, end=" "迭代

5、元组的内置函数

函数功能描述
len(tuple)计算元组元素个数
max(tuple)返回元组中元素最大值
min(tuple)返回元组中元素最小值
tuple(seq)将列表转换为元组

十、python基础之字典操作

1、字典的创建

字典的创建如下所示:

dict = {'jue': '2341', 'yu': '9102', 'shikong': '3258'}
dict = {x:x+1 for x in range(10)}

2、字典值获取

字典的值的获取通过字段来获取:

dict['shikong']

3、更新字典

字典的更新和字典的值获取一样,都是通过字段来控制的:

dict['shikog'] = 10

4、删除字典元素

del dict['shikong'] #删除一个字典值
del dict #删除字典

5、字典内置函数(方法)

函数功能描述
len(dict)计算字典元素个数,即键的总数。
str(dict)输出字典,以可打印的字符串表示。
type(variable)返回输入的变量类型
radiansdict.clear()删除字典内所有元素
radiansdict.copy()返回一个字典的浅复制
radiansdict.fromkeys()创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
radiansdict.get(key, default=None)返回指定键的值,如果值不在字典中返回default值
key in dict如果键在字典dict里返回true,否则返回false
radiansdict.items()以列表返回可遍历的(键, 值) 元组数组
radiansdict.keys()返回一个迭代器,可以使用 list() 来转换为列表
radiansdict.setdefault(key, default=None)和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
radiansdict.update(dict2)把字典dict2的键/值对更新到dict里
radiansdict.values()返回一个迭代器,可以使用 list() 来转换为列表
pop(key[,default])删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
popitem()随机返回并删除字典中的一对键和值(一般删除末尾对)。

十一、python基础之集合(set)的操作

1、集合建立

集合的建立方式如下:

s = {'name','aa','bb'}
s = set(序列)		# dict序列,值添加key
s = {x for x in range(10) if x not in range(5,10)}

2、Set集合添加元素

集合添加元素的方法如下:

s.add(x)		# 添加单个元素
s.update(x)		# 添加序列元素

3、移除元素

set集合移除元素的方法:

s.remove(x)		# 移除单个元素
s.discard(x)	# 移除集合(不存在不报错)
s.pop()			# 随机删除集合中的一个元素

4、集合操作方法

函数功能描述
len(s)查看集合的长度
s.clear()清空集合
x in s判断元素是否在集合中
add()为集合添加元素
clear()移除集合中的所有元素
copy()拷贝一个集合
difference()返回多个集合的差集
difference_update()移除集合中的元素,该元素在指定的集合也存在。
discard()删除集合中指定的元素
intersection()返回集合的交集
intersection_update()删除集合中的元素,该元素在指定的集合中不存在。
isdisjoint()判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
issubset()判断指定集合是否为该方法参数集合的子集。
issuperset()判断该方法的参数集合是否为指定集合的子集
pop()随机移除元素
remove()移除指定元素
symmetric_difference()返回两个集合中不重复的元素集合。
symmetric_difference_update()移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
union()返回两个集合的并集
update()给集合添加元素

十二、python基础语法之选择结构

1、 选择结构

选择结构和循环结构是程序设计语言中最重要的逻辑结构,正是因为有l这些基本程序设计的逻辑结构,开发者可以将一个或者一类问题的方法(步骤)利用这些基础程序的逻辑结构将步骤用计算机语言进行描述,进而实现解决问题的程序。python作为开发语言也不例外,它也拥有基本的选择结构,下面我将详细介绍python的选择结构

2、if选择结构

if选择结构是最基本的选择结构,其语法结构入下(特别注意执行语句要和判断语句之间要有缩进):

if condition_1:
	statement_block_1

3、if-else选择结构

对于一些程序设计,单纯利用if判断语句可能不能实现选择结构,下面我们介绍双分支if选择结构,其语法结构如下:

if condition_1:
	statement_block_1
else:
	statement_block_2

4、if的多分支结构

python同时也有多分支结构,其多分支语法结构如下:

if condition_1:
	statement_block_1
elif condition_2:
	statement_block_2
else:
	statement_block_3

十三、python基础语法之循环结构

1、循环结构

循环结构和选择结构一样,都是计算机程序设计语言中最基本的逻辑结构。下面我将介绍python中的循环结构的基本语法

2、while循环

while循环是循环语句中通用的语法结构,下面我将介绍while循环基本语法结构

while 边界条件:
		pass #不执行退出
	else:
		pass

3、for循环

whiile对于其逻辑结构表述较为困难,对于边界条件明确的循环,我们一般使用for循环。下面我将详细介绍for循环的语法结构:

for <variable> in <sequence>:
	<statements>

4、range()函数

如果你需要遍历数字序列,可以使用内置range()函数。它会生成数列:

range(start,end,step)

5、break和continue、

1、 break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。
2、continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环。

十四、python基础语法之迭代器和生成器

1、迭代器和生成器

迭代是Python最强大的功能之一,是访问集合元素的一种方式,迭代器是一个可以记住遍历的位置的对象,迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。
在Python中,使用了yield的函数被称为生成器(generator)。跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。

2、迭代器的生成

对于字符串,列表或元组对象都可用于创建迭代器,其创建语法为:

list=[1,2,3,4,5,6]
it=iter(list)#创建迭代器对象
print(it)#输出迭代器元素

3、 迭代器的遍历

list=[1,2,3,4,5,6]
it=iter(list)#创建迭代器对象
for i in it: #循环输出
	print(i)

十五、python基础语法之函数

1、函数

函数是模块化程序设计语言最显著的标志,我们可以通过自定义函数模块或者方法来解决一系列重复操作的语句,进而减少代码的冗余度,提高代码的紧凑性和可读性。

2、函数的定义

函数的定义的基本语法结结构如下:

def 函数名(参数列表):
			函数体
			return 返回值

3、函数的使用

Python函数的使用和其他编程语言相同,其使用方式也也相同,其具体使用方式如下:

返回值接收对象=函数名(传入的参数变量)

4、函数的作用域

1、L (Local) 局部作用域
2、E (Enclosing) 闭包函数外的函数中
3、G (Global) 全局作用域
4、B (Built-in) 内建作用域

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绝域时空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值