Python语法基础

55 篇文章 0 订阅
31 篇文章 0 订阅

前言

2.1 数据类型

和其他编程语言相比,Python语言中的变量不需要显示数据类型的声明,Python的变量类型是根据变量的赋值内容而自动生成的。
Python 六大数据类型:

  1. 数字: 包含int(整型)、long(长整型,但python3中已经没有了,python3中只有int)、complex(复数)、float(浮点型)、bool(布尔型)
  2. 字符串(String): 比如:“hello world”,“python”
  3. 列表(List): 比如:[1,2,3,4],[’a‘,‘b’,‘c’,‘d’]
  4. 字典(Dictionary):例如:{“name”:“poge”,“age”:30}
  5. 元组(Tuple): 例如:(1,‘hello’,3)
  6. 集合(Set):例如:{’a‘,’b‘,’c‘,’d‘}

以上是Python最基本的6种数据类型,本节先说数字类型,其他5大类型后续再讲。

数字类型:
表示数字或数值的数据类型称为数字类型。

数字类型有哪些?

  1. 整型(int)
  2. 浮点型(float)
  3. 复数类型(complex)
  4. 布尔类型(bool)

tips:Python中使用type()函数可以查看变量的类型

2.1.1 整数

Python3中整型已经不分 int和long了,只有int型!
整型表示形式:

  1. 二进制:以“0B”或“0b”开头(比如0b101)
  2. 八进制:以 “0o”或“0O”开头(比如0o510)
  3. 十进制:比如10、29、40
  4. 十六进制 :以“0x”或“0X”开头(比如0xA7A)

整型不同形式的转换

  1. bin():十进制转换为二进制,输出形式是字符串
  2. oct():十进制转换为八进制,输出形式是字符串
  3. hex():十进制转换为十六进制,输出形式是字符串
  4. int() :接收一个符合整型规范的字符串,并将字符串转换为整型

tips1:Python中当多个变量的值相同时,这个值在内存中并没有被保存多次,只是多个变量都指向了同一内存,举例如下:

a = 6
b = 6
c = a
print(id(a), id(b), id©)

输出:

1643146464 1643146464 1643146464

id()可以取出变量的内存地址,从结果可以看出,a,b,c三个变量都指向了同一内存。但如果修改了a的值,那a的内存地址和b,c的内存地址及值有什么变化呢?举例如下:

a = 6
b = 6
c = a
print(id(a), id(b), id©)
a = 8
print(id(a), id(b), id©)

结果:

1643146464 1643146464 1643146464
1643146528 1643146464 1643146464

从上面可以看出,a的地址变了,b,c的地址没有变。

数字时Python中的不可变对象,当改变它的值时,并不是真的修改内存中变量的值,而是把新的值放入内存中,然后修改变量,使得变量指向新值的内存地址。浮点数、复数等其他数字类型及其他类型的变量具有同样的特点。

tips: Python具有自动内存管理功能,如果一个值没有任何变量指向,则Python自动将其删除,因此,一般Python程序员不需要太多考虑内存管理的问题(这就是Python与C语言最大的区别,自动内存回收机制!),但显式使用del命令删除不再使用的值,仍然是一个优秀程序员需要具备的基本素养!

2.1.2 浮点数

所谓浮点数就是数学中的小数

  • Python中浮点型一般以十进制表示,由整数和小数部分(可以是0)组成。
  • 对于很大或者很小的浮点型,可以使用科学计数法表示。
  • Python中的浮点型是双精度的,每个浮点型数据占8个字节(即64位)。

科学计数法就是用字母e或E作为幂的符号,以10为基础,格式:xey表示的就是x乘以10的y次幂,例如:
1.2e-2:1.2乘以10的-2次幂 = 0.012
2e3:2乘以10的3次幂 = 2000
例如:

a = 1.2
print(type(a))
b = 1e-2
print(type(b))
c = 2e3
print©

输出:

<class ‘float’>
<class ‘float’>
2000.0

2.1.3 复数

  • 复数由“实部”和“虚部”两部分组成;
  • 实数部分和虚数部分都是浮点型;
  • 虚数部分后面必须有j或J

Python中表示复数的两种方法:

  1. a+bj
  2. complex(a,b)
    其中a表示实部,b表示虚部举例:

a = 2 + 6j
print(type(a))
b = complex(2, 6)
print(type(b))
print(id(a), id(b))

结果:

<class ‘complex’>
<class ‘complex’>
2718471372752 2718437554352

获取复数的实部、虚部、共轭复数等

a = 2 + 6j
print(a.imag) # .imag可以获取复数的虚部
print(a.real) # .real可以获取复数的虚部
print(a.conjugate()) # .conjugate()方法可以获取复数的共轭复数

结果:

6.0
2.0
(2-6j)

2.1.4 布尔类型

  • Python中的布尔类型只有True和False两个取值;
  • True对应整数1,False对应整数0。
  • 常用的布尔运算包括 and、or、not 三种

等同于False的值:

  • None;
  • False;
  • 任何为0的数字类型,如0、0.0、0j;
  • 任何空序列,如’‘’'、()、[];
  • 空字典,如{};
  • 用户定义的类实例,如类中定义了bool()或者len()方法,并且该方法返回0或者布尔值False。

等同于True的值:

  • 非零数值
  • 非空字符串

and和or运算有一条重要的法则:短路法则
and举例:
a and b ,如果a是False,则整个结果必定为False,因此返回a的值,如果a是True,则表达式的结果取决于b,因此返回b

a = 0
b = 2
print(a and b)
a = 1
b = 0
print(a and b)
a = 1
b = 3
print(a and b)

结果:

0
0
3

or举例:
a or b ,如果a是True,则整个结果必定为True,因此返回a的值,如果a是False,则表达式的结果取决于b,因此返回b

a = 0
b = 2
print(a or b)
a = 1
b = 0
print(a or b)
a = True
print(a and ‘z=T’ or ‘z=F’)

2
1
z=T

2.1.5 数值运算

常见的数值运算有:加、减、乘、除、取余、指数运算等
例如:a=2 ,b=8

在这里插入图片描述

例如:

a=3
b=6
a+b #加法
Out[4]: 9
a-b #减法
Out[5]: -3
a*b #乘法
Out[6]: 18
a**2 # 指数运算 a的2次方
Out[7]: 9
a%b #取余
Out[8]: 3

Python有两种除法:/ 和 //
/:真除法
//:整除法,向下取整
例如:

a = 6
b = 4
print(a/b)
print(a//b)
b = -4
print(a/b)
print(a//b)

结果:

1.5
1
-1.5
-2

2.1.6 数值计算函数库

Python内置了很多实用的数值函数,例如:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

另外,还有随机数函数用途也是有很多的:random模块

import random
print(random.random()) # random.random()作用是生成一个[0-1]范围内的随机数
print(random.randint(1, 2000)) # random.randint(a,b)作用是生成一个[a-b]范围内的随机整数

0.48771584654043476
58

2.1.7 type函数

type的用途是,当你不知道变量的数据类型时,可通过它来查询,type时内置函数,可以直接使用,不需要导包。

a = 2
b = -1.1
c = “abc”
d = [‘a’, ‘b’]
print(type(a))
print(type(b))
print(type©)
print(type(d))

<class ‘int’>
<class ‘float’>
<class ‘str’>
<class ‘list’>

2.2 标识符

2.2.1 什么是标识符

在编程语言中,标识符就是程序猿自己规定的具有特定含义的名称和符号,比如:变量名、属性名、类名等。

python中以下划线开头的标识符有特殊含义,这里我们简单了解以下,后续遇到会重点讲解的,看不懂的也可直接跳过,不影响后续的学习。

  1. 以单下划线开头的标识符:不能直接访问的类属性,需要通过类提供的接口访问。比如:_foo
  2. 以双划线开头的标识符:代表类的私有成员,比如:__foo
  3. 以双划线开头和结尾的标识符:代表的是python中的特殊方法,比如:init代表类的构造函数

一切变量在使用之前必须定义,需注意:

  • python可以对多个变量同时赋值
  • 一个变量可通过赋值指向不同类型的对象
    举例:

a = b = c = d = 5
print(a)
print(type(a))
print(b)
print©
print(d)
a = ‘abcd’
print(type(a))

5
<class ‘int’>
5
5
5
<class ‘str’>

2.2.2 标识符的命名规则

  • 使用字母、数字、下划线(_)及其组合作为标识符名称,但不允许以数字开头。
  • 见名知意。
  • 标识符中不能有空格或标点符号(括号、引号、逗号等等)
  • python语言区分大小写,比如:myname和Myname是两个不同的标识符。
  • 标识符不能与python关键字、内置函数、内置数据类型等 重名

标识符的命名方法:

  • 统一命名方式:
    (1)单个小写字母,如 a,b(2)单个大写字母,如 A,B(3)多个小写字母,如 ftpserver (4)多个大写字母,如 FTPCLIENT(5)下划线分隔多个单词 如 myname
    MYHEIGHT
    (6)大写词(驼峰命名),如MyAge(7)大小写词(小驼峰命名),如myAge
  • 建议:my_name这种写法,我个人非常喜欢的写法,而且越来越多的人采用这种写法,编写代码更加高效!

2.2.3 Python关键字

所谓关键字就是编程语言中,内置的具有特殊功能的标识符。

python中查看所有关键字的方法:

import keyword
print(keyword.kwlist)

结果:

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

2.2.4 Python的BIF

BIF(build in function)顾名思义,就是内置函数的意思,也就是python自带的一些函数功能,对于这些函数,可以不用导包,直接使用。比如:abs、oct 、open等等

那怎么查看python中都有哪些内置函数呢?

print(dir(builtins))

输出:

[‘ArithmeticError’, ‘AssertionError’, ‘AttributeError’, ‘BaseException’, ‘BlockingIOError’, ‘BrokenPipeError’, ‘BufferError’, ‘BytesWarning’, ‘ChildProcessError’, ‘ConnectionAbortedError’, ‘ConnectionError’, ‘ConnectionRefusedError’, ‘ConnectionResetError’, ‘DeprecationWarning’, ‘EOFError’, ‘Ellipsis’, ‘EnvironmentError’, ‘Exception’, ‘False’, ‘FileExistsError’, ‘FileNotFoundError’, ‘FloatingPointError’, ‘FutureWarning’, ‘GeneratorExit’, ‘IOError’, ‘ImportError’, ‘ImportWarning’, ‘IndentationError’, ‘IndexError’, ‘InterruptedError’, ‘IsADirectoryError’, ‘KeyError’, ‘KeyboardInterrupt’, ‘LookupError’, ‘MemoryError’, ‘ModuleNotFoundError’, ‘NameError’, ‘None’, ‘NotADirectoryError’, ‘NotImplemented’, ‘NotImplementedError’, ‘OSError’, ‘OverflowError’, ‘PendingDeprecationWarning’, ‘PermissionError’, ‘ProcessLookupError’, ‘RecursionError’, ‘ReferenceError’, ‘ResourceWarning’, ‘RuntimeError’, ‘RuntimeWarning’, ‘StopAsyncIteration’, ‘StopIteration’, ‘SyntaxError’, ‘SyntaxWarning’, ‘SystemError’, ‘SystemExit’, ‘TabError’, ‘TimeoutError’, ‘True’, ‘TypeError’, ‘UnboundLocalError’, ‘UnicodeDecodeError’, ‘UnicodeEncodeError’, ‘UnicodeError’, ‘UnicodeTranslateError’, ‘UnicodeWarning’, ‘UserWarning’, ‘ValueError’, ‘Warning’, ‘WindowsError’, ‘ZeroDivisionError’, ‘build_class’, ‘debug’, ‘doc’, ‘import’, ‘loader’, ‘name’, ‘package’, ‘spec’, ‘abs’, ‘all’, ‘any’, ‘ascii’, ‘bin’, ‘bool’, ‘bytearray’, ‘bytes’, ‘callable’, ‘chr’, ‘classmethod’, ‘compile’, ‘complex’, ‘copyright’, ‘credits’, ‘delattr’, ‘dict’, ‘dir’, ‘divmod’, ‘enumerate’, ‘eval’, ‘exec’, ‘exit’, ‘filter’, ‘float’, ‘format’, ‘frozenset’, ‘getattr’, ‘globals’, ‘hasattr’, ‘hash’, ‘help’, ‘hex’, ‘id’, ‘input’, ‘int’, ‘isinstance’, ‘issubclass’, ‘iter’, ‘len’, ‘license’, ‘list’, ‘locals’, ‘map’, ‘max’, ‘memoryview’, ‘min’, ‘next’, ‘object’, ‘oct’, ‘open’, ‘ord’, ‘pow’, ‘print’, ‘property’, ‘quit’, ‘range’, ‘repr’, ‘reversed’, ‘round’, ‘set’, ‘setattr’, ‘slice’, ‘sorted’, ‘staticmethod’, ‘str’, ‘sum’, ‘super’, ‘tuple’, ‘type’, ‘vars’, ‘zip’]

2.2.5 专有标识符

python中有些标识符是具有特殊含义的

python中可以用下划线作为变量的前缀和后缀来指定特殊变量

  • _xxx 不通过import 导入,一般被看作私有的变量,在模块或类的外面不可使用
  • __xxx 类中的私有变量
  • xxx由系统定义

比如:
__name__表示符就是用来判断当前模块是被导入还是被直接调用执行

如果模块被导入,那__name__的值为模块的名称,如果模块是被直接执行,那__name__的值为__main__

举例如下:

在这里插入图片描述

__name__的值为: main

那如果用另外一个模块去导入它呢?

在这里插入图片描述

__name__的值为: abcd

所以我们一般写python程序的时候,就要用下面这个基本框架来写

def func():
print(“__name__的值为:”, name)
if name == “main”:
func()

2.3 变量的作用域

在python中变量的作用域也叫做命名空间,也叫做名称空间,就是变量的的创建、修改、查找,都是在作用域中进行的。

2.3.1 Python作用域类型

python中作用域有四种类型:

  1. 全局作用域
  2. 局部作用域
  3. 闭包函数的嵌套作用域
  4. 内置作用域

1 全局作用域
在模块文件的顶部声明的变量具有全局作用域。

从模块外部看,模块中的全局变量就是模块对象的属性。

全局作用域的作用范围仅限于本模块内部
如果你再函数内修改了全局变量的值,但是这个修改的值仅在函数内部有效,函数外部全局变量的值不会发生改变,例如:

a = 1
def func():
a = 4
print(a)
if name == “main”:
print(a)
func()
print(a)

1
4
1

tips:如果你真的想在函数内部修改全局变量的值,可使用global关键字在函数内声明该变量,例如:

a = 1
def func():
global a
a = 4
print(a)
if name == “main”:
print(a)
func()
print(a)

结果

1
4
4

可以看出再打印全局变量a时,他的值已经改变为4了

2 局部作用域

局部变量是在def定义的函数内的,每次函数被调用都会创建一个新的局部作用域,在函数内部的变量,除非特别声明为全局变量,否则默认为局部变量,只能在函数内使用。

def func():
global a
a = 4
print(a)
if name == “main”:
print(a)

输出的结果为报错了:

在这里插入图片描述

但有时候,需要在函数内定义全局变量,这就可以用global关键字来提升变量的作用域为全局作用域,例如:

def func():
global a
a = 4
print(a)
if name == “main”:
func()
print(a)

结果:

4
4

一般我们建议尽量少定义全局变量,因为在程序运行期间,全局变量会一直占用内存空间,内存是非常珍贵的资源,有的时候做的项目比较大,需要加载大量数据到内存中,就会明显感觉到吃力,甚至发生内存溢出的错误。

3.闭包函数的嵌套作用域
在嵌套函数中,如果引用了外层函数中的变量,则称之为闭包。
例如:

def func():
a = 3
def func_2():
print(a)
func_2()
if name == “main”:
func()

3

但是这里需要注意一点,内嵌函数中的变量a,你可以在内嵌函数中引用,但是不可以修改它的值,否则会报错!

如果真想改,可以用nonlocal关键字,在内嵌函数中强制生命a这个变量不是局部变量,或者用列表list也可以
4 内置作用域
系统内固定模块里定义的变量拥有内置作用域。

变量作用域的优先级顺序:
局部变量>嵌套作用域>全局作用域>内置作用域。

python 中只有模块、类、函数才能引入新的作用域,其他语法结构都不可以

2.3.2 赋值操作符

python中赋值操作符为:=

等号=运算符的左边是变量名,右边是存储在变量中的值

tips:python中对变量赋值,不是直接将值付给变量,而是将变量的引用赋值给变量。引用就是指的地址

2.3.3 增量赋值

python不支持C语言中的x++,–x这种自增自减运算

但python支持+=、-=之类的增量运算符
比如:
a+=1 表示的就是a=a+1

常见的增量运算符还有:

  • +=
  • -=
  • *=
  • /=
  • %=
  • **=
  • //=
    用法与+=完全一样

2.3.4 多元赋值

  1. python语言允许同时对多个变量赋值:
    例如:

a = b = c = 8

  1. python语言也可以为多种变量指定不同类型的数据:

a, b, c = 1, 0.98, “hello”
print(a)
print(b)
print©

1
0.98
hello

2.4 语法规则

任何一种语言都有自己的语法规则,汉语、英语、编程语言中的python、c/c++、Java等等,每种语言的规则都不太一样。

Python语言的语法规则很简单,本节将从注释、代码块、同行书写多条语句以及空行和缩进等方面进行介绍。

2.4.1 注释

注释:

  1. 注释用于在程序指定位置添加说明性信息
  2. 注释不参与程序运行,仅起说明作用

注释分类:

  1. 单行注释:以#号开头
  2. 多行注释:三个单引号’''注释的内容‘’‘,或三个双引号“”“注释的内容”“”

例如:

在这里插入图片描述

2.4.2 代码块

缩进相同的一组语句构成一个代码块,也称为代码组。

像 if、while、def、class这样的复合语句,首行是以关键字开始,以冒号:结束,首行和之后的代码构成一个代码块。

下面例子中,每个红框就是一个代码组

在这里插入图片描述

2.4.3 同行书写多条语句

正规的写法是一行只写一条语句,但是如果一条语句太长,长度超出屏幕上的编辑框了,可以用反斜杠来实验多行语句。
例如:

在这里插入图片描述

这里我们就可以把一条语句用两行甚至更多行来写,用反斜杠就可以实现。
但是需要注意的是,[]、{}、()中的多行语句,不需要使用反斜杠,直接换行就行,例如:

在这里插入图片描述

2.4.4 空行与缩进

函数之间或类的方法之间,一般会用一行空行进行分割,这只是让代码更加清晰好看,有利于后期代码的维护,但空行并不是python的语法,因此并不是强制要求的。

以下面代码为例:func1和func2两个函数之间用空行进行分割。

在这里插入图片描述

但是缩进却是python语言的语法规则,python是靠缩进来表示代码块的,类比C语言中的大括号:{}

缩进的空格数是可以变的,但是同一块代码块的缩进空格数是一致的。

缩进的话建议用空格,而不是table键,因为移植到有些平台上,table表示的缩进不是四个空格,就会让代码缩进发生变化,但是用空格缩进,就不会出错。

2.5 I/O操作

I/O: Input Ouput(输入输出的意思)

输入和输出是相对计算机内存而言的

2.5.1 输出操作

因为现在基本没有再用python2.x版本的了,所以我们后续只讲python3.x版本的内容。

python中输出用的是print()函数
举例如下:

print(“hello world!”) # 直接打印一个字符串
a = 3
print(a) # 打印一个变量
b = 4
print(a + b) # print()的参数可以是一个表达式
print(‘a+b=’, a + b) # print()多个参数,用逗号隔开
c = [1, 2, 3, 4]
for i in c:
print(i, end=“-”) # print()end参数指的是输出多个参数时,中间用什么符号连接,这里可以是任意字符,也可以是空格

hello world!
3
7
a+b= 7
1-2-3-4-

2.5.2 输入操作

input()函数用来接收用户键盘的输入。

不管用户输入的是什么数据,input函数的返回值都是字符串,如果需要转换成对应的数据类型,可以进行类型转换,也可以使用eval函数,把输入的数据还原成原有的数据类型。
举例如下:

a = input()
b = input(“请输入一个整数:”)
print(type(a))
print(type(b))
d = eval(input(“请输入一个浮点数:”))
print(type(d))

输出:

67
请输入一个整数:12
<class ‘str’>
<class ‘str’>
请输入一个浮点数:0.89
<class ‘float’>

2.6 Python模块

大家想象一下,如果你把所有的代码都放在一个文件里面,加入说你的工程项目有10万行代码,你把10万行代码都放在一个文件里面,那你后期想要维护代码,是不是就要付出很大的代价!

那我们一般都是怎么解决这个问题呢,就是将功能比较相近的函数,放到一个文件中,假如我们10万行代码分别放到了10个文件中,那每个文件平均下来就1万行代码,是不是好维护一些。

在python中,一个.py 文件就是一个模块(Module)

使用模块可以提高代码的可维护性,使用模块也可以避免函数名和变量名的冲突。

2.6.1 模块的分类

python中有三种模块

  • 内置标准模块(其他语言中叫标准库),执行help(‘modules’)可查看所有的python自带模块
  • 第三方开源模块,可通过pip install 模块名 联网进行安装
  • 自定义模块,你自己创建一个.py文件就可以称为模块,可在另一个程序中导入。

2.6.2 使用pip管理Python扩展库

pip 是python官方推荐的安装和管理python扩展库(第三方库)

pip的功能有:安装、升级、卸载第三方库

安装:

pip isntall 模块名称

离线安装.whl文件

pip install *** .whl

升级:

pip install --upgrade 模块名

卸载:

pip uninstall 模块名

2.6.3 模块导入和使用

直接导入模块:

import 模块名

给导入的模块起一个别名(当本身模块名太长时):

import 模块名 as 模块名的别名

只需要使用模块中某个对象时:

from 模块名 import 对象名

只需要使用模块中某个对象时,且给这个对像起一个新的名字:

from 模块名 import 对象名 as 对象别名

一次性导入模块中的全部对象(强烈不建议这么做):

from 模块名 import *

2.6.4 模块的导入顺序

当需要导入的模块较多时,一般的导入顺序如下:

  • 导入python标准模块,比如:sys、time、os、date、math等等
  • 导入第三方开源模块,比如:Numpy、Pandas、matplotlib等等
  • 导入自己开发的模块

这个导入顺序只是约定成俗的东西,并没有强制要求,你可以按照任意的顺序导入,但是最好大家都按照这个标准来,这样代码也会比较清晰,别人更好读懂你的代码。

2.7 Python对象

python是一种面向对象的编程语言

玩python的人都知道一句非常经典的话:
在python中一切皆对象

就像玩Linux的人都知道:在Linux中一切皆文件

我们python中的变量、函数、容器、类等等皆是对象。

那什么是对象呢?
实际生活中,我们每个人都是一个对象,每一本数也都是一个对象,每个动植物也都是一个对象。

那每个人都有自己的名字,每本书都有自己的书名,每个动植物都有自己的编号,那这些呢,我们称之为对象的属性

人会说话,会写字,书可供人阅读,动植物也各有其功能,那这些对象所具有的功能,我们称之为对象的方法

那python中怎么定义对象呢
这里有个关键字class

用来定义类的,通过类的实例化就可以得到类的对象。类的详细的知识,后面会讲,这里我们只做简单的了解

class Cat(object):
name = ‘Tom’ # 定义属性
def mao_speak(self): # 定义方法
print(“喵喵喵”)
if name == “main”:
obj = Cat()
print(obj.name)
obj.mao_speak()

结果:

Tom
喵喵喵

除了上述自定义的 类之外,python还有很多可直接使用的对象类型,称为python内置对象,例如:
列表、集合、元组、字典等等

2.8 小结

本章先是讲解了python的六大数据类型、标识符和变量作用域,然后是python的语法规则、I/O操作和python模块,最后是python对象的简述。

PS:
写一篇文章真的很费劲,会占用大量的时间,希望大家能认真的学习,跟着案例进行好好的研究,尽快入门python,这样后续我们才能去实际做一些有用的项目。

现在是打基础阶段,打基础本就是不见成效的,这就跟盖楼一个道理,地基都在地下,外人跟本看不到,只有当一层层楼拔地而起的时候,才能看到成效。

也就是说,只有开始做项目你才能看到效果,但是楼到底能建多高,是取决于你的地基有多深有多牢固的。

我很喜欢白岩松说的一句话:“多去做一些看似无用的事情”

我发现很多人,眼睛里只能看到当下对自己有好处的事情,什么事能及时反馈好处,就做什么,眼前看不到好处的事情,就不去做。

能长久获得的快乐,都是经过一番艰难困苦之后得到的

以下是我整理的一些提升程序员自身能力的资料,都已经整理并打包好了。

-END-


关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python学习路线

在这里插入图片描述

在这里插入图片描述

二、Python基础学习

1. 开发工具

给大家准备考Python开发过程中需要用到的必备工具,包括最新版PyCharm安装永久激活工具。
在这里插入图片描述

2. 学习笔记

在这里插入图片描述

3. 学习视频

在这里插入图片描述

三、Python小白必备手册

图片

四、Python实战案例

在这里插入图片描述

五、Python爬虫秘笈

图片

六、数据分析全套资源

在这里插入图片描述

七、Python面试集锦

在这里插入图片描述

在这里插入图片描述

1. 简历模板

在这里插入图片描述
在这里插入图片描述

资料领取

上述这份完整版的Python全套学习资料已经上传网盘,朋友们如果需要可以微信扫描下方二维码输入“领取资料” 即可自动领取
或者

点此链接】领取

  • 21
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值