If语句
0.条件测试:检测是否相等(=);
Python中检测是否相等时区分大小写(用upper()、title()、lower());
检测是否不等(!=);
使用and/or检测多个条件的不同;
检测特定值是否(不)包含在列表中,in、not in;
布尔表达式。
简单的if语句
If-else结构
If-elif-else结构,其中可以使用任意数量的elif代码块
省略else代码块,因为python并不要求if-elif结构后面必须有else代码块
测试多个条件:如果想执行一个代码块,就使用if-elif-else结构;
如果要执行多个代码块,使用一系列独立的if语句。
6.使用if语句处理列表:检测特殊元素——for循环中包含一条if语句;
确定列表是否为空很重要;
使用多个列表。
字典
是一系列键值对,每个键与一个值相关联。(键值对是两个相关联的值)
字典用放在花括号({})中的一系列键值对表示。
1.使用字典:访问字典中的值——指定字典名和放在方括号([])内的键;
创建空字典,添加键值对;
修改字典中的值;
彻底删除键值对用del;
使用get()来访问值:用常规方法访问字典中没有的值,往往会出现键值错误(KeyError),但通过get()的方法可以避免这种错误。get(‘第一个参数:指定值’,‘第二个参数:如果不存在,指定默认值’)。
2.遍历字典:遍历所有键值对——for循环时用到方法items();
遍历字典中的所有键——for循环时用到方法keys() 注:虽然用不用效果一致,但是这样写会让人更容易理解;
对字典中的所有键特定排序——for循环中调用了函数sorted();
遍历字典中的所有值——for循环时用到了方法values();
为了解决字典中重复项(值)的问题——for循环时调用了set(),这个也叫集合,集合中的每个元素都是独一无二的。
创建集合——使用花括号({})直接创建;注:字典和集合很容易混淆,因为它们都是用一对花括号定义的。例见:遍历列表.py
3.嵌套:在列表中嵌套字典,在字典中嵌套列表甚至在字典中嵌套字典。
字典列表——列表中嵌套字典;
在字典中储存列表;
在字典中存储字典。(建议每个用户的字典都具有相同的结构,使得处理起来比较容易)。
用户输入和while循环
1.函数Input()——让程序暂停运行,等待用户输入一些文本;
函数input()接受一个参数——要向用户显示的提示(prompt)或说明;
一种创建多行字符串的方式——如果提示超过一行,使用运算符+=——在上一行字符串的尾部附加一个字符串;
使用函数int()来获取数值输入;
求模运算符(%)——两个数相除返回余数。
2.While循环——for循环用于对集合中的每一个元素都执行一个代码块,而while循环则不断运行;
让用户选择何时退出——定义一个退出值(quit),创建空字符串(用于记录用户输入的值);
使用标志——在要求多条件都满足才能继续运行的程序中,可定义一个变量,用于判断整个程序是否处于活动状态。这个变量就称为标志(flag);
使用break退出循环——任何循环中都可使用;
在循环中使用continue——让python忽略余下的代码,并返回循环的开头;
避免无限循环。
使用while循环处理列表和字典——为了记录大量用户信息;
在列表之间移动元素——使用while循环,方法pop()从列表末尾删除元素,方法append()在列表末尾添加元素,for循环来遍历列表;
删除列表中的特定所有元素——使用while循环和remove(‘要删除的元素’);
使用用户输入来填充字典——使用标志,whlie循环,在字典中添加元素,条件测试if语句,for循环遍历字典以及方法items()分开获取。
函数
定义函数:函数定义——def,勿忘冒号;
文档字符串(docstring)——用三个引号括起来,文档字符串的注释描述了函数是做什么的。Python使用这些来生成有关程序中函数的文档;
向函数传递信息;
实参和形参。
传递实参:位置实参——实参和形参顺序必须相同;
关键字实参——无须考虑实参顺序;
默认值——先列出没有默认值的形参,再列出有默认值的实参;
等效的函数调用;
避免实参错误(TypeError)。
返回值: 定义——函数返回的值;
return——将结果返回到函数调用行
让实参变成可选的——使用默认值;
返回字典;
结合使用函数和while循环。
4.传递列表: 定义——定义一个遍历列表的函数,然后输入列表调用函数;
在函数中修改列表——将列表传递给函数后,函数就可对其进行永久性修改,这使得能够高效的处理大量数据;
禁止函数修改列表——调用函数时,使用切片的方法创建列表的副本,不影响原始的列表。
传递任何数量的实参:python允许函数从调用语句中收集任意数量的实参;
*形参名——让python创建一个名为(形参名)的空元组;
综合使用位置实参和任意数量实参——将接纳任意数量实参的形参放在最后;
**形参名——让python创建一个名为(形参名)的空字典;
使用任意数量的关键字实参——将函数编写成能够接受任意数量的键值对;
注:通用形参名*args——收集任意数量的位置实参;
通用形参名**kwarga——收集任意数量的关键字实参。
6.将函数存储在模块中:模块——存储函数的独立文件;
导入整个模块——import +模块名——打开文件,将所有函数复制到程序中;要调用这个函数:模块名.函数名();
导入特定函数——from 模块名 import 函数名——表示从模块中导入函数;
使用as给函数指定别名——from 模块名 import 函数名 as+别名;
使用as给模块指定别名——import 模块名 as+别名;
导入模块中的所有函数——使用(*)星号运算符可让python导入模块中的所有函数。from 模块名 import+星号(*);
最佳导入做法——要么只导入需要使用的函数,要么导入整个模块并使用句点表示法(模块名.函数名())。
7.函数编写指南: 函数的描述性名称;
函数的功能的注释;
形参指定默认值时,等号两边无空格;
Import语句都应放在文件开头。
7.类
1.创建和使用类:使用类几乎可以模拟任何东西,本次使用的是Dog类;
定义类——class+类名:的形式;其中首字母大写的名称指的是类,而小写的名称指的是根据类创建的实例;
类中的函数称为方法——__init__()是一种特殊的方法,两边分别有两个下划线;因为就有了定义方法。也是定义函数,本质一样;
self是一个指向实例本身的引用,让实例能够访问类中的属性和方法;
通过实例访问的变量称为属性;
访问属性——句点表示法;
调用方法——用句点表示法来调用类中定义的任何方法;
创建多个实例。
2.使用类和实例:本次使用的是Car类;
给属性指定默认值——有些属性无须通过形参定义,可用方法__init__()中为其指定默认值——也就是直接添加一个属性=默认值即可;
修改属性的值(方法有三种)—(1).直接修改属性的值(最简单的方式):通过实例直接访问;
(2).通过方法修改属性的值:可增加一个逻辑,禁止任何人将里程表回调(if-else结构);
(3).通过方法对属性的值进行递增——使用运算符(+=)。可增加一个逻辑,禁止增量为负数(if-else结构)。
3. 继承:定义——一个类继承另一个类,将自动获得另一个类的所有属性和方法,原有的类称为父类,而新类称为子类;定义子类时,必须在括号内指定父类的名称;
Super()是一个特殊的函数,让你能够调用父类的方法;父类也称为超类(superclass);
给子类定义属性和方法——添加属性,定义方法;
重写父类的方法——在子类中定义一个与要重写的父类方法同名的方法,这样,python不会考虑父类方法,而只关注你子类中定义的方法;
将实例用作属性——可能需要将类的一部分提取出来,作为一个独立的类;也可能需要将大型类拆分成多个协同工作的小类。
4.导入类:导入单个类——from+模块名+import+类名——import语句让python 打开模块并导入其中的类;
在一个模块中存储多个类——一个模块中可以存储任意数量的类;
从一个模块中导入多个类——导入多个类时,用逗号分隔各个类;
导入整个模块——import+模块名——使用句点表示法访问需要的类;
导入模块中的所有类——不推荐这种方式;
在一个模块中导入另一个模块;
使用别名——from+模块名+import+类名 as+别名。
模块导入模块.py; car.py; electric_car.py
5.Python标准库:定义——它是一个模块;
模块random中函数randint()——两个整数作为参数,并随机返回一个位于这两个整数之间的整数;
random中函数choice()——将列表和元组作为参数,并随机返回其中一个元素。
8.文件与异常
1.从文件中读取数据:读取整个文件——函数open()、close()——打开关闭文件;方法read()——读取这个文件的全部内容;
文件路径——绝对文件路径(准确路径);
注:显示文件路径时,Windows系统使用反斜杠(\)而不是斜杠(/),但在代码中依然可以使用斜杠。例如:对于路径“C:\path\to\file.txt”,\t将被解读为制表符,如果一定要用的话,可对路径中的每个反斜杠都进行转义,如:“C:\\path\\to\\file.txt”。
逐行读取——将要读取的文件名称赋给变量,通过对文件对象执行for循环来遍历文件中的每一行;
创建一个包含文件各行内容的列表——方法readlines()从文件中读取每一行,并将其存储在一个列表中。
使用文件内容——创建空字符串,用到了运算符(+=);
注:读取文本文件时,python将所有文本都解读为字符串,如果读取的是数,并要将其作为数值使用,就必须使用函数int()将其转换为整数或使用函数float()将其转换为浮点数。
包含一百万位的大型文件;
圆周率中包含你的生日吗——用到了input()和if条件语句;
方法replace()——将字符串中的特定单词都替换为另一个单词。