初识python

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

1.基本语法

          标识符

在 Python 里,标识符由字母、数字、下划线组成。所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头

Python 中的标识符是区分大小写的。

以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入;

双下划线开头的 __foo 代表类的私有成员;以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。

Python 可以同一行显示多条语句,方法是用分号 ; 分开,如:

print ‘hello’;print ‘runoob’; 
hello 
runoob

        行和缩进

学习 Python 与其他语言最大的区别就是,Python 的代码块不使用大括号 {} 来控制类,函数以及其他逻辑判断

python 最具特色的就是用缩进来写模块

缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。如下所示:

if True:

   print "True"

else:

   print "False"

以下代码将会执行错误:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

# 文件名:test.py

 

if True:

   print "Answer"

   print "True"

else:

   print "Answer"

# 没有严格缩进,在执行时会报错

print "False"

          多行语句

Python语句中一般以新行作为为语句的结束符。

可以使用斜杠( \)将一行的语句分为多行显示,如下所示:

total = item_one + \

        item_two + \

        item_three

语句中包含 [], {} 或 () 括号就不需要使用多行连接符。如下实例:

days = ['Monday', 'Tuesday', 'Wednesday',

        'Thursday', 'Friday']

      引号

Python 可以使用引号( ’ )、双引号( ” )、三引号( ”’ 或 “”” ) 来表示字符串,引号的开始与结束必须的相同类型的。

其中三引号可以由多行组成,编写多行文本的快捷语法,常用于文档字符串,在文件的特定地点,被当做注释。

word = 'word'

sentence = "这是一个句子。"

paragraph = """这是一个段落。

包含了多个语句"""

     注释

python中单行注释采用 # 开头

    空行

函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。

空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。

记住:空行也是程序代码的一部分。

     等待用户输入

下面的程序执行后就会等待用户输入,按回车键后就会退出:

#!/usr/bin/python

raw_input("\n\nPress the enter key to exit.")

   print输出

print 默认输出是换行的,如果要实现不换行需要在变量末尾加上逗号

!/usr/bin/python

# -*- coding: UTF-8 -*-

x="a"

y="b"

# 换行输出

print x

print y

 

print '---------'

# 不换行输出

print x,

print y,

 

# 不换行输出

print x,y

执行结果为:

a

b

---------

a b a b

         命令行参数

Python 可以使用 -h 参数查看各参数帮助信息: 

$ python -h

2.核心数据结构:字符串

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

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

var1 = 'Hello World!'

var2 = "Python Runoob"

     Python访问字符串中的值

Python不支持单字符类型,单字符也在Python也是作为一个字符串使用。

Python访问子字符串,可以使用方括号来截取字符串,如下实例:

#!/usr/bin/python

var1 = 'Hello World!'

var2 = "Python Runoob"

print "var1[0]: ", var1[0]

print "var2[1:5]: ", var2[1:5]

     Python字符串更新

可以对已存在的字符串进行修改,并赋值给另一个变量,如下实例:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

var1 = 'Hello World!'

print "更新字符串 :- ", var1[:6] + 'lucky day!'

        Python转义字符

在需要在字符中使用特殊字符时,python用反斜杠(\)转义字符

       Python字符串运算符

下表实例变量 a 值为字符串 “Hello”,b 变量值为 “Python”:

操作符                                                                        描述
+字符串连接
*重复输出字符串
[]通过索引获取字符串中字符
[ : ]截取字符串中的一部分
in成员运算符 - 如果字符串中包含给定的字符返回 True
not in成员运算符 - 如果字符串中不包含给定的字符返回 True
r/R原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母”r”(可以大小写)以外,与普通字符串有着几乎完全相同的语法。
%格式字符串
test代码:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

 

a = "Hello"

b = "Python"

 

print "a + b 输出结果:", a + b

print "a * 2 输出结果:", a * 2

print "a[1] 输出结果:", a[1]

print "a[1:4] 输出结果:", a[1:4]

 

if( "H" in a) :

print "H 在变量 a 中"

else :

print "H 不在变量 a 中"

 

if( "M" not in a) :

print "M 不在变量 a 中"

else :

print "M 在变量 a 中"

 

print r'\n'

print R'\n'

以上程序执行结果为:

a + b 输出结果: HelloPython 
a * 2 输出结果: HelloHello 
a[1] 输出结果: e 
a[1:4] 输出结果: ell 
H 在变量 a 中 
M 不在变量 a 中 
\n 
\n 

        Python 字符串格式化

Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。

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

如下实例:

#!/usr/bin/python

 

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

以上实例输出结果:

My name is Zara and weight is 21 kg!

python字符串格式化符号:

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

3.核心数据结构:列表

序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。

Python有6个序列的内置类型,但最常见的是列表和元组。

序列都可以进行的操作包括索引,切片,加,乘,检查成员。

此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。

列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。

列表的数据项不需要具有相同的类型。

         创建一个列表

只要把逗号分隔不同的数据项使用方括号括起来即可。

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

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

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

       访问列表中的值

使用下标索引来访问列表中的值,同样也可以使用方括号的形式截取字符,如下所示:

#!/usr/bin/python

 

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

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

 

print "list1[0]: ", list1[0]

print "list2[1:5]: ", list2[1:5]

        更新列表

可以对列表的数据项进行直接修改或更新,你也可以使用append()方法来添加列表项,如下所示:

#!/usr/bin/python

 

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

 

print "Value available at index 2 : "

print list[2];

list[2] = 2001;

print "New value available at index 2 : "

print list[2];

        删除列表元素

可以使用 del 语句来删除列表的的元素,如下实例:

#!/usr/bin/python

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

print list1;

del list1[2];

print "After deleting value at index 2 : "

print list1;

   Python列表脚本操作符

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

如下所示:

Python 表达式结果描述
len([1, 2, 3])3长度
[1, 2, 3] + [4, 5, 6][1, 2, 3, 4, 5, 6]组合
[‘Hi!’] * 4[‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’]重复
3 in [1, 2, 3]True元素是否存在于列表中
for x in [1, 2, 3]: print x,1 2 3迭代

    Python列表截取

Python 的列表截取实例如下:

>>> L = ['Google', 'Runoob', 'Taobao']

>>> L[2]

'Taobao'

>>> L[-2]

'Runoob'

>>> L[1:]

['Runoob', 'Taobao']

 

     Python列表函数&方法

Python包含以下函数:

  • cmp(list1, list2)    比较两个列表的元素

  • len(list)    列表元素个数

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

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

  • list(seq)     将元组转换为列表

Python包含以下方法:

  • list.append(obj)   在列表末尾添加新的对象

  • list.count(obj)      统计某个元素在列表中出现的次数

  • list.extend(seq)   在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

  • list.index(obj)     从列表中找出某个值第一个匹配项的索引位置

  • list.insert(index, obj)   将对象插入列表

  • list.pop(obj=list[-1])    移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

  • list.remove(obj)     移除列表中某个值的第一个匹配项

  • list.reverse()      反向列表中元素

  • list.sort([func])  对原列表进行排序

4.核心数据结构——元组

Python的元组与列表类似,不同之处在于元组的元素不能修改

元组使用小括号,列表使用方括号

        元组创建

只需要在括号中添加元素,并使用逗号隔开即可。

tup1 = ('physics', 'chemistry', 1997, 2000);

tup2 = (1, 2, 3, 4, 5 );

tup3 = "a", "b", "c", "d";

      访问元组

元组可以使用下标索引来访问元组中的值,如下实例:

#!/usr/bin/python

 

tup1 = ('physics', 'chemistry', 1997, 2000);

tup2 = (1, 2, 3, 4, 5, 6, 7 );

 

print "tup1[0]: ", tup1[0]

print "tup2[1:5]: ", tup2[1:5]

      修改元组

元组中的元素值是不允许修改的,但可以对元组进行连接组合

#!/usr/bin/python

# -*- coding: UTF-8 -*-

tup1 = (12, 34.56);

tup2 = ('abc', 'xyz');

# 以下修改元组元素操作是非法的。

# tup1[0] = 100;

# 创建一个新的元组

tup3 = tup1 + tup2;

print tup3;

       删除元组

元组中的元素值是不允许删除的,但可以使用del语句来删除整个元组

#!/usr/bin/python

 

tup = ('physics', 'chemistry', 1997, 2000);

 

print tup;

del tup;

print "After deleting tup : "

print tup;

      元组运算符

与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。

Python 表达式结果描述
len((1, 2, 3))3计算元素个数
(1, 2, 3) + (4, 5, 6)(1, 2, 3, 4, 5, 6)连接
(‘Hi!’,) * 4(‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’)复制
3 in (1, 2, 3)True元素是否存在
for x in (1, 2, 3): print x,1 2 3迭代

元组索引,截取

因为元组也是一个序列,所以可以访问元组中的指定位置的元素,也可以截取索引中的一段元素

无关闭分隔符

任意无符号的对象,以逗号隔开,默认为元组

#!/usr/bin/python

print 'abc', -4.24e93, 18+6.6j, 'xyz';

x, y = 1, 2;

print "Value of x , y : ", x,y;

元组内置函数

Python元组包含了以下内置函数

  • cmp(tuple1, tuple2) 比较两个元组元素。

  • len(tuple) 计算元组元素个数。

  • max(tuple) 返回元组中元素最大值。

  • min(tuple) 返回元组中元素最小值。

  • tuple(seq) 将列表转换为元组。

5.核心数据结构:字典

字典是另一种可变容器模型,且可存储任意类型对象

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

键必须是唯一的,但值则不必。 值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。 
一个简单的字典实例:

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

也可如此创建字典:

dict1 = { 'abc': 456 };

dict2 = { 'abc': 123, 98.6: 37 };

 

        访问字典里的值

把相应的键放入方括弧,访问的时候直接写键就OK了。

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};

print "dict['Name']: ", dict['Name'];

print "dict['Age']: ", dict['Age'];

如果用字典里没有的键访问数据,会输出错误如下:

 

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};

print "dict['Alice']: ", dict['Alice'];

      修改字典

向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下:

 

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};

 

dict['Age'] = 8; # update existing entry

dict['School'] = "DPS School"; # Add new entry

 

 

print "dict['Age']: ", dict['Age'];

print "dict['School']: ", dict['School'];

      删除字典元素

能删单一的元素也能清空字典,清空只需一项操作,显示删除一个字典用del命令。

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};

 

del dict['Name']; # 删除键是'Name'的条目

dict.clear(); # 清空词典所有条目

del dict ; # 删除词典

 

print "dict['Age']: ", dict['Age'];

print "dict['School']: ", dict['School'];

        字典键的特性

字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。

1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住

 

dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'};

 

print "dict['Name']: ", dict['Name'];

2)键必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行:

 

dict = {['Name']: 'Zara', 'Age': 7};

 

print "dict['Name']: ", dict['Name'];

      字典内置函数&方法

Python字典包含了以下内置函数

  • cmp(dict1, dict2) 比较两个字典元素。

  • len(dict) 计算字典元素个数,即键的总数。

  • str(dict) 输出字典可打印的字符串表示

  • type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型。

Python字典包含了以下内置方法

  • dict.clear() 删除字典内所有元素

  • dict.copy() 返回一个字典的浅复制

  • dict.fromkeys(seq[, val])) 创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值

  • dict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值

  • dict.has_key(key) 如果键在字典dict里返回true,否则返回false

  • dict.items() 以列表返回可遍历的(键, 值) 元组数组

  • dict.keys() 以列表返回一个字典所有的键

  • dict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default

  • dict.update(dict2) 把字典dict2的键/值对更新到dict里

  • dict.values() 以列表返回字典中的所有值

  • pop(key[,default]) 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。

  • popitem() 随机返回并删除字典中的一对键和值。

6.表达式与运算符

 Python语言支持以下类型的运算符:

  • 算术运算符

  • 比较(关系)运算符

  • 赋值运算符

  • 逻辑运算符

  • 位运算符

  • 成员运算符

  • 身份运算符

  • 运算符优先级

    算术运算符
运算符描述
+加 - 两个对象相加
-减 - 得到负数或是一个数减去另一个数
*乘 - 两个数相乘或是返回一个被重复若干次的字符串
/除 - x除以y
%取模 - 返回除法的余数
**幂 - 返回x的y次幂
//取整除 - 返回商的整数部分

以下实例演示了Python所有算术运算符的操作:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

 

a = 21

b = 10

c = 0

 

c = a + b

print "1 - c 的值为:", c

 

c = a - b

print "2 - c 的值为:", c

 

c = a * b

print "3 - c 的值为:", c

 

c = a / b

print "4 - c 的值为:", c

 

c = a % b

print "5 - c 的值为:", c

 

# 修改变量 a 、b 、c

a = 2

b = 3

c = a**b

print "6 - c 的值为:", c

 

a = 10

b = 5

c = a//b

print "7 - c 的值为:", c

比较运算符

所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。

运算符描述
==等于 - 比较对象是否相等
!=不等于 - 比较两个对象是否不相等
<>不等于 - 比较两个对象是否不相等
>大于 - 返回x是否大于y
<小于 - 返回x是否小于y。
>=大于等于 - 返回x是否大于等于y。
<=小于等于 - 返回x是否小于等于y。

以下演示了Python所有比较运算符的操作:

 

a = 21

b = 10

c = 0

 

if ( a == b ):

print "1 - a 等于 b"

else:

print "1 - a 不等于 b"

 

if ( a != b ):

print "2 - a 不等于 b"

else:

print "2 - a 等于 b"

 

if ( a <> b ):

print "3 - a 不等于 b"

else:

print "3 - a 等于 b"

 

if ( a < b ):

print "4 - a 小于 b"

else:

print "4 - a 大于等于 b"

 

if ( a > b ):

print "5 - a 大于 b"

else:

print "5 - a 小于等于 b"

 

# 修改变量 a 和 b 的值

a = 5

b = 20

if ( a <= b ):

print "6 - a 小于等于 b"

else:

print "6 - a 大于 b"

 

if ( b >= a ):

print "7 - b 大于等于 a"

else:

print "7 - b 小于 a"

赋值运算符

运算符描述
=简单的赋值运算符
+=加法赋值运算符
-=减法赋值运算符
*=乘法赋值运算符
/=除法赋值运算符
%=取模赋值运算符
**=幂赋值运算符
//=取整除赋值运算符

以下演示了Python所有赋值运算符的操作:

a = 21

b = 10

c = 0

 

c = a + b

print "1 - c 的值为:", c

 

c += a

print "2 - c 的值为:", c

 

c *= a

print "3 - c 的值为:", c

 

c /= a

print "4 - c 的值为:", c

 

c = 2

c %= a

print "5 - c 的值为:", c

 

c **= a

print "6 - c 的值为:", c

 

c //= a

print "7 - c 的值为:", c

位运算符

按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下:

下表中变量 a 为 60,b 为 13,二进制格式如下:

a = 60 # 60 = 0011 1100

b = 13 # 13 = 0000 1101

c = 0

 

c = a & b; # 12 = 0000 1100

print "1 - c 的值为:", c

 

c = a | b; # 61 = 0011 1101

print "2 - c 的值为:", c

 

c = a ^ b; # 49 = 0011 0001

print "3 - c 的值为:", c

 

c = ~a; # -61 = 1100 0011

print "4 - c 的值为:", c

 

c = a << 2; # 240 = 1111 0000

print "5 - c 的值为:", c

 

c = a >> 2; # 15 = 0000 1111

print "6 - c 的值为:", c

逻辑运算符

运算符逻辑表达式描述
andx and y布尔”与” - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值
orx or y布尔”或” - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。
notnot x布尔”非” - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True

以上输出结果:

a = 10

b = 20

 

if ( a and b ):

print "1 - 变量 a 和 b 都为 true"

else:

print "1 - 变量 a 和 b 有一个不为 true"

 

if ( a or b ):

print "2 - 变量 a 和 b 都为 true,或其中一个变量为 true"

else:

print "2 - 变量 a 和 b 都不为 true"

 

# 修改变量 a 的值

a = 0

if ( a and b ):

print "3 - 变量 a 和 b 都为 true"

else:

print "3 - 变量 a 和 b 有一个不为 true"

 

if ( a or b ):

print "4 - 变量 a 和 b 都为 true,或其中一个变量为 true"

else:

print "4 - 变量 a 和 b 都不为 true"

 

if not( a and b ):

print "5 - 变量 a 和 b 都为 false,或其中一个变量为 false"

else:

print "5 - 变量 a 和 b 都为 true"

成员运算符

除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组

运算符描述
in如果在指定的序列中找到值返回 True,否则返回 False。
not in如果在指定的序列中没有找到值返回 True,否则返回 False。

以下演示了Python所有成员运算符的操作:

a = 10

b = 20

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

 

if ( a in list ):

print "1 - 变量 a 在给定的列表中 list 中"

else:

print "1 - 变量 a 不在给定的列表中 list 中"

 

if ( b not in list ):

print "2 - 变量 b 不在给定的列表中 list 中"

else:

print "2 - 变量 b 在给定的列表中 list 中"

 

# 修改变量 a 的值

a = 2

if ( a in list ):

print "3 - 变量 a 在给定的列表中 list 中"

else:

print "3 - 变量 a 不在给定的列表中 list 中"

身份运算符

运算符描述
isis 是判断两个标识符是不是引用自一个对象
is notis not 是判断两个标识符是不是引用自不同对象

以下实例演示了Python所有身份运算符的操作:

 

a = 20

b = 20

 

if ( a is b ):

print "1 - a 和 b 有相同的标识"

else:

print "1 - a 和 b 没有相同的标识"

 

if ( a is not b ):

print "2 - a 和 b 没有相同的标识"

else:

print "2 - a 和 b 有相同的标识"

 

# 修改变量 b 的值

b = 30

if ( a is b ):

print "3 - a 和 b 有相同的标识"

else:

print "3 - a 和 b 没有相同的标识"

 

if ( a is not b ):

print "4 - a 和 b 没有相同的标识"

else:

print "4 - a 和 b 有相同的标识"

注意:

s 与 == 区别: 
is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。

运算符优先级

以下表格列出了从最高到最低优先级的所有运算符:

运算符描述
**指数 (最高优先级)
~ + -按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
/ % //乘,除,取模和取整除
-加法减法
<<右移,左移运算符
&位 ‘AND’
^ | 位运算符 
<= < > >=比较运算符
<> == !=等于运算符
= %= /= //= -= += *= **=赋值运算符
is is not身份运算符
in not in成员运算符
not or and逻辑运算符

以下演示了Python所有运算符优先级的操作:

 

a = 20

b = 10

c = 15

d = 5

e = 0

 

e = (a + b) * c / d #( 30 * 15 ) / 5

print "(a + b) * c / d 运算结果为:", e

 

e = ((a + b) * c) / d # (30 * 15 ) / 5

print "((a + b) * c) / d 运算结果为:", e

 

e = (a + b) * (c / d); # (30) * (15/5)

print "(a + b) * (c / d) 运算结果为:", e

 

e = a + (b * c) / d; # 20 + (150/5)

print "a + (b * c) / d 运算结果为:", e

 

以上内容整理自summercamp中的学习资料。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值