Python知识点整理,图文结合近三万字(史上最全)_python知识点总结

print list1
#数组
n= np.array([1,2,3,‘a’])
print n
#自定义两行两列数组
b=np.array([[1,2,3],[4,5,6]])
print b
print b.shape
#自定义两行两列数组
#自定义一个3行2列数组
m1=np.array([[1,2],[3,4],[4,5]])
print m1,m1.shape
#访问数组内元素
print m1[0,0]
print m1[1,1]

a=np.arange(5)
print a
print a.dtype
print a.dtype.itemsize
print np.int8(8.0)
a=1+0.1j
b=0.2
print a+b
a=np.arange(7,dtype=‘D’)
print a
#查看数据类型
print np.dtype(float)
print np.dtype(‘f’)
print np.dtype(‘f2’);print np.dtype(‘f4’);print np.dtype(‘f8’)
print “AAAAAAAAAAAAA”
t=np.dtype(float) # t=np.dtype(‘float’)
print t.char,t
#dtype类型属性type
print t.type
#dtype类型属性str 保存一个表示数据类型的字符串
print t.str
print “BBBBBBBBBBBBBB”
#一维数组的切片与索引
a=np.arange(10)
print a[3:5] #左闭右开
print a[1:7:2] ##左闭右开,间隔2
print a[4::-1] # 输出[4 3 2 1 0]
print “CCCCCCCCCCCCCCCC”
#处理数组形状
print a.reshape(2,5) #将1行10列数组转换成2行5列数组
b=np.arange(24).reshape(2,3,4)
print b
print b.ravel() #将多为数组降为1维数组,默认以行为准,参数-1以列为准
print b.flatten(-1) #拉直操作,默认以行为准,参数-1以列为准
print b.ravel().reshape(4,6)
print b.ravel().reshape(4,6).transpose() #转秩操作
print “DDDDDDDDDDDDDDDDDDD”
#reshape函数返回一个新数组,但原数组本身.不变;
resize在返回一个新数组的同时也改变原数组本身。
print “b=”,b
print “b.reshape=”,b.reshape(4,6)
print “b=”,b
b.resize(2,12)
print “b=”,b
b.shape=(2,3,2,2) #用元组的形式指定数组形状
print b
print “EEEEEEEEEEEEEEEEEEEEEEEEE”
#堆叠数组
a=np.arange(9).reshape(3,3)
print a
b=a**2
print a**2
c=np.hstack((a,b,a)) #水平叠加
d=np.vstack((a,b))#垂直叠加
print c,“Hello”,d
print np.concatenate((a,b),axis=1) #concatenate功能数组叠加,axis=0默认水平叠加,axis=1垂直叠加
d=np.dstack((a,b,a)) #深度叠加,沿着第三个坐标轴(纵向)的方向叠加一摞数组。
print d

aa=np.arange(2)
bb=aa*2
print aa,bb
#column_stack列式叠加,以列方式对一维数组进行堆叠,多维数组和hstack类似
print np.column_stack((aa,bb)) #以列方式对一维数组进行堆叠
print np.column_stack((a,b)) #多维数组和hstack类似
print np.hstack((a,b))==np.column_stack((a,b))
#row_stack行式叠加,以行方式对一维数组进行堆叠,多维数组和vstack类似
print np.row_stack((aa,bb))
print np.row_stack((a,b))
print np.row_stack((a,b))==np.vstack((a,b))

print “FFFFFFFFFFFFFFFFFFF”
#数组拆分
a=np.arange(9).reshape(3,3)
print a
print type(np.vsplit(a,3)),np.vsplit(a,3) #纵向切分
print np.hsplit(a,3)#横向切分
print “深向切分”
print “切分前”
a=np.arange(18).reshape(2,3,3)
print a
print “切分后”
print np.dsplit(a,3)
print “GGGGGGGGGGGGGGGG”
print"数组的属性,不需要加()"
print a
print a.ndim #数组的维度
print a.shape#数组的每一维度的大小
print a.dtype#数组中元素的数据类型,numpy要求数组元素类型一致
print a.size #数组中元素个数
print a.itemsize #返回数组中各个元素所占用的字节数
print a.itemsize*a.size #返回数组占用空间大小(字节为单位)
b=np.arange(5)
print b
print a.T #转秩,与transpose()函数功能相同
print b.ndim
b=np.array([1,2+2j]) #复数用j表示,定义一个数组,包含两个元素
print b.real #获取数组的实部
print b.imag #获取数组的虚部
print b.dtype #复数数据类型自动变成复数类型
b=np.arange(4).reshape(2,2)
f=b.flat
print f[[1,3,2]] #取列表中的某几个元素
for i in f: #对列表做循环
print i
b.flat=7 #对数组整体赋值
print b
b.flat[2]=3

print b #对数组某个元素赋值
b.flat[[2,3]]=2
print b

print “GGGGGGGGGGGGGGGGGGGGGGGGGGG”
print “数组的转换,tolist()方法”
a=np.array([1+1j,0.3+0.8j])
print a
print a.dtype
b=a.tolist()
print b
print type(b) #此时b已经不是numpy数组,不能再具有dtype属性,查看类型
a=11
print type(a) #a.dtype
b=np.array([1+1j,0.3+0.8j])
c=b.astype(float) #将数组元素转换成指定类型
print c,b #转换完成虚部被舍弃

print “HHHHHHHHHHHHHHHHHHHHHHH”
print “创建数组的视图”
#acopy=lena.copy()
#print acopy

Python中pandas:#coding=utf-8
import pandas as pd
import numpy as np
#Series
obj=pd.Series([1,2,3,4])
print obj
obj=pd.Series([1,2],index=[‘a’,‘b’])
print obj
data=pd.Series([0,1,2,3],index=[1,2,3,4])
print data
print data[data>1]
print data*3
print data[3]
print pd.notnull(‘a’)

#DataFrame
data={‘state’:[‘beijin’,‘shanghai’,‘hangzhou’,],‘a’:[‘a’,‘b’,‘c’]}
print pd.DataFrame(data)
print pd.DataFrame(data,columns=[‘state’,‘a’],index=[1,2,3])
a=pd.DataFrame(data)
print a.ix[1]
print a.T
print a[2:4]

a=pd.Series(np.arange(4,8),index=[‘a’,‘b’,‘c’,‘d’])
print a
print ‘aaaaaa’
print a[:4]
print ‘aaaaaa’
print a[:5]

df1=pd.DataFrame(np.arange(1,13).reshape(3,4),columns=[‘a’,‘b’,‘c’,‘d’],index=[‘A’,‘B’,‘C’])
print df1
df2=pd.DataFrame(np.arange(1,10).reshape(3,3),columns=[‘a’,‘b’,‘e’])
print df2
print df1.add(df2,fill_value=0)


**Python中matplotlib:**  
 *线型图:*



import matplotlib.pyplot as plt
x=[1,3,5]
y=[4,6,8]

x1=[3,4,6]
y1=[5,4,9]

plt.plot(x, y, label=‘First Line’)
plt.plot(x1, y1, label=‘Second Line’)
plt.xlabel(‘Plot Number’)
plt.ylabel(‘Important var’)
plt.title(‘Interesting Graph\nCheck it out’)
plt.legend()
plt.show()
在这里,我们绘制了我们已经看到的东西,但这次我们添加另一个参数label。 这允许我们为线条指定名称,我们以后可以在图例中显示它。
使用plt.xlabel和plt.ylabel,我们可以为这些相应的轴创建标签。


接下来,我们可以使用plt.title创建图的标题,然后我们可以使用plt.legend()生成默认图例


**条形图:**



import matplotlib.pyplot as plt
plt.bar([1,3,5,7,9],[5,2,7,8,2], label=“Example one”)
plt.bar([2,4,6,8,10],[8,6,2,5,6], label=“Example two”, color=‘g’)
plt.legend()
plt.xlabel(‘bar number’)
plt.ylabel(‘bar height’)
plt.title(‘Epic Graph\nAnother Line! Whoa’)
plt.show()
plt.bar为我们创建条形图。 如果你没有明确选择一种颜色,那么虽然做了多个图,所有的条看起来会一样。
这让我们有机会使用一个新的 Matplotlib 自定义选项。 你可以在任何类型的绘图中使用颜色,例如g为绿色,
b为蓝色,r为红色,y为黄色,k为黑色,w为白色,买等等。 你还可以使用十六进制颜色代码,如#191970。


**直方图:**  
 接下来,我们会讲解直方图。 直方图非常像条形图,倾向于通过将区段组合在一起来显示分布。 这个例子可能是年龄的分组,或测试的分数。  
 我们并不是显示每一组的年龄,而是按照 20 ~ 25,25 ~ 30… 等等来显示年龄。 这里有一个例子:



import matplotlib.pyplot as plt
population_ages = [22,55,62,45,21,22,34,42,42,4,99,102,110,120,121,122,130,111,115,112,80,75,65,54,44,43,42,48]
bins = [0,10,20,30,40,50,60,70,80,90,100,110,120,130]
plt.hist(population_ages, bins, histtype=‘bar’, rwidth=0.8)
plt.xlabel(‘x’)
plt.ylabel(‘y’)
plt.title(‘Interesting Graph\nCheck it out’)
plt.legend()
plt.show()
对于plt.hist,你首先需要放入所有的值,然后指定放入哪个桶或容器。 在我们的例子中,我们绘制了一堆年龄,并希望以 10 年的增量来显示它们。
我们将条形的宽度rwidth设为 0.8,但是如果你想让条形变宽,或者变窄,你可以选择其他的宽度。


**散点图**



import matplotlib.pyplot as plt
x = [1,2,3,4,5,6,7,8]
y = [5,2,4,2,1,4,5,2]
plt.scatter(x,y, label=‘skitscat’, color=‘k’, s=25, marker=“o”)
plt.xlabel(‘x’)
plt.ylabel(‘y’)
plt.title(‘Interesting Graph\nCheck it out’)
plt.legend()
plt.show()
plt.scatter不仅允许我们绘制x和y,而且还可以让我们决定所使用的标记颜色color,大小s和类型marker。 有一堆标记选项,请参阅 Matplotlib 标记文档中的所有选项。


**堆叠图:**  
 在这篇 Matplotlib 数据可视化教程中,我们要介绍如何创建堆叠图。 堆叠图用于显示『部分对整体』随时间的关系。 堆叠图基本上类似于饼图,只是随时间而变化。  
 让我们考虑一个情况,我们一天有 24 小时,我们想看看我们如何花费时间。 我们将我们的活动分为:睡觉,吃饭,工作和玩耍。  
 我们假设我们要在 5 天的时间内跟踪它,因此我们的初始数据将如下所



import matplotlib.pyplot as plt
days = [1,2,3,4,5]
sleeping = [7,8,6,11,7]
eating = [2,3,4,3,2]
working = [7,8,7,2,2]
playing = [8,5,7,8,13]
plt.plot([],[],color=‘m’, label=‘Sleeping’, linewidth=5)
plt.plot([],[],color=‘c’, label=‘Eating’, linewidth=5)
plt.plot([],[],color=‘r’, label=‘Working’, linewidth=5)
plt.plot([],[],color=‘k’, label=‘Playing’, linewidth=5)
plt.stackplot(days, sleeping,eating,working,playing, colors=[‘m’,‘c’,‘r’,‘k’])
plt.xlabel(‘x’)
plt.ylabel(‘y’)
plt.title(‘Interesting Graph\nCheck it out’)
plt.legend()
plt.show()
我们在这里做的是画一些空行,给予它们符合我们的堆叠图的相同颜色,和正确标签。 我们还使它们线宽为 5,使线条在图例中显得较宽。 现在,我们可以很容易地看到,
我们如何花费我们的时间。


**饼状图:**  
 饼图很像堆叠图,只是它们位于某个时间点。 通常,饼图用于显示部分对于整体的情况,通常以%为单位。 幸运的是,Matplotlib 会处理切片大小以及一切事情,我们只需  
 要提供数值。



import matplotlib.pyplot as plt
slices = [7,2,2,13]
activities = [‘sleeping’,‘eating’,‘working’,‘playing’]
cols = [‘c’,‘m’,‘r’,‘b’]
plt.pie(slices,
labels=activities,
colors=cols,
startangle=90,
shadow= True,
explode=(0,0.1,0,0),
autopct=‘%1.1f%%’)
plt.title(‘Interesting Graph\nCheck it out’)
plt.show()
在plt.pie中,我们需要指定『切片』,这是每个部分的相对大小。 然后,我们指定相应切片的颜色列表。 接下来,我们可以选择指定图形的『起始角度』。 这使你可以在任
何地方开始绘图。 在我们的例子中,我们为饼图选择了 90 度角,这意味着第一个部分是一个竖直线条。 接下来,我们可以选择给绘图添加一个字符大小的阴影,然后我们
甚至可以使用explode拉出一个切片。
我们总共有四个切片,所以对于explode,如果我们不想拉出任何切片,我们传入0,0,0,0。 如果我们想要拉出第一个切片,我们传入0.1,0,0,0。最后,我们使用autopct,选择将
百分比放置到图表上面。


### Python知识点(四)


一、print()函数  
 1.引号的用法  
 单引号和双引号:直接输出  
 例子:print(’字符串’)或print(’’字符串’’)


三引号:换行(\n)  
 例子:print(‘’’我愿意留在汤婆婆的澡堂里工作两年,  
 第一年在锅炉房和锅炉爷爷一起烧锅炉水,  
 第二年在澡堂给客人搓背,  
 如果我违背工作内容的话,  
 将在这个世界变成一头猪。  
 ‘’')


2、转义字符  
 转义字符是一种特殊的字符常量,在编程语言中,我们用转义字符表示不能直接显示的字符,比如换行键、后退键,回车键等。  
 转义字符总结  
 【\】+转义内容英文缩写首字母  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/ece6f379dd2f419e89d4be3a165ba6f6.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA57yW56iLSUQ=,size_20,color_FFFFFF,t_70,g_se,x_16)  
 3、变量和赋值  
 3.1、变量的命名规范  
 name=‘函数’,这就是一个常见的“给变量赋值”的动作。在这里,name就是一个变量,这行代码的意思,就是把“千寻”这两个字【赋值】给了“name”这个【变量】。


变量的命名规范:  
 1、只能是一个词。  
 2、只能包含字母、数字和下划线  
 3、不能以数字开头  
 4、尽量描述包含的数据内容


二、数据类型与转换  
 1、数据类型  
 1.1、字符串  
 字符串英文string,简写str。只要是被【单/双/三引号】这层皮括起来的内容,不论那个内容是中文、英文、数字甚至火星文。只要是被括起来的,就表示是字符串类型。(示例:‘函数’、‘hanshu’、'123’)


1.2、整数  
 整数英文为integer,简写做int。和我们数学课本中定义的一样:是正整数、负整数和零的统称,是没有小数点的数字。(示例:-1、1、0、1、2)


1.3、浮点数  
 浮点数的英文名是float,与整数(int)和字符串(str)不同,浮点数没有简写。(示例:-0.33、1.0、3.14156)


2、数据拼接  
 就是利用数据拼接符号【+】,将需要拼接的变量连在一起就行了。


2.1、type()函数  
 只需把查询的内容放在type()函数中的括号里就行。(示例:print(type(‘查询的内容’)))


2.2、数据转换  
 2.2.1、str() 函数  
 将其它类型转化为字符型,也可以用引号’',进行转化为字符串  
 例子:num=123,转化成字符串:str(num)或者num=‘123’  
 数据类型转换方法:  
 str():将其他数据类型转成字符串  
 int():将其他数据类型转成整数  
 float():将其他数据类型转成浮点数


2.2.2、int() 函数  
 将其它类型转化成整数型  
 注意:int函数不能将文字型字符串和浮点数字符串转换成整数型,只能将符合整数规范的字符串转换成整数。  
 (例如:'6好好’和’3.6’不能被int转化,'666’则可以被int转换)


2.2.3、float() 函数  
 将其它类型转化成浮点型  
 float()函数也可以将整数和字符串转换为浮点类型,(例如:float(3),float(‘3’))


三、条件判断  
 1、单向判断:



if a=6
#为a赋值
if a>=6:
#条件:如果a大于等于6
print(‘你可以吃蛋糕’)
2、双向判断:if … else …
a=6
#为a赋值
if a>=6:
#条件:如果a大于等于6
print(‘1’)
else:
#条件:如果a小于6
print(‘2’)


3、多向判断:if…elif…else…  
 a=6  
 #为a赋值



if a>=6:
#条件:如果a大于等于6
print(‘1’)
elif 4<a<5
#条件:如果a小于5大于4
print(‘2’)
else:
#其它
print(‘3’)


4、if 嵌套



historyscore=26
if historyscore>=60:
print(‘你已经及格’)
if historyscore>=80:
print(‘你很优秀’)
else:
print(‘你只是一般般’)
else:
print(‘不及格’)
if historyscore<30:
print(‘学渣’)
else:
print(‘还能抢救一下’)
print(‘程序结束’)


解析:该逻辑是为了判断历史成绩的分数,来决定输出的语句;首先先有两个大分支,一个是historyscore>=60分,一个是historyscore<60分,所以if historyscore>=60与else: print(‘不及格’)同级;然后在两个大分支中又各分两个分支,当>=60分时,下面的一个分支historyscore>=80,一个是其它(60~80),所以 if historyscore>=80:与else:print(‘你只是一般般’)同级。当else:print(‘不及格’)时,下面的一个分支是 historyscore<30,一个是else:print(‘还能抢救一下’),所以这两个同级  
 \*\*\*注意:当碰到if条件嵌套时,先要理清谁与谁同级,谁是大分支,谁是小分支


四、input()函数的使用  
 例子:a=input(‘请铲屎官输入宠物的名字:’)  
 注意:运行后必须要在终端给input函数进行赋值  
 input()函数的使用:有问有答,有来有往,需要在终端处输入信息。


1、input()函数结果的赋值  
 函数好用,赋值第一,input()函数的结果必须赋值


2、input()函数的数据类型  
 例子:a=input(‘请铲屎官输入宠物的名字:’)  
 a的数据类型是字符串  
 返回类型,必为str,不管你在终端输入的是整数还是字符串,输入值必为字符串。


3、input()函数结果的强制转换  
 例子:a=int(input(‘请铲屎官输入宠物的名字:’))  
 a就变成了整数类型了  
 想要整数,源头转换,输入值需要整数时,input()函数结果需要强制转换。


### Python知识点(五)


Python 变量类型  
 变量赋值  
 Python 中的变量赋值不需要类型声明。  
 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。  
 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。  
 等号(=)用来给变量赋值。  
 等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如:  
 counter = 100 # 赋值整型变量  
 miles = 1000.0 # 浮点型  
 name = “John” # 字符串  
 print (counter)  
 print (miles)  
 print (name)  
 多个变量赋值  
 Python允许你同时为多个变量赋值。例如:  
 a = b = c = 1  
 以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。  
 您也可以为多个对象指定多个变量。例如:  
 a, b, c = 1, 2, “john”  
 以上实例,两个整型对象1和2的分配给变量 a 和 b,字符串对象 “john” 分配给变量 c。  
 标准数据类型  
 在内存中存储的数据可以有多种类型。  
 例如,一个人的年龄可以用数字来存储,他的名字可以用字符来存储。  
 Python 定义了一些标准类型,用于存储各种类型的数据。  
 Python有五个标准的数据类型:  
 Numbers(数字)  
 String(字符串)  
 List(列表)  
 Tuple(元组)  
 Dictionary(字典)  
 Python数字  
 数字数据类型用于存储数值。  
 他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。  
 当你指定一个值时,Number对象就会被创建:  
 var1 = 1  
 var2 = 10  
 您也可以使用del语句删除一些对象的引用。  
 del语句的语法是:  
 del var1[,var2[,var3[…,varN]]]]  
 您可以通过使用del语句删除单个或多个对象的引用。例如:  
 del var  
 del var\_a, var\_b  
 Python支持四种不同的数字类型:  
 int(有符号整型)  
 long(长整型[也可以代表八进制和十六进制])  
 float(浮点型)  
 complex(复数)  
 Python字符串  
   
 str = ‘Hello World!’


print(str) # 输出完整字符串  
 print(str[0] )# 输出字符串中的第一个字符  
 print(str[2:5])# 输出字符串中第三个至第五个之间的字符串  
 print(str[2:]) # 输出从第三个字符开始的字符串  
 print(str \* 2) # 输出字符串两次  
 print(str + “TEST”)# 输出连接的字符串  
 Python列表  
 List(列表) 是 Python 中使用最频繁的数据类型。  
 列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。  
 列表用 [ ] 标识,是 python 最通用的复合数据类型。  
 列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。  
 加号 + 是列表连接运算符,星号 \* 是重复操作。如下实例:


list = [‘runoob’, 786, 2.23, ‘john’, 70.2]  
 tinylist = [123, ‘john’]


print(list)# 输出完整列表  
 print(list[0])# 输出列表的第一个元素  
 print(list[1:3])# 输出第二个至第三个元素  
 print(list[2:])# 输出从第三个开始至列表末尾的所有元素  
 print(tinylist \* 2 )# 输出列表两次  
 print(list + tinylist)# 打印组合的列表  
 更新列表  
 你可以对列表的数据项进行修改或更新,你也可以使用append()方法来添加列表项,如下所示:  
 实例(Python 2.0+)  
 #!/usr/bin/python # -*- coding: UTF-8 -*- list = [] ## 空列表 list.append(‘Google’) ## 使用 append() 添加元素 list.append(‘Runoob’) print list  
 删除列表元素  
 可以使用 del 语句来删除列表的元素,如下实例:  
 实例(Python 2.0+)  
 #!/usr/bin/python list1 = [‘physics’, ‘chemistry’, 1997, 2000] print list1 del list1[2] print “After deleting value at index 2 : " print list1  
 Python列表脚本操作符  
 列表对 + 和 \* 的操作符与字符串相似。+ 号用于组合列表,\* 号用于重复列表。  
 如下所示:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/369c21b10f9a4b35ae29ff387280bba2.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA57yW56iLSUQ=,size_17,color_FFFFFF,t_70,g_se,x_16)  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/1bdae14bda9745938bdce96dcc1c9cbe.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA57yW56iLSUQ=,size_19,color_FFFFFF,t_70,g_se,x_16)  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/b2de12399d6f47a2884d835f8bbe884e.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA57yW56iLSUQ=,size_19,color_FFFFFF,t_70,g_se,x_16)  
 Python元组  
 元组是另一个数据类型,类似于List(列表)。  
 元组用”()"标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表  
 修改元组  
 元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如下实例:  
 #!/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;  
 元组运算符  


**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化学习资料的朋友,可以戳这里无偿获取](https://bbs.csdn.net/topics/618317507)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
  • 10
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值