社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python零基础到进阶学习所有知识点!

python • 7 年前 • 527 次点击  

基础语法

Python 是一门高阶、动态类型的多范式编程语言;定义 Python 文件的时候我们往往会先声明文件编码方式:

        人生苦短,请用 Python,大量功能强大的语法糖的同时让很多时候 Python 代码看上去有点像伪代码。譬如我们用 Python 实现的简易的快排相较于 Java 会显得很短小精悍:

控制台交互

        可以根据 __name__关键字来判断是否是直接使用 python 命令执行某个脚本,还是外部引用;Google 开源的 fire 也是不错的快速将某个类封装为命令行工具的框架:



Python 2 中 print 是表达式,而 Python 3 中 print 是函数;如果希望在 Python 2 中将 print 以函数方式使用,则需要自定义引入:

from __future__ import print_function

我们也可以使用 pprint 来美化控制台输出内容:

import pprint

stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']
pprint.pprint(stuff)# 自定义参数pp = pprint.PrettyPrinter(depth=6)
tup = ('spam', ('eggs', ('lumberjack', ('knights', ('ni', ('dead',('parrot', ('fresh fruit',))))))))
pp.pprint(tup)

模块

        Python 中的模块(Module)即是 Python 源码文件,其可以导出类、函数与全局变量;当我们从某个模块导入变量时,函数名往往就是命名空间(Namespace)。而 Python 中的包(Package)则是模块的文件夹,往往由 __init__.py指明某个文件夹为包:


Package 可以为某个目录下所有的文件设置统一入口:

someDir/main.pysubModules/__init__.pysubA.pysubSubModules/__init__.pysubSubA.py


表达式与控制流

条件选择

Python 中使用 if、elif、else 来进行基础的条件选择操作:

Python 同样支持 ternary conditional operator:

a if condition else b

也可以使用 Tuple 来实现类似的效果:

循环遍历

for-in 可以用来遍历数组与字典:

如果我们希望使用数字序列进行遍历,可以使用 Python 内置的  range函数:

基本数据类型

可以使用内建函数进行强制类型转换(Casting):

int(str)
float(str)
str(int)
str(float)
Number: 数值类型


布尔类型

Python 提供了常见的逻辑操作符,不过需要注意的是 Python 中并没有使用 &&、|| 等,而是直接使用了英文单词。


String: 字符串

Python 2 中支持 Ascii 码的 str() 类型,独立的 unicode() 类型,没有 byte 类型;而 Python 3 中默认的字符串为 utf-8 类型,并且包含了 byte 与 bytearray 两个字节类型:


Python 字符串支持分片、模板字符串等常见操作:


# 移除所有的特殊字符re.sub('[^A-Za-z0-9]+', '', mystring)

如果需要判断是否包含某个子字符串,或者搜索某个字符串的下标:

Regex: 正则表达式

下面列举了常见的表达式使用场景:

集合类型

List: 列表

Operation: 创建增删

list 是基础的序列类型:


可以使用 append 与 extend 向数组中插入元素或者进行数组连接

可以使用 pop、slices、del、remove 等移除列表中元素:

Iteration: 索引遍历

你可以使用基本的 for 循环来遍历数组中的元素,就像下面介个样纸:


如果你在循环的同时也希望能够获取到当前元素下标,可以使用 enumerate 函数:

Python 也支持切片(Slices):

Comprehensions: 变换

Python 中同样可以使用 map、reduce、filter,map 用于变换数组:

reduce 用于进行归纳计算:

filter 则可以对数组进行过滤:

字典类型

创建增删

d = {'cat': 'cute', 'dog': 'furry'} # 创建新的字典print d['cat'] # 字典不支持点(Dot)运算符取值

如果需要合并两个或者多个字典类型:

索引遍历

可以根据键来直接进行元素访问:

可以使用 for-in 来遍历数组:

其他序列类型

集合

函数

函数定义

Python 中的函数使用 def 关键字进行定义,譬如:

参数

Option Arguments: 不定参数

生成器


装饰器

装饰器是非常有用的设计模式:

Managed Attributes: 受控属性

类方法与静态方法

对象

实例化

属性操作

Python 中对象的属性不同于字典键,可以使用点运算符取值,直接使用 in 判断会存在问题:

建议使用 hasattr、getattr、setattr 这种方式对于对象属性进行操作:

异常与测试

异常处理

Context Manager - with

with 常用于打开或者关闭某些资源:

单元测试

存储

文件读写

路径处理

Python 内置的 __file__关键字会指向当前文件的相对路径,可以根据它来构造绝对路径,或者索引其他文件:

可以使用 listdir、walk、glob 模块来进行文件枚举与检索:

简单文件读写

复杂格式文件

JSON

XML

我们可以使用 lxml 来解析与处理 XML 文件,本部分即对其常用操作进行介绍。lxml 支持从字符串或者文件中创建 Element 对象:

其提供了迭代器以对所有元素进行遍历:

lxml 支持以 XPath 查找元素,不过需要注意的是,XPath 查找的结果是数组,并且在包含命名空间的情况下,需要指定命名空间:

Excel

可以使用 [xlrd]() 来读取 Excel 文件,使用 xlsxwriter 来写入与操作 Excel 文件。

文件系统

对于高级的文件操作,我们可以使用 Python 内置的 shutil

# 递归删除 appName 下面的所有的文件夹shutil.rmtree(appName)

网络交互

Requests

Requests 是优雅而易用的 Python 网络请求库:

数据存储

MySQL


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/IR5KdabECT
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/4300
 
527 次点击