Python学习笔记

写在开头:

1. 本文的实例均采用网页版Python编辑器—Jupyter Notebook。In[ ]表示键盘输入,下行/Out[ ]为输出结果

2. Jupyter Notebook中的代码块采用Shift+回车键运行。

3. 代码块注释语句 #

  标题语句 ###,内容*(选择markdown

4. 编程时,如果想要利用上文的变量、函数等,必须先执行上文的代码块,才可以使用。

3. Anaconda安装以及配置环境变量可以参考:

Anaconda安装以及配置环境变量 - 知乎 (zhihu.com)

4. 解决Jupyter-notebook不自动跳转浏览器的详细方法可以参考:

解决Jupyter-notebook不自动跳转浏览器的详细方法 - 知乎 (zhihu.com)

目录

一、Python基础

二、Python数值运算

三、几种常用的变量类型

四、Python字符串

五、Python中的索引

六、Python中的列表(List)

七、Python字典

八、Python集合

九、Python的赋值机制

十、Python判断结构

十一、Python循环结构

十二、Python函数

十三、Python包

十四、Python异常

十五、Python文件操作

十六、Python中的类(面向对象编程)

十七、Python时间


一、Python基础

1. 输出语句:print(‘想要原封不动输出的文本内容’)或者是print(“想要原封不动输出的文本内容”)

Python学习笔记_第1张图片

Python学习笔记_第2张图片

2. 不写print也可以默认打印,前提是一个代码片段的最后一行

二、Python数值运算

1. 四则运算

(1). 加减法:可用print语句输出结果;也可以直接输入计算表达式计算结果

Python学习笔记_第3张图片

 (2). 乘法:可用print语句输出结果;也可以直接输入计算表达式计算结果

Python学习笔记_第4张图片

(3). 除法:分为取整(/)和取余(%);可用print语句输出结果;也可以直接输入计算表达式计算结果

Python学习笔记_第5张图片

Python学习笔记_第6张图片

(4). 乘方:x**m,表示xm次方

三、几种常用的变量类型

Int(整型)+Float(浮点型)+str(字符串类型,采用‘  ’声明)+bool(布尔类型)

1. 先得定义变量,才可以使用变量;Python自动判断数据类型,并且可以输出变量的值

Python学习笔记_第7张图片

2. type(tang) 打印变量的类型

Python学习笔记_第8张图片

Python学习笔记_第9张图片

3. 变量类型的转换

(1). 此处将上述定义的float类型的tang,转化为int型为例

Python学习笔记_第10张图片

(2). 将数值类型的字符串类型转化为float

Python学习笔记_第11张图片

注:非数值型的字符串无法转化为字符型/浮点型

Python学习笔记_第12张图片

Python学习笔记_第13张图片

(3). 可直接输入表达是判断真或假

Python学习笔记_第14张图片

4. 表达式中运算符的先后顺序

( ) --> ** --> */  --> +和-

5. 基本的数值操作

(1). 绝对值

Python学习笔记_第15张图片

(2). 取整(四舍五入)

Python学习笔记_第16张图片

Python学习笔记_第17张图片

(3). 求最值( min( )—求最小值,max( )—求最大值 )

Python学习笔记_第18张图片

(4). 科学记数法(e要算10的多少次幂)

Python学习笔记_第19张图片

(5). 十六进制

Python学习笔记_第20张图片

四、Python字符串

1. 字符串基础

(1). 字符串的声明

Python学习笔记_第21张图片

(2). +表示拼接

Python学习笔记_第22张图片

(3). *表示n个、n倍(n是泛指)

Python学习笔记_第23张图片

(4). len( )求字符串的长度即元素个数

Python学习笔记_第24张图片

2. 字符串的基本操作

(1). split( ),表示切分,成为一个list(列表)结构。默认以空格切分

Python学习笔记_第25张图片

指定分隔符切分

Python学习笔记_第26张图片

(2). join( ),表示组合,默认组合后按照空格组合

(3). replace(),表示对指定部分的替换操作

Python学习笔记_第27张图片

方法的本质在程序中创建一个副本,相当于是对副本操作,并不会改变实际的值。输出字符串tang后仍然为之前的值

Python学习笔记_第28张图片

可以通过将修改的副本赋给一个新开辟变量空间的变量。这样会将修改“保存”下来。

下述的方法也都是同理

 Python学习笔记_第29张图片

(4). upper( )表示将字母全部转化为大写字母

Python学习笔记_第30张图片

(5). lower()表示将字母全部转化为小写字母

Python学习笔记_第31张图片

 (6). strip()表示取消左右两边空格符(字符串内部的空格不会取消

Python学习笔记_第32张图片

①. lstrip()表示去掉左边的空格

Python学习笔记_第33张图片

②. rstrip()表示去掉右边的空格

Python学习笔记_第34张图片

(7). 格式化操作,对传入的参数值按照指定的格式格式化

Python学习笔记_第35张图片

①. 可以指定传入参数的显示顺序

Python学习笔记_第36张图片

②. 可以对传入参数赋上具体的值

Python学习笔记_第37张图片

注:参数的名称不能相同,必须唯一

Python学习笔记_第38张图片

(8). %作用是参数和值的一一匹配

Python学习笔记_第39张图片

五、Python中的索引

1. 索引介绍

(1). 索引可以理解为所处位置的一种编号,一种下标

(2). 从前往后索引下标从0开始

Python学习笔记_第40张图片

(3). 从后往前索引下标从-1开始

Python学习笔记_第41张图片

(4). 正数表示从前往后数,负数表示从后往前数

2. 索引基础

(1). 通过索引进行定位

Python学习笔记_第42张图片

Python学习笔记_第43张图片

(2). 索引越界

Python学习笔记_第44张图片

(3). 索引切片(:表示左闭右开的区间)

Python学习笔记_第45张图片

Python学习笔记_第46张图片

哪边不写表示哪边取到所有

①. 哪边不写表示哪边取到所有

Python学习笔记_第47张图片

Python学习笔记_第48张图片

 ②. 取到前面所有

Python学习笔记_第49张图片

 ③. 左右都取全部

Python学习笔记_第50张图片

④. ::n,表示每隔n个取一个值,简易理解为+n取,0,n,2n,…  此处拿n=2为例

Python学习笔记_第51张图片

六、Python中的列表(List)

1. 列表介绍

(1). 通过[  ]来创建一个list结构

Python学习笔记_第52张图片

(2). 里面放任何类型都可以的,没有一个长度限制

①. 存放整型

Python学习笔记_第53张图片

②. 存放字符串型

Python学习笔记_第54张图片

③. 存放混合类型

Python学习笔记_第55张图片

2. 列表基础

(1). 列表的声明

①. 光声明,不赋值

Python学习笔记_第56张图片

②. 声明的同时赋值

Python学习笔记_第57张图片

3. 列表的基本操作

(1). len()求列表长度,即列表当中的元素个数

Python学习笔记_第58张图片

(2). 列表的连接操作, +

Python学习笔记_第59张图片

Python学习笔记_第60张图片

 (3). *表示列表的倍数操作

Python学习笔记_第61张图片

(4). 列表的索引

Python学习笔记_第62张图片

(5). 赋值操作

Python学习笔记_第63张图片

(6). 替换操作

Python学习笔记_第64张图片

(7). del表示删除操作(会对列表的原件操作,不是对副本操作)

Python学习笔记_第65张图片

Python学习笔记_第66张图片

从第三个开始删除,一直删除到最后

Python学习笔记_第67张图片

(8). in表示判断当前的数值在不在列表中

Python学习笔记_第68张图片

not in 表示“不在”

(9).  list当中再放一个list

Python学习笔记_第69张图片

查找内层列表中的元素时,先找第一层,再找内层

Python学习笔记_第70张图片

(10). 计数操作

Python学习笔记_第71张图片

(11). 求指定元素在列表当中的索引

当所要查找索引的元素不存在于列表中时,会报错

Python学习笔记_第72张图片

(12). append()实现对列表的添加。执行一次,添加一次。每次只能添加一个元素

Python学习笔记_第73张图片

添加一个列表进去

Python学习笔记_第74张图片

(13). inert()表示在指定的位置进行插入操作

(14). remove()表示删除指定元素

Python学习笔记_第75张图片

若有多个相同的元素,则会把多个元素当中的第一个元素删除

Python学习笔记_第76张图片

Python学习笔记_第77张图片

(15). pop()表示弹出列表中的元素,原列表中也就不存在该元素

Python学习笔记_第78张图片

Python学习笔记_第79张图片

(16). sort()表示按照从小到大的顺序排序,输出的仍为列表形式

Python学习笔记_第80张图片

可以将旧的、无序的列表作为参数传入sort()方法中,将排序结果传入一个新的列表中,使得在内存空间中开辟一个新的空间赋给新列表

Python学习笔记_第81张图片

(17). reverse()表示倒序操作

Python学习笔记_第82张图片

七、Python字典

1. 字典介绍

(1). 通过{}定义

Python学习笔记_第83张图片

 (2). 另一种定义方式

Python学习笔记_第84张图片

 (3). 字典结构:key – value(键值对),其中键是唯一的。

对指定键赋指定值

Python学习笔记_第85张图片

 另一种较直接的方式

Python学习笔记_第86张图片

 2. 字典基础

(1). 通过键找到value

Python学习笔记_第87张图片

 必须是存在的键,不存在的键会报错

Python学习笔记_第88张图片

(2). 对键的重新赋值/更新操作

Python学习笔记_第89张图片

 (3). 初始化一个字典,在字典中没有顺序可言

Python学习笔记_第90张图片

3. 字典的基本操作

(1). 字典中的值可以是列表形式

Python学习笔记_第91张图片

 (2). 字典也可以作为一个值,进行相互的嵌套

 Python学习笔记_第92张图片

 (3). 对键值进行值的修改操作

 Python学习笔记_第93张图片

 (4). get()用于取出键所对应的值

Python学习笔记_第94张图片

 对于字典中不存在的值可以通过get()方法临时创建一个

Python学习笔记_第95张图片

 但是这种操作并不会改变原有的字典

Python学习笔记_第96张图片

 (5). pop()用于值的弹出,并且在原字典中删除

Python学习笔记_第97张图片

 (6). del用于键值对的删除操作

Python学习笔记_第98张图片

 Python学习笔记_第99张图片

 (7). update()更新操作:对于字典中已有的键,将参数的值赋给原有的字典(更新);对于不存在的,进行插入操作,默认插入最后一个位置(插入)

Python学习笔记_第100张图片

 (8). in用于判断键是否在字典当中

Python学习笔记_第101张图片

 (9). keys()方法用于取出字典当中的所有键

Python学习笔记_第102张图片

 (10). values()方法用于取出字典当中的所有值

Python学习笔记_第103张图片

 (11). items()方法用于打印字典中所有的键值对

八、Python集合

1. 集合介绍

(1). 通过{ }表示

Python学习笔记_第104张图片

 (2). 另一种定义方式

Python学习笔记_第105张图片

 (3). 会保留下来唯一的那些元素(去重)

Python学习笔记_第106张图片

 (4). “}”写key-value对,表示一个字典;直接写值,表示一个set集合

2. 集合基础操作

(1). 首先定义两个集合

Python学习笔记_第107张图片

(2). 求集合a和集合b的并集

①. union()方法

Python学习笔记_第108张图片

 ②. | 方法

Python学习笔记_第109张图片

(3). 求集合a与集合b的交集和集合b和集合a的交集

①. intersection()方法

Python学习笔记_第110张图片

 ②. & 方法

Python学习笔记_第111张图片

Python学习笔记_第112张图片

 (4). difference()方法

 a集合来说,b里面哪个元素没有

Python学习笔记_第113张图片

 另一种方式

Python学习笔记_第114张图片

 b集合来说,a里面哪个元素没有

Python学习笔记_第115张图片

 另一种方式

Python学习笔记_第116张图片

 (5).  issubset()方法求子集

Python学习笔记_第117张图片

 b是a的子集

Python学习笔记_第118张图片

 a不是b的子集

Python学习笔记_第119张图片

 (6). 长度比较

Python学习笔记_第120张图片

 ①. a与b互相比较

Python学习笔记_第121张图片

 ②. 自我比较

Python学习笔记_第122张图片

 小于等于等同于“或”的关系,只要满足小于/等于就为真

Python学习笔记_第123张图片

 (7). add()方法用于向集合中插入值

Python学习笔记_第124张图片

 (8). update()方法用于插入群体值

Python学习笔记_第125张图片

(9). remove()方法用于删除元素

 Python学习笔记_第126张图片

 此处的1指的是元素值,不要误认为是索引

Python学习笔记_第127张图片

 (10). pop()方法表示弹出操作。与之前所学不同的是,不能填入任何参数。并且在原集合中删除

Python学习笔记_第128张图片

 默认弹出第一个元素

Python学习笔记_第129张图片

九、Python的赋值机制

1. 变量的赋值传递

 其中tang和WSW在内存空间中指向了同一处地址,通过二者的id值来判断

Python学习笔记_第130张图片

很显然二者是一样的

可以通过is方法判断二者是否是一样的东西

Python学习笔记_第131张图片

 2. 设立一个新的变量,指向内存中的领一块区域

 Python学习笔记_第132张图片

 判断二者是否是一样的东西

Python学习笔记_第133张图片

很显然不是

3. 给不同的变量赋相同的值再来研究

Python学习笔记_第134张图片

 赋值一样,id不同

Python学习笔记_第135张图片

 很显然二者是不一样的两个东西

 4. 再看一种特例

给不同的变量赋相同的值,但是此处的值要比第3点的值小的多

Python学习笔记_第136张图片

 再来判断二者是否是一样的

Python学习笔记_第137张图片

很显然,我们发现二者居然是同一个东西,或者说指向了同一处的内存空间

现象解释:对于比较大的值,会分别构建两块不同的内存空间存储;而对于比较小的值,会指向同一个内存空间。这是由于在Python中为了内存的高效,对于比较小的数,会采用重用的机制

十、Python判断结构

规则抢先知:在Python中不存在类似Java语言和C语言当中的{ }来限定起始截止。通过缩进来判断是否属于方法体的语句。(4个空格=1个tab)

1. if结构

如果符合if提供的条件表达式,则会输出if判断中的语句

Python学习笔记_第138张图片

2. if-elif-else结构

如果不符合if提供的条件表达式;则会去判断elif提供的条件表达式是否符合;若依旧不符合,则会去执行else当中提供的语句

Python学习笔记_第139张图片

3. if与列表结合

Python学习笔记_第140张图片

 4. if与字典结合

Python学习笔记_第141张图片

十一、Python循环结构

规则抢先知:与选择结构一样,在Python中不存在类似Java语言和C语言当中的{ }来限定起始截止。通过缩进来判断是否属于方法体的语句。(4个空格=1个tab)

在循环语句后,加上“:”表示循环语句执行开始

1. while循环

while后加循环的条件表达式。满足表达式则进入循环,不满足表达式则会跳出循环。

Python学习笔记_第142张图片

 while与集合结合应用时,集合不能为空

Python学习笔记_第143张图片

 当集合中的元素全部弹出时,循环停止

2. for循环

语法:for 变量 in 范围、区域

(1). 集合

 Python学习笔记_第144张图片

 一个一个遍历,name等于其中的一个具体的值

(2). range相当于从0开始取多少个

Python学习笔记_第145张图片

 (3). continue表示跳出当前循环,转而执行下一次循环

Python学习笔记_第146张图片

 (4). break表示跳出当前循环并且提前终止整个循环

Python学习笔记_第147张图片

十二、Python函数

1. 算术表达式的计算

Python学习笔记_第148张图片

 Python中没有很复杂的格式要求,赋值后计算,可以直接输出计算后的结果

2. 定义函数并且调用函数

(1). 函数的声明使用def

(2). 在函数名后使用 :来说明函数体的开始

(3). 不存在{ }来框定函数的开始与结尾,通过缩进来判断是否是函数体语句

(4). 在下文的语句中采取函数名来调用函数

Python学习笔记_第149张图片

 3. return返回值

Python学习笔记_第150张图片

 另一种参数赋值形式

Python学习笔记_第151张图片

 4. *表示接受不定参数个数

Python学习笔记_第152张图片

 5. **表示参数只能是键值对的形式

Python学习笔记_第153张图片

十三、Python包

1. %%writefile + 文件名.py,表示在本地写入一个文件

Python学习笔记_第154张图片

 在默认的文件路径下写入一个名为www.py的文件

利用Notepad++打开该文件

文件的内容即为下方定义的变量和函数体

Python学习笔记_第155张图片

 2. %run 表示执行文件

 3. Import语句表示导入。可以导入脚本文件/工具包等等

(1). 当第一次使用import语句执行文件时,会默认执行一次文件内容;当重复执行import语句就不会再执行文件

 

 (2). as表示创建别名 n as m,文件n的别名是m

 Python学习笔记_第156张图片

 4. 直接输入文件名来定位文件的存放位置(即为文件的默认保存路径)

Python学习笔记_第157张图片

 5. 文件名.变量名  这种方式会取到文件中变量的值

(1). 变量值的输出

 (2). 变量的重新赋值

Python学习笔记_第158张图片

 6. 文件名.函数名  这种方式表示调用文件中的函数,让函数执行并产生执行结果

Python学习笔记_第159张图片

 Python学习笔记_第160张图片

 7. from表示从相应的文件中导入全部东西

 (1). 使用导入文件中的变量

Python学习笔记_第161张图片

 (2). 使用导入文件中的函数

Python学习笔记_第162张图片

8. 调用操作系统的工具来删除脚本文件

Python学习笔记_第163张图片

 调用工具来查看文件的默认存放路径

Python学习笔记_第164张图片

十四、Python异常

1. 异常的发生

一个正常的求数字对数的程序,定义了若输入”q”则会提前结束循环。输入2,3,4都可以正常执行得到结果

Python学习笔记_第165张图片

 但我们都知道,在对数当中,指数必须大于0。所以当我们输入0时就会产生异常。

Python学习笔记_第166张图片

 2. try-except,异常的捕获,并作出相应的反应。

可能会产生异常的语句包裹在try:语句块当中;

使用except来针对指定的异常做出反应

当输入的数据使得程序产生异常时,下面所有的东西都不再执行。直接执行对异常的处理当中

Python学习笔记_第167张图片

这种形式的弊端是我们必须要对可能发生的异常种类有很清楚的认识。如果except中写入的异常种类不是程序实际发生的异常种类,异常的捕获就失败了。

下面这个程序是将log放在了分母的位置。而我们知道log1==0,当输入值为1时会产生报错。

Python学习笔记_第168张图片

 3. 针对上述捕获异常产生的异常进行改进

写成exception,遇到任何异常都可以捕捉到

下面这段代码中整合了上述代码的异常。同样,除了ValueErrorZeroDivisionError以外的异常,全部都通过exception来处理。

Python学习笔记_第169张图片

更明显的感受exception

不再输入特定的异常,不管产生什么异常都直接用exception处理。

Python学习笔记_第170张图片

 4. try-raise结构。相当于对一场进行抛出。发现异常后底下的程序都不去执行,会跳出程序

下面这个程序执行一个判断是否存在的操作。当输入的数据存在于列表中时,程序正常执行;但当输入列表以外的数据时,就会抛出此异常

Python学习笔记_第171张图片

 5. 不论有没有异常都会执行的finally语句

(1). 无异常产生时:

Python学习笔记_第172张图片

 (2). 有异常产生时:

Python学习笔记_第173张图片

 (3). except处理异常时

Python学习笔记_第174张图片

 综上可以观察到,不管哪种情况,只要写入finally语句,就一定会执行

十五、Python文件操作

1. 讲指定的内容写到文件当中

通过%%writefil+文件名来定义要写入的文件。会在默认路径下创建一个文件

Python学习笔记_第175张图片

 在默认路径下生成

 文件内容

Python学习笔记_第176张图片

 2. 在编译环境中查看文件内容

(1). 首先需要将文件导入。通过open(‘文件路径’)

 (2). 调用read()方法读取文件的内容

Python学习笔记_第177张图片

(3). 按行输出文件内容

调用readlines()方法来实现文件的按行输出。

输出内容当中的“\n”表示换行符,因为在文件中输入一串英文后敲入了回车键。所以会显示\n

Python学习笔记_第178张图片

 (4). 利用循环输出文件内容

Python学习笔记_第179张图片

 (5). 对文件的操作行文结束之后,记得要关闭文件

 3. 对文件的逐句写操作

(1). open()方法的第一个参数表示执行操作的文件名。对于不存在的文件会先创建一个文件再进行下面操作。

(2). 第二个参数’W’,表示将要执行的是写操作

(3). write()中的内容即为要写入文件当中的内容。其中换行用表示\n来达到效果

Python学习笔记_第180张图片

 执行结束后会在默认路劲下生成一个名为tang_writetxt文件

 文件内容

Python学习笔记_第181张图片

 (4). 再执行一遍相同的操作后会造成文件内容的覆盖

Python学习笔记_第182张图片

文件内容变为

(5). 若想对文件内容进行追加式写入,则应该将open()方法的第二个参数改为’a’

Python学习笔记_第183张图片

 文件内容

Python学习笔记_第184张图片

 (6). open()方法的第二个参数变为’r’ 表示读,必须加入输出语句才能有输出结果

Python学习笔记_第185张图片

 4. 文件与异常结合

Python学习笔记_第186张图片

会对之前操作生成的tang_write.txt文件中的内容进行重写

文件中的内容:

Python学习笔记_第187张图片

 (2). 另一种语法

as相当于对文件的一个重命名

with相当于自动的完成tryexceptfinally

遇到错误会给文件自动关闭;没有错误的话,执行结束后也会自动关闭文键

文件内容:

写在最后:每次对文件执行完操作后都要关闭,是为了防止有报错或者数据的丢失

十六、Python中的类(面向对象编程)

1. 类的介绍

(1). class关键字定义:class + 类名 + :

(2). 类当中定义的变量和值所有的实例都可以共享

(3). 初始化函授又称构造函数,是每个类当中必要的。当创建一个类时会首先调用构造函数。此处定义的__init__(),注意此处是两个’-‘。括号内的第一个参数表示创建的实例名,第二个和第三个参数表示实例的属性

(4). self是必须要指定的,代表类的实例。但是不需要向其中传入参数

(5). 帮助信息相当于是对类的一个说明。

Python学习笔记_第188张图片

 ①. 可以通过:“类名+.+__+doc+__”的形式来输出帮助信息。注意此处是两个’-’

Python学习笔记_第189张图片

 ②. 创建两个对象,命名为p1p2。通过“类名=类.()”定义。向()内传入属性(即此处的nameage)的值

Python学习笔记_第190张图片

 ③. 通过对象.属性,表示对象调用属性,输出属性的值

Python学习笔记_第191张图片

 同样可以在调用的同时赋值,相当于修改属性的值

Python学习笔记_第192张图片

 ④. 通过对象.函数,表示对象调用类中的函数,执行函数的代码

Python学习笔记_第193张图片

 ⑤. del用来删除对象的属性操作 del+对象.属性

Python学习笔记_第194张图片

 同样可以使用delattr来达到效果

Python学习笔记_第195张图片

⑥. hasattr()用来检测一下对象中是否存在目标属性 hasattr(对象名,属性字段’)

Python学习笔记_第196张图片

 ⑦. getattr()用来获取对象所需的属性值 getattr(对象名,属性字段’)

Python学习笔记_第197张图片

 ⑧. setattr()表示修改对象的属性值  setattr(对象名,要修改的属性值的属性名修改后的属性值’)

Python学习笔记_第198张图片

 2. 类的有关信息

打印类的帮助信息

打印当前对象对应的类名

打印当前类的定义所在的模块

打印类的父类

打印字典结构,记录当前类的数据组成

Python学习笔记_第199张图片

Python学习笔记_第200张图片

 3. 子类与父类,子类继承自父类。例如:动物和狗的关系

父类中定义好的东西子类可以继承使用,而避免了重复定义。子类只需定义自己独有的即可。

具体解释可以参考代码行的注释

Python学习笔记_第201张图片

 运行代码和结果

Python学习笔记_第202张图片

十七、Python时间

1. 导入时间模块

 2. time()方法表示从1970.1.1至今经历了多少时间。表示一个时间戳

Python学习笔记_第203张图片

3. localtime()方法表示自动对时间戳进行换算,得出现在的时间

4. asctime()表示格式化时间

Python学习笔记_第204张图片

5. strftime(),指定格式输出时间

Python学习笔记_第205张图片

6. 导入日历模块(calendar)并指定年份和月份输出日历

 Python学习笔记_第206张图片

你可能感兴趣的:(python,list,jupyter,windows)