Python语法基础

前言

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,这样后续我们才能去实际做一些有用的项目。

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

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

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

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

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

读者福利:知道你对Python感兴趣,便准备了这套python学习资料

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习等习教程。带你从零基础系统性的学好Python!

零基础Python学习资源介绍

👉Python学习路线汇总👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)

👉Python必备开发工具👈

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

👉实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

👉100道Python练习题👈

检查学习结果。

👉面试刷题👈

在这里插入图片描述

在这里插入图片描述

资料领取

这份完整版的Python全套学习资料已经上传网盘,朋友们如果需要可以点击下方微信卡片免费领取 ↓↓↓【保证100%免费】
或者

点此链接】领取

好文推荐

了解python的前景:https://blog.csdn.net/SpringJavaMyBatis/article/details/127194835

了解python的兼职副业:https://blog.csdn.net/SpringJavaMyBatis/article/details/127196603

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值