《python编程从入门到实践》
变量和简单数据类型
变量
- 变量的命名规则:
1)变量名职能包含字母、数字和下划线,以字母或下划线开头,不能以数字开头。
2)变量名不能包含空格,但能使用下划线分隔其中单词
3)关键词和函数名不能作为变量名
字符串
- 字符串:使用单引号或双引号括起来的字符串。
- 修改字符串的大小写:
-title():将字符串首字母大写
-upper():将字符串全大写
-lower():将字符串全小写 - 在字符串中使用变量:通过将花括号的变量替换为其值来设置字符串的格式。
-full_name=f"{first_name} {last_name}"
-full_name="{} {}".format(first_name,last_name) - 空白:任何非打印字符,如空格、制表符、换行符
\t:制表符 \n:换行符 - 去除空白:
-rstrip():去除字符串开头的空白
-lstrip():去除字符串末尾的空白
-strip():去除字符串两边的空白
数
- 整数:+加、-减、*乘、\除、%取余、//取整
- 浮点数:带小数点的数
- 将任意两个数相除时,结果总是小数
- 数很大时,使用下划线将数字分组。打印是不会打印下划线
- 系列解包赋值:x,y,z=1,2,3
- 常量:全大写
列表
列表简介
- 列表:由一系列特定顺序排列的元素组成,用[]表示,使用,分隔。
- 修改列表元素:指定列表名和修改的元素索引,再指定该元素的新值 a[0]=‘hzh’
- 在列表中添加元素 x.appen() x.insert()
- 删除列表元素:del x[0] a.pop() a.remove()
- 排序:x.sort() sorted(x)<reverse=Ture> x.reverse()
- 确定列表长度:len(x)
操作列表
- 遍历整个列表:for item in list:
- 避免缩进错误:忘记缩进、忘记缩进额外的代码块、不必要的缩进、循环后不必要的缩进、遗漏了冒号
- 创建列表:使用range()创建数字列表
- 对数字列表执行简单的统计计算:min、max、sum
- 列表解析:x=[表达式 for 变量 in 可迭代对象]
- 切片:[start🔚step]遍历切片、复制列表
元组
- 元组:用圆括号进行标识
- 元组不能修改元组的元素,但可以给存储元组的变量赋值
if语句
条件测试
- 检查是否相等:= \ 检查是否不想等:!=
检查是否相等时注意是否需要区分大小写 - 数值比较:== != <= < > >=
- 检查多个条件:and or
- 检查特定值是否包含在列表中:in
检查特定值不包含在列表中:not in - 布尔表达式:Ture False
if语句
- if语句分为简单if语句、if-else结构、if-elif-else结构、使用多个elif语句、省略else语句、测试多个条件<多个if语句>
字典
- 字典:使用花括号中一系列键值对表示,键值对是两个相关联的值,通过键访问值。键与值之间用:分隔,键值对之间用逗号分开。
- 访问字典中的值:可依次指定字典名和放在方括号内的键,a[‘name’]
- 添加键值对:依次指定字典名、用方括号括起的键和相关联的值,a[‘score’]=90
- 修改键值对:依次指定字典名、用方括号括起的键和相关联的新值,a[‘score’]=80
- 删除键值对:使用del语句将相应的键值对彻底删除,必须指定字典名和删除的键
- 使用get()访问值:get()第一个参数用于指定键,第二个指定键不存在时要返回的值<可选>
遍历字典
- 遍历所有的键值对:for key, value in a.items():
- 遍历字典中的所有键:for key in a.keys():
特定的顺序遍历字典中的所有键:for key in sorted(a.keys()): - 遍历字典中的所有值:for value in a.values():
若剔除字典中重复项,则使用集合set:for value in set(a.values()):
嵌套
- 字典列表<字典在列表中>、在字典中存储列表、在字典中存储字典
用户输入和while输入
input()输入
- 输入为字符串,可通过int()获取数值输入
while循环
- 作用:让用户选择何时退出、使用标志<定义一个变量用于判断整个程序是否处于活动状态>
- 使用break退出循环,break语句用于控制程序流程
- 在循环中使用contimue
- 避免无限循环:确保程序中存在False或者break语句以跳出循环
- 使用while循环处理列表和字典:
1)在列表之间移动元素
2)删除特定值的所有列表元素
3)使用用户输入填充字典
函数
- 形参parameter:函数完成工作所需的信息
实参argument:调用函数时传递给函数的信息 - 传递实参:
1)位置参数:按顺序将函数调用的实参关联到函数定义中的相应形参
2)关键字实参:传递给函数的名称值对
3)默认值:使用默认值时,必须在形参列表中列出没有默认值的形参,再列出有默认值的实参 - 返回值:函数返回的值,可使用return语句将值返回到调用函数的代码行。
- 向函数传递列表的副本可保留原始列表的内容,但对于大型列表而言复制列表会增加时间复杂度。
- 传递任意数量的实参:通用形参名*args,也收集任意数量的位置实参
def make(*names): #创建names的空元组,将所有的值封装到元组中
print (names)
make('hzh')
make('hzh','terence')
1)结合使用位置实参和任意数量实参:python先匹配位置实参和任意数量实参,再将鱼下的实参收集到最后一个形参。
2)使用任意数量的关键字实参:**kwargs用于收集任意数量的关键字实参
def build_profile(first,last,**user_info): #**user_info创建一个空字典,将所有收到的名称值对放入字典中
user_info['first_name']=first
user_info['last_name']=last
return user_info
build_profile('albert','einstein',location='pronceton','field'='physics')
- 将函数存储在模块中
1)调用模块中函数:module_name.function_name()
2)导入特定的函数
-from module_name import function_name
-from module_name import function_name0,function_name1,function_name2
3)使用as给函数指定别名:from module_name import function_name as fn
4)使用as给模块指定别名:import module_name as mn
5)导入模块中所有函数:from module_name import *
类
- 实例化:根据类来创建对象
创建和使用类
- init():开头与结尾必须有两个下划线,否则使用类创建实例时,不会自动调用。
- 类中函数即方法,与函数相同,唯一的区别在于调用方法的方式的差异
- 通过实例访问的变量即属性
- 根据类创建实例
1)访问属性
2)调用方法
3)创建多个实例
使用类和实例
- 给属性指定默认值:创建实例时,有些属性无须通过形参来定义,可在方法__init__()中为其制定默认值
- 修改属性的值;直接修改属性的值、通过方法修改属性的值、通过方法对属性的值进行递增
继承
- 继承:一个类即成另一个类时,将自动获得另一个类的所有属性和方法,原有的类称为父类,新类称为子类。子类即成父类的所有属性和方法,同时还定义自己的属性和方法。
- 子类的方法__init__():通过super().init()继承父类的属性
- 给子类定义属性和方法:让一个类继承另一个类,就可以添加区分子类和父类所需的新属性和新方法
- 重写父类的方法:对于父类中的方法,不符合子类中模拟实物的行为,可以进行重写
- 将实例用作属性:
- 模拟实物
导入类
- 导入单个类
- 在一个模块中存储多个类
- 从一个模块中导入多个类
- 导入模块中的所有类,再使用句点表示法访问需要的类
- 导入模块中的所有类:from module_name import *<不推荐使用>
- 在一个模块中导入另一个模块
- 使用别名:from module_name import method_name as mn
python标准库
- random.randint(a,b):将两个整数作为参数,并随机返回一个位于这两个整数之间的整数
- random.choice:将一个列表或元组作为参数,并随机返回其中的一个元素。
类编码风格
- 类名采用驼峰命名法,即将类名中每个单词的首字母都大写
- 类定义后面包含一个文档字符串,应简要的描述类的功能
- 可使用空行组织代码。使用一个空行来分割方法,而在模块中可使用两个空行分隔类。
文件和异常
- 异常:python创建的特殊对象,用于管理程序运行时的错误
- json模块:保存用户数据,以免在程序运行后丢失
从文件中读取数据
- 读取整个文件:
1)open()接受参数——要打开的文件名称,返回一个表示文件的对象。
2)关键字with不需要在访问文件后将其关闭
3)通过read()读取文件的全部内容,并作为长字符串赋值给变量
#文本信息存储在pi_digits.txt中,通过一面呈现打开并读取文件,再将内容显示到屏幕上
with open('pi_digits.txt') as file_object:
content=file_object.read()
print(content.rstrip()) #因为read()到达末尾时会返回一个空字符串,空字符串显示出来即空格,因此通过调用rstrip()删除空格。
- 文件路径
-open()仅在当前执行的文件所在的目录下查找,若其他路径则需要提供文件路径。相对文件路径若行不通时,可使用绝对文件路径。g00o o o o o o o o ot
总结
- 错误总结:
1)NameError:命名错误
name ‘x’ is not defined:忘记赋值;拼写错误
2)SyntaxError:语法错误
invalid syntax
3)IndexError:索引错误
list index out of range:超出列表长度。如当列表为空访问最后一个元素-1会导致错误
4)IndentationError:缩进错误
expected an indented block:忘记缩进
unexpected indent:不必要的缩进
5)KeyError:键值错误
数据可视化
- 数据可视化:通过可视化表示来探索数据,与数据分析紧密相关。数据分析指使用代码来探索数据集的规律和关联。
生成数据
- 绘制折线图
import matplotlib.pyplot as plt
squares=[1,4,9,16,25]
fig,ax=plt.subplots()
ax.plot(squares)
plt.show()