Python
2020-07-02 10:30:49 0 举报
AI智能生成
登录查看完整内容
Python编程:从入门到实践的知识点梳理及扩充
作者其他创作
大纲/内容
Python
基础知识
数据结构
变量和简单的数据类型
变量
一般采用小写字母、下划线和数字组合
使用描述性的名称,name比n要好
字符串
合并字母串:直接引号+/-
使用方法改变字符串字母的大小写
首字母:方法title()
所有字母大写:方法upper()
所有字母小写:方法lower()
删减空白
删除所有空白:方法strip()
删除开头空白:方法lstrip()
删除末尾空白:方法rstrip()
避免语法错误
变量名不对应
单/双引号使用不正确
附录C
数字
整数
浮点数
注释
单行注释#
多行注释''' or \"\"\"
列表:元素的有序集合
2个重要的概念
索引:访问列表中单个元素
切片:处理列表中的部分元素
官网文档说明
修改、添加和删除元素
修改元素:指定列表名和要修改的元素的索引,list[i]=n
添加元素
末尾:方法append('元素')
删除元素
del语句:del list_name[索引]
方法pop():listi_name.pop() 删除列表末尾元素 list_name.pop(索引) 删除列表任意索引处的元素
方法remove():list_name.remove('元素')根据值删除元素 只删除第一个指定的元素值,多个相同的元素值删除需要用循环
组织列表
永久排序:方法sort()
临时排序:函数sorted()
永久反转列表元素顺序:方法reverse()
打印列表长度:函数len()
避免索引错误
索引是从0开始的,超出索引数会出现错误
索引-1处指向最后一个元素,此时仅当列表为空时会出现错误
发生索引错误找不到解决办法时,可将列表或其长度打印出来
操作列表
遍历列表:for循环
适用:对列表的每个元素执行相同的操作
基本语法:for a in a_list: print(a)
临时变量命名:单(元素名)复(列表名)数的形式有利于理解列表元素
缩进:在for语句后,每一行缩进的代码都是循环的一部分,且针对列表中的每一个循环元素执行相同的操作
避免缩进错误
语法错误易发现逻辑错误较难发现
Python根据缩进来判断代码行与前一个代码行的关系
语法错误:忘记缩进紧跟for语句行的代码、for语句行遗漏冒号和不必要的缩进等等
逻辑错误:忘记缩进额外的代码行、循环后不必要的缩进等等
创建数值列表:函数range()
函数list(range()):将range()的结果直接转成列表
切片:使用列表的一部分
创建切片:提供制定使用的第一个元素和最后一个元素的索引list[n:m]
复制列表-创建副本:list1=list[:]
元组:不可用索引修改元素的列表,但可重新赋值
遍历元组语法同遍历列表
修改元组变量,重新赋值即可(无法用索引修改)
元组数据结构较列表简单,适用于存储一组在整个程序生命周期内都不变化的值
代码格式:PEP8(Python Enhancement Proposal)
缩进:四空格(制表符需转换为空格)
行长:代码不超过80字符;注释不超过72字符
空行:尽量少;合理划分代码块的功能
PEP 8 :请访问https://python.org/dev/peps/pep-0008/
字典:一系列健-值对
基本使用
访问:variables = dictionary_name['keyN']
添加键-值对:dicitonary_name['keyN'] = 'valueN'
修改字典中的值:dict_name['keyN'] = 'modified_valueN'
删除健-值对:del语句,del dict_name['keyN']
格式:一对健-值占1行
遍历
所有的键-值对:方法items()
说明:items()返回一个健-值对列表
所有的健
方法keys():for key_name in dict_name.keys():
for语句中直接用单变量即可:for key_name in dic_name:
所有的值
方法values(): for value_name in dict_name.values():
剔除重复项-所有不重复的值:函数-集合set()for value_name in set(dict_name.values()):
嵌套:一系列字典存储在列表中 /列表作为值存储在字典中 /字典作为值存储在字典中
代码复杂
被嵌套的所有字典的结构应相同
可拆分为字典嵌套在列表中
函数:带名字的代码块
定义函数: def function_name(形参):调用函数: function_name(实参)
形参:函数完成工作所需的一项信息
实参:调用函数时传递给函数的信息
传递实参的方式
调用函数时可混合使用三种实参传递方式
位置实参:基于实参的顺序
关键词实参:传递给函数的“名称-值”对
形函数中指定形参默认值,调用时Python默认为位置实参
避免实参-形参数不匹配错误
传递任意2数量的实参
定义函数的元组形参:def funvtion_name(*tuple_name):
定义函数的字典形参:def function_name(**dict_name):
函数返回值:return语句将值返回到 调用函数的代码行
调用返回值的函数时,需要提供一个变量来存储返回的值variables1 = function_name(实参)
实参可选:Python将非空字符解释为True,可使用if语句实现
返回字典
传递列表
禁止函数修改列表-传递其切片副本即可:function_name(list_name[:]):
函数存储于模块中及调用
模块:扩展名为.py的文件
导入模块:import module_name
导入模块中的所有函数; from module_name import *
句号调用模块中的函数:module_name.function_name()
as-指定别名
函数:from module_name import function_name as fn
模块:import module_name as mn
函数编写指南
给函数指定描述性的名称,且只使用小写字母和下划线
每个函数都应简要地阐述其功能的注释,该注释应紧跟函数定义后面,并采用文档字符串格式\"\"\"
如果程序或模块中包含多个函数时,可使用2个空行将相邻的函数分开
所有的import语句都应放在文件开头,唯一例外-文件开头使用注释来描述整个程序
类:创建对象,实例化
方法:类中的函数称之为方法
函数和方法唯一重要的区别是调用方式不同
方法__init__(),其形参self必不可少,且居于首位原因:每个与类关联的方法调用都自动传递实参self且以self为前缀的变量可供类中所有方法使用
方法的编写指南可参考函数的参考指南
创建
类:class ClassName():
实例
属性:类中定义的变量,以'self.variable_name=variable_name'进行初始化
访问属性:句号表示法
调用方法:句号表示法
使用
给属性指定默认值后,无须给此属性提供初始值的形参
修改属性的值
通过实例直接访问并修改
通过在方法修改,设置形参
继承
子类的方法__init__()
创建子类时,父类必须包含在当前文件中且位于子类前面,或在文件开头将父类导入
定义子类时,必须括号内指定父类的名称:class SubClassName(ClassName):
函数super():帮助Python将父类和子类关联起来
给子类定义属性和方法:父类并不包含的
重写父类的方法:与重写的父类方法同名
细化属性和方法,并作为独立类提取出来
原类中方法内设置属性调用新类self.attribute_0 = Attribute0()
实例中调用语法variable_0.attribute_0.method()
模拟复杂的实物-重写类
导入
以父类的名称命名文件
从一个模块导入单个类:from module_name import ClassName
导入整个模块,使用句点表示法访问需要的类:import module_name
导入模块中所有的类:from module_name import *
一个模块中导入另一个模块
自定义工作流程
先在一个文件中完成所有的工作,确定正常运行后,再将类移到独立的模块中
模块与文件的交互方式,在项目开始就尝试将类存储到模块中
先找出能编写出可行代码的方式,再尝试让代码更为组织有序
Python标准库
https://pymotw.com/3/
下载外部模块-实际项目
编码风格
驼峰命名法:类名中每个单词首字母大写,不使用下划线 实例名和模块名小写,且单词间加下划线
每个模块开头也应包含一个文档字符串,对其中的类可用于做什么进行描述
每个类,都应紧跟在类定义后面包含一个文档字符串来简要描述类的功能
类中,1个空行来分隔方法;模块中,2个空行来分割类。此点类似于函数。
需要同时导入标准库中的模块和其他模块(外部or个人编写)时,先编写导入标准库模块的import语句,然后空1行,再导入其他的模块
控制语句
for循环:参照遍历列表/字典-针对同一对象多次执行相同的操作
if语句:条件测试-判断
条件测试:True/False
比较运算符
相等:==
不相等:!=
求模运算符:%,求余数
检查多个条件:为增加可读性,可将每一个测试放在()内
(条件测试) and (条件测试)
(条件测试) or (条件测试)
检查特定值
关键字:in
关键字:not in
布尔表达式:条件测试的别名
if语句
基本语法:if conditional_test: do something
if-else语句:else语句指定条件测试未通过时要执行的操作
if-elif-else语句:检查超过2个的情景
多个elif代码块
末尾else代码块可省略
测试多个条件:多个if语句(if-elif-else仅测试一个条件)
if 语句处理列表
检查特殊元素
确定列表非空:列表为空时返回False
调用多个列表进行条件测试
PEP8语句格式:在诸如== 、>= 和<= 等比较运算符两边各添加一个空格
while循环:指定条件不满足时停止
输入:input(),输入后变量类型是字符串
语法:while conditional_test:
2种退出循环方式
使用标志退出:active = True while active:循环中包括一条语句:active = False即可退出
break退出循环,不在运行循环中的余下代码也不管条件测试的结果如何
continue:返回循环开头,并根据条件测试结果决定是否继续执行循环
while循环处理列表和字典
for 循环是一种遍历列表的有效方式,但在for 循环中不应修改列表,否则将导致Python难以跟踪其中的元素。要在遍历列表的同时对其进行修改,可使用while 循环。通过将while 循环同列表和字典结合起来使用,可收集、存储并组织大量输入,供以后查看和显示。
在列表间移动元素
删除包含特定值的所有列表元素
使用用户输入来填充字典
文件处理
从文件中读取数据
读取整个文件:函数open()
文件路径
相对路径:同父目录
绝对路径
逐行读取
使用文件
将数据写入文件
open(filename,'w/r/a')三种模式
w:写入模式:会覆盖文件原来的内容
r只读模式
a附加模式
Python只能将字符串类型的数据写入文本
写入多行\
程序运行异常:try-except-else代码块
ZeroDivisionError异常
FileNotFoundError异常
分析文本:方法split()-以空格为分隔符将字符串分拆成多个部分并将这些部分都储存到一个列表中,虽然有些单词可能包含标点
使用多个文件:创建一个文件列表,for循环调用
存储数据
JOSN格式-import json
存储数字列表:json.dump()
读取列表:json.load()
重构
测试代码
高级编程
实践项目
数据可视化
web应用程序
![Python](https://www.processon.com/chart_image/template/thumb/5efd46d9762131109925803e.png?tid=5eda0d4b7d9c08663619f700)
收藏
![Genetic Algorithm](https://www.processon.com/chart_image/template/thumb/5ebd5eff1e08530a9bfc43d9.png?tid=5ebbdc2ce401fd16f4351efe)
收藏
0 条评论
回复 删除
下一页