单行注释 #
多行注释 三个单引号 or 三个双引号
int 整型 float 浮点型 bool 布尔型True和False 复数型
定义:单引号和双引号引用起来的就是字符串
可以使用for遍历
切片:字符串[开始索引:结束所有:步长] [::-1] 反转字符串
insert 在指定位置插入元素
append 在末尾追加元素
extend 将另一个列表的数据追加到列表
列表[索引] = 数据
del 列表[索引] 删除指定索引的数据
pop 删除最后一个元素
pop(索引) 删除指定索引的数据
clear 清空列表
if 数据 in 列表 判断列表中是否有某个元素
count 数据在列表中出现的次数
sort 升序排序、从小到大
sort(reverse=True) 降序排序,从大到小
元组的元素不能修改
()定义 逗号分开
列表是有序的对象的集合
字典是无序的对象的集合
字典使用的键值对形式存储数据{key:value}
值可以取任何数据类型,但键只能使用字符串、数字、元组
遍历所有的key: for key in 字典.keys()
遍历所有的value:for value in 字典.values()
遍历所有的键值: for item in 字典.items()
del.字典[key]
字典.pop(key)
popitem() 随机删除一个
clear() 清空字典
字典[key] key存在—-修改 key不存在—–新建
%s 字符串
%d 数字
%f 浮点数 %.2f 表示保留两位小数
%% 输出%
字母、数字、下划线、不能以数字开头
不能和Python中的关键字重名
算术运算符
比较(关系运算符)
赋值运算符
and 并 都为真才会返回True
or 或 有一个为真就会返回True
not 非 取相反
if 条件:条件成立要执行的代码 else:条件不成立要执行的代码
if条件1:条件1成立 elif条件2: 条件2成立 else:条件都不成立
while 条件(判断变量是否满足添加):
条件满足时,做的事情1
条件满足时,做的事情2
九九乘法表
# 定义起始行
# 最大打印9行
while i <= 9:
#定义起始列
j = 1
# 最大打印i列
while j <= i:
# end="",表示输出结束后,不换行
# "\t"可以在控制台输出一个制表符,协助在输出文本时对齐
print("%d * %d = %d" % (i, j, i * j),end="\t")
i += 1
print("") # 换行
j += 1
定义 def 函数名()
调用 函数名()
无参数、无返回值
无参数、有返回值
有参数、无返回值
有参数、有返回值
定义函数时,小括号中的参数,是用来代替真实数据用的,在函数内部作为变量使用
调用函数时,小括号中的参数,是传递到函数内部的真实数据
一个函数中又调用了另一个函数
形参设置默认值
调用函数时,如果没有传入缺省参数对应的实参,则实参使用默认值
带有默认值的形参一定要位于参数列表的最后面
调用函数时,实参可以指定对应的形参,称为命名参数
在函数外边定义的变量叫做全局变量
全局变量能够在所有的函数中进行访问
如果在函数中修改全局变量,那么久需要使用global进行声明,否则出错
函数内部定义的变量
局部变量的作用域只在函数内部
args 将传递的参数包装成了元组
kwargs 不存在的命名参数包装成字典
个函数在内部调用其本身,这个函数就是递归函数
python中可以使用id函数查看引用的是否为同一个内存空间,如果返回值相同,说明引用相同
在python中,值是靠引用来传递的
列表
字典
数值类型 int long bool float
字符串 str
元组 tuple
面向对象编程OOP,将具有相互关系的数据/操作封装成对象,以对象的角度去处理问题,让对象来完成相应处理
按照业务逻辑从上到下设计程序的方式,叫做面向过程编程POP
属性 方法
在编程中,类就是创建对象的模板,用来定义对象公共的行为
类总结了对象的共同的特征,有利于复用代码创建拥有相同特征的对象
每个对象必须有一个对应的类
格式 class 类名:
方法列表
类名的命名规则按照大驼峰
类是定义对象的共同行为的,也就是说在类中定义对象的方法
class 类名:
def 方法名(self):
第一个形参是self的,就是对象方法
对象方法定义时第一个形参必须是self,但在调用时,不要去传递self对应的实参
对象.属性名 = 数据
格式:引用对象的变量名 = 类名()
调用方法:引用对象的变量名 = 类名()
定义属性:引用对象的变量名.属性名 = 数据
self表示当前调用方法的对象
可以使用方法更加灵活
init()方法叫做对象的初始化方法,在创建一个对象后默认会被调用,不需要手动调用
开发者可以实现这个方法,并在该方法中定义属性并设置初始值
如果直接print打印对象,会看到创建出来的对象在内存中的地址
str方法必需有返回值,且必须返回一个字符串类型的值
如果在属性名前面加了两个下划线 __ 则表示该属性是私有属性,否则为共有属性
添加一个方法,在方法内部先判断数据的有效性,再赋值属性
将属性定义为私有属性,避免对象在外部直接操作属性
私有属性只能在类的内部访问
私有方法和私有属性类似,在方法名之前加了两个下划线 __ 则表明该方法是私有方法
私有方法只能在类的内部使用
在创建对象后,Python解释器会默认的调用init()方法
在删除一个对象的时候,Python解释器也会默认的调用一个方法,这个方法是del()方法
当使用del删除变量时,只有当变量指向的对象的所有引用都被删除之后,也就是应用计数为0时,才会真的删除该对象,这时才会触发del()方法
继承就是某个类直接具备另一个类的能力(属性和方法)
格式 class 子类名(父类名):
给子类添加新方法就是可以在子类中直接添加方法就可以
当子类实现一个和父类同名的方法时,叫做重写父类方法
子类重写了父类的方法,子类再调用该方法将不会执行父类的处理
父类名.方法名(self)
super(子类名.self).方法名()
super().方法名
父类的私有方法,属性是不会被子类继承的
可以通过调用继承的父类的共有放入方法,简接的访问父类的私有方法、属性
所谓的多继承,就是子类有多个父类
父类中的方法和属性会被子类所继承
鸭子类型语言中,函数/方法可以接受一个任意类型的对象作为参数/返回值,只要该对象实现了代码后续用的属性和方法就不会报错
@classmethod
参数 cls
方法不使用对象属性、方法,但是使用类属性/类方法
@staticmethod
静态方法默认情况下,即不传递类,也不传递对象
用于单例模式
try:
可能出现异常的代码
except:
出现异常之后要执行的操作
try:
可能出现异常的代码
except:
出现异常之后要执行的操作
else:
如果没有出现异常,就会执行else中的代码’
ffinally:
无论有没有异常,都会执行这里的代码