4.3
- #:单行注释
- ctrl alt l:idea代码调整对齐。""" """:多行注释
- //,得到除法整数部分。**:幂函数。例如:print("-"*10):打印10遍-号
-
在print()内容后添加:,end="",对输出的换行转义字符进行替换
4.5
- 定义变量:变量名字 =变量值#不需要指定变量类型,解释器自动推导出类型
- print(type(变量名))#查变量类型
- 数字变量之间可以直接计算。字符串加号连接。字符串*数字。字符串重复次数。数值型变量和字符型变量不能直接计算。
- 输入:x = input("输入密码:”)#输入默认为字符串类型
- 类型转换函数:int(x),float(x)。
print(int(float(input("输入单价:"))*float(input("输入重量"))))
- 格式化输出:print("格式化字符串" %(变量1,变量2...))
print("单价:%.2f,重量%.1f,金额%d"%(prince,weight,money)
- %06d,表示输出6位的整型数字,不足位补0。%%输出一个%分号
- 标识符:以字母,下划线,数字组成。不能以数字开头。python区分大小写
- 关键字:内部已经使用的标识符
print(keyword.kwlist)
- if判断:if 条件:语句 elif 条件:语句··· else :语句
- 逻辑运算:条件1 and 条件2;条件1 or 条件2; not 条件。
- ctrl +D 复试粘贴当前行。ctrl +/:多行注释
- random :随机生成数库
- while 条件:满足条件处理语句 处理条件.python无do-while
- python无自减和自加。有+=a,-=a,/=a,//=a,*=a,%=a,**=a等赋值运算符
- 在使用关键字continue之前,需要确认循环的计数是否修改,否则可能会导致死循环
- 常见转义字符:\\反斜杠符号,\'单引号.\"双引号,\n换行,\t横向制表符,\r回车
4.6
- 函数定义: def 函数名(参数1,参数2···):函数体 return 变量。函数名符合标识符规则,首先声明函数,再调用
- Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句
- 列表元素,类似于数组。一个变量存储一串信息。列表名=[元素1,元素2,···]。索引(下标)从0开始
- del 可以从内存中 删除元素
- 针对列表遍历,提供了迭代遍历。for name in name_list:执行体 else:当循环体使用了break时,break拦截成功后else以后代码也不会执行。else后的代码只有遍历完才能够执行
- 元组:表示多个元素(主要针对类型不同)成的序列。元素不能修改(增删改)。tuple=(元素1,···)。
- 如果元组只有一个元素,需要在定义时加入",",否则为对应元素类型
- 格式化字符串后面的‘()’本质上就是元组
- 元组和列表可以相互转换
- 字典为无序的对象集合。用键值对存储数据,键值对之间使用‘,’区分,键与值用‘:’区分。字典的key只可以用不可变类型
- key-value,key为索引,value为值。{key:value,···}
- update两个字典合并,键值对相同会产生覆盖。
- 列表嵌套字典,存储相同元素对象
- 字符串就是一串字符。类似与列表操作与,与C中字符串接近
- 字符串的replace方法返回一个替换的新字符串,不会修改原字符串
- 切片适用于字符串,列表,元组。利用索引对切成小字符串。[-1::-1]逆序取字符
- id(变量):返回变量地址
- 列表和字典为可变类型,数字,字符串,元组为不可变类型
- hase()只能接受不可变类型参数
- 全局变量:所有函数外部。局部变量:函数内部使用
- 在函数内部 加上global 可以修改全局变量
- 可用多个参数接受函数返回的多个值,数量保持一致
- 如果传递的参数是可变类型,在函数内部,使用方法修改了数据的内容,同
样会影响到外部的数据 - 无论传递的参数是可变还是不可变.只要针对参数使用赋值语句,会在函数内部修改局部变量的引用,不会影响到外部变量的引用。
- 列表使用+=操作实质使用的是列表的extend方法
- 定义函数时,可以給某个参数指定一个默认值,具有默认值的参数就叫做缺省参数,调用函数时,如果没有传入缺省参数的值,则在函数内部使用定义函数时指定的参数默认值
- 缺省参数其后不能有非缺省参数
- 多值参数:函数接受参数个数未知。*args --存放元组参数,**kwargs --存放字典参数
- demo(1, 2, 3, 4, 5, name="小明”,age=18, gendermTrue)
- 使用拆包,简化参数的传递,拆包的方式,在元组变量前,增加一个*,在字典变量前,增加两个*。简化元组和字典作为参数传递的过程
4.7
- 定义类:class 类名: def 方法1(self,参数列表)···,self:对象的引用。
- 类外部定义属性:在类外部直接通过对象定义属性。在内部通过self.调用属性和方法
- _init_ _方法是 专门用来定义一个类具有哪些属性的方法。在实例化时可以传递参数直接初始化
- 一个对象的属性可以是另外一个类创建的对象
- 私有属性(__变量),私有方法(__方法),只能在对象内部访问。利用实例名._类名__私有方法(属性)可访问
- 继承:class 子类名(父类1,父类2···):执行体。子类拥有其父类以上的所有属性和方法 ,继承的传递性。
- 重写:子类方法与父类同名,即可实现重写 。super().可以在子类部调用父类方法。父类名.方法(self)也可以调用父类方法
- 子类和外界均不能直接调用类的私有属性和方法。子类可以通过调用父类的公有方法访问到父类的私有属性和方法
- 在多继承中,应该避免方法重名。在执行时,按照本类,父类1,父类2等顺序查找和执行同名方法
- 在python3中,都会作为object的基类(新式类)
- 多态:不同的子类调用相同的父类方法,产生不同的执行结果
- 类属性就是类对象中的属性。记录此类相关的特征,不会记录相关对象特征。类名.访问类属性,向上访问机制,也可以通过对象.访问
- .实例方法--方法内部儒要访问实例属性,类方法--方法内部只需要访问类属性
静态方法--方法内部不需要访问实例属性和类属性。 - 单例设计模式:让类创建的对象只有一个实例,每次执行类名(),内存地址相同
- __new__()方法,创建对象,分配空间。重写时必须返回父类分配的空间地址
- 捕获异常:try 问题代码块 except (异常1,异常2···): 处理语句except Exception as reslut:处理语句 else:没有异常处理语句 finally:无论是否有异常,都会执行的代码
- 异常的传递:异常如果没有被捕获处理,会传递给上一次,知道最上面一层没有处理时,则会停止。尽量在主程序捕获异常
- 针对需求主动抛出异常, raise Excepti(”描述信息")
4.8
- 模块相当于工具包:py文件等。import 模块 as 别名;from 模块 import 工具
- __name__属性,在导入时是模块名,内部测试时是__main__
- 包是含有多个模块的特殊目录
- f =open("文件路径","访问方式")。a:追加,r:读,等
- 当执行了read方法后文件指针会移动到读取内容的末尾。
- os模块实现文件/目录的管理操作
- 字符串前加上u,告诉解释器这是一个ut f8编码格式
- eval(str)可以讲字符串看作为算数表达式,并返回结果