阅读python官网

253 阅读7分钟

工欲善其事,必先利其器。让我们先阅读一下使用文档吧~


总体概述:主要学习python的解释器、控制流工具、数据结构、模块、输入输出、错误和异常、类、标准库、


python官网-中文

1. python开始

python本身易学,功能强大

提供高级数据结构,面向对象编程

解释型语言、可以在多平台运行、可以编写脚本同时可以编写应用级别的程序

有丰富的第三方包支持扩展

可使用c/c++对其进行扩展

python比shell更容易编写批量处理

python比c提供了更多的错误检查

python支持模块切割,便于复用,内置了大量的模块模块包括 I/O、系统调用、套接字,甚至还包括 Tk 图形用户界面工作套件。

Python 是一种解释型语言,不需要编译和链接,可以节省大量开发时间。

2. python解释器

2.1 调用解释器

这里主要是python理解为一种脚本语言,在控制台中调用执行,也可以通过文件的形式调用

2.2 解释器的运行环境

2.2.1 源文件的字符编码

image.png

命令行输入python3

image.png

3. python速览

提示符(>>> 与 ...)区分输入与输出

Python 注释以 # 开头

让我开始简单的上手吧~

3.1 python用作计算器🧮

3.1.1 数字

运算符 +-* 和 / 可被用来执行算术运算;圆括号 (()) 可被用来进行分组

//表示向下👇取整; % 表示取余 **表示乘方

除法返回的是浮点数 ;混合运算的时候会把整数转为浮点数计算

image.png

3.1.1.1 逻辑运算

image.png

3.1.1.2 数据类型之间的比较

image.png

3.1.2 文本

字符串可以使用单引号单引号 ('...') 或双引号 ("...")

转译单引号或者双引号本身的话 前面加\

如果不希望前置 \ 的字符转义成特殊字符,可以使用 原始字符串,在引号前添加 r 即可:print(r'C:\some\name') ,不加r的话 会把\n当作换行

image.png

3.1.3 列表

列表支持,不同类型的元素

image.png

4. 控制流工具

主要掌握

条件if

循环 for、range

pass、match、定义函数

4.1 条件

4.1.1 if

image.png

elif 是else if的缩写,用于避免多余缩进。

✏️ input是输入函数

4.1.2 match

march可以理解为switch语句

image.png

4.2 循环

4.2.1 for语句

遍历列表

image.png

利用python内置的enumeate()列举出列表中的数 ,索引值和数列的元素值

image.png

4.2.2 range()

使用range生成等差数列 ,生成的序列不包括给定的终止值。

image.png range生成的列表和列表虽然行为一样,但是不同点在于range是在迭代的时候才会一个一个的返回期望的值

迭代

image.png

求和

image.png

总结: 目前我自己觉得range比较适合求和,迭代的话上面提到的enumerate函数相比更方便些

4.3 pass

image.png

4.4 定义函数

4.4.1 使用def来定义函数

image.png

4.4.2 给定参数的默认值

image.png

4.4.3 多次调用时的变量是否受到影响

image.png

4.4.4关键字参数

image.png

关键字的位置无所谓,但是有一条 他后面不能有位置参数parrot(1000) 这个1000就是位置参数。

还有一点,对同一个参数不能赋值两次

image.png

是否可以理解为 *name 接收列表 ** name 接收对象

4.4.5 特殊参数

image.png

既可以位置也可以关键词

image.png

仅位置 image.png

仅关键字

image.png

TODO:为什么要采用这几种方式传入参数 剩余参数

image.png

解构参数

image.png 匿名函数

image.png 字符串的说明

image.png ✏️ 注意看 打印的是print(函数名._ doc_)

注解

image.png

编码风格

image.png

5. 数据结构

主要学习列表、del、元组和序列、集合、字典

循环的技巧、深入条件控制、序列和其他类型比较

5.1 列表

5.1.1 列表本身的方法

添加: 可以添加一个元素,也可以添加一个列表,也可以在指定位置添加

删除: 可以按照值删除,可以按照位置删除

查找: 可以按照值查找位置,也可以按照位置获取值

计算长度: 可以计算列表中某个value的个数

可以排序: 正序、逆序

  • list.append(x) 末尾添加一个元素
  • list.extend(iterable) 在原来的列表上添加一个新列表

image.png

  • list.insert(index,value) 在index的位置插入一个元素value

image.png list.insert(len(list),value) 等同于 list.append(value)

  • list.remove(value) 删除第一个值为value的元素。未找到元素的时候会触发异常

image.png

  • list.pop(index) 删除指定位置的元素,并返回删除的元素值。 如果没有指定index,那么删除最后一个元素,并返回删除的元素值 image.png

image.png

  • list.clear() 删除列表中所有的元素

image.png

  • list.index(value[ ,start[,end]]) 在列表中查找值为value的索引, 可以指定从start开始到end结束这之间里面查找,可以取start的值,end的值取不到。 是一个左闭右开的区间

image.png

  • list.count(value) 返回列表中元素值为value的个数

image.png

排序

  • list.sort() 排序 改变原来的列表
  • list.reverse() 逆序 改变原来的列表

image.png

  • list.copy() 返回列表的浅拷贝

image.png

image.png

5.1.2 操作列表但非列表的属性方法

如len 获取列表的长度

image.png

del语句

可以删除列表中一个元素,很多元素 ,还可以删除整个变量

image.png

注意:按照索引进行的删除

迭代

image.png

多个列表迭代

image.png

迭代逆序

image.png

正序迭代

image.png

set去重

image.png

5.1.3 列表实现栈 先进后出 后进先出

使用append(value)追加元素, 使用pop() 弹出元素

5.1.4 列表实现队列

使用append(value)追加元素, 从头开始往出拿元素

image.png

5.1.5 列表的推导

相当于遍历列表,然后进行一个操作,得到一个新的列表

相当于js数组中的map、filter 及多个map、filter等操作, 目前看起来很有用

是不改变for后面的列表的

image.png image.png

5.1.6 嵌套列表

image.png

5.2 元组

输入的时候可以不加(),但是输出的时候是有的

TODO: 留坑 元组特定用在哪里

image.png

image.png

5.3 集合

image.png

集合也支持推导式

image.png

5.4 字典

image.png

上面图片那么多内容,只需要知道字典类似于js中对象, 同时key不能使用列表,

操作字典可以通过list(d), sorted(d),del image.png

使用dist初始化 字典的迭代

image.png

image.png

以下的代码和上面的等价

c =  [v for v in raw_data if not math.isnan(v)]

6.模块

由于代码量的大量增加, 增加了模块,一个文件可以成为一个模块, 可以在另外一个文件中进行引入

定义模块 image.png

使用模块

image.png 只要知道导入的是模块名称就可以了 。模块里面定义的是模块级别的,不是全局的 防止冲突

image.png

image.png

6.1 脚本方式执行模块

image.png

附加:sys是系统相关的行参和函数 sys.argv是Python中sys模块中的一个变量,它是一个包含命令行参数的列表。当在命令行中执行Python脚本时,可以通过sys.argv获取传递给脚本的参数信息。

sys.argv列表的第一个元素sys.argv[0],通常是脚本的名称或路径。后续的元素sys.argv[1]、sys.argv[2]等是传递给脚本的命令行参数。

6.2模块搜索路径

image.png

6.3 已经编译的python

image.png

6.4标准模块

image.png 要么是为了效率,要么是提供一些基本操作

6.5dir内置函数

dir() 用于查找模块定义的名称,返回经过排序的结果

image.png

6.6 包

如何构造包的

image.png

导入和使用

image.png

6.6.1 从包中导入*

image.png

image.png

6.6.2 相对导入

image.png

6.6.3 多目录中的包

image.png

TODO: 模块的更深入使用 还需要磨练, 目前只知道简单的导入使用

7 输入和输出

这里只有两种输出:1.命令行中, 2. 文件中

7.1 输出

7.2 输入

TODO: 明天再来继续学习~