Python语法笔记

Python笔记
1、Python用**表示乘方,比如3**2=9,2**3=8
2、str()函数将非字符串值转为字符串值
3、#后面的都是注释
4、负数索引返回列表中倒数第N个元素,如listA[-1]返回倒数第一个元素,listB[-3]返回倒数第三个
5、列表操作:[]语法初始化列表变量,列表中的元素可以是不同类型,(1)append()在列表末尾添加元素,insert()在索引n的位置写入元素,(2)语句:del listA[2] 删除列表listA的索引2的元素,这种删除不能获取被删除元素的值,方法pop()不带参数时删除列表末尾元素并返回该元素的值,带参数时删除指定位置的元素并返回元素,remove()按值移除元素并不返回该元素,(3)sort()按字母序永久性升序列表元素,参数reverse=True按降序重排,sorted(listA)按字母序临时排列元素,即返回值是排序后的listA,支持reverse=True参数,(4)方法reverse()永久性反序列表元素,(5)len(listA)返回列表的长度
6、列表解析:通过列表解析直接生成列表,如:squares = [value**2 for value in range(1,11)],squares是生成的列表名,value**2 是计算表达式,for value in range(1,11)提供计算值,这里的for后面不需要“:”
7、列表部分使用:(1)切片:listA[0:3],取列表listA的0,1,2三个元素,如果没有指定第一个数值,则从列表开头开始取元素,如果没有指定第二个数值,则取到列表的末尾,数值可以为负值,表示从列表末尾开始数的第N个元素往后取元素,切片语法等于返回列表的子序列;(2)复制:采用切片可以全复制列表,相当于创建一个新的列表变量,并用切片的返回值(也是列表)初始化它,如:listB = listA[:],而如果是直接赋值,如:listB = listA,那么实际并没有进行全复制,而是让listB也指向了listA的列表
8、元组:数据元素不可改变的列表,()语法初始化元组,元组初始化,内容就不可改变,但是元组变量可以指向其他元组
9、if判断中,and和or等于C++中的&&和||,属于非短路判断
10、判断某个元素是否在某个列表中,用关键字in,如'itemA' in listA,其实和if、for中的用法相似;关键字not in的含义相反
11、布尔值:True,False
12、if - else、if - elif - else
13、字典:{}语法初始化,如 dictA = {'color':'red', 'name':'flag'},类似于json、js中的格式,其实就是键值对;遍历字典,如:for k,v in dictA.items():,其实是遍历方法items的返回值,其返回值是列表,并把值分别保存到k,v两个变量中;方法keys()返回键列表;方法values()返回值列表;
14、全局方法set()入参是一个列表,返回去重的结果列表,类似于C++中的set容器
15、console输入:input(),参数是可选的提示信息字符串,该函数会暂停程序运行并等待用户输入,输入数据会被解释为字符串
16、int()方法把字符串解释为整数
17、for循环只能遍历列表、字典等集合,但是不能在其中添加删除集合元素,否则会导致循环异常;想在循环中改变集合可以用while循环
18、三引号"""生成文档字符串,用于说明函数等的作用,如"""显示查询结果"""
19、定义函数:def fun(param...):,:的下一行就是函数体,遵守缩进原则
20、函数参数:(1)位置实参:按照函数申明中形参的顺序传入实参;(2)关键字实参:在传递参数时用名称-值的方式传参,如add(a=1,b=2);(3)默认实参值:为形参指定默认值,有默认值的形参必须在最后,和C++相同,因为有默认值的形参会被当做位置实参,即与顺序有关
21、给函数传入集合时,可直接修改集合及其元素,可以利用切片传入集合的拷贝,从而避免函数修改集合
22、任意数量的实参:(1)申明函数时,形参名前加*,如def add(*numbers):,解释器会把调用函数时传入的所有参数都放入名为numbers的元组中;申明函数时,形参名前加**,如def info(**profiles):,解释器会把profiles解释为一个空字典,调用函数时,需要传入键值对,如info(name='bl',location='huilongguan')
23、以上几种形参可以混合使用,但是要注意可变实参在最后,之后是默认值实参,而位置实参在最前面,同时关键字实参和位置无关
24、模块导入:模块是定义在后缀为.py文件中的函数,模块名就是文件名;(1)导入模块:import modulename,使用函数时modulename.funname(args);(2)导入特定函数:from modulename import funname,使用时直接使用函数名funname(args);(3)as关键在导入特定函数时为函数指明别名,也可以导入模块指明别名
25、类:格式:class Name():,类名首字母大写;默认方法def __init__(self, args),类似于构造函数,类的普通方法不带下划线,类的方法申明首个形参都是self,但是调用不需要传递,系统会自动传递,init的参数都是该类的对象属性,如果在init内部给属性指定初始值,则不用把该属性写入形参,如果不是在init中申明属性,而是直接在类体内,则是类属性,类似于C++中const static属性
26、修改属性的值:(1)直接通过实例属性访问;(2)通过方法修改属性的值,即把新值通过形参传入
27、继承:格式:class Name(Parent):,父类在括号内,在子类方法中用super().语法调用父类的属性或方法
28、覆写:子类中添加一个和父类中方法申明相同的方法,即可覆写父类中的方法
29、打开文件:格式:with open("file name") as file_object:,with关键字会在适当的时候关闭文件,避免忘记关闭文件,open如果有两个参数,第二个参数代表打开方式,和C中fopen类似,该方法返回一个代表打开的文件的对象,as关键字把该返回对象命名别名为file_object,该别名随意,for line in file_object读取文件中的一行
30、异常:try-except-else-finally,即如果try中的代码执行失败,则else中的代码必然执行;无论是否成功,finally中的代码必然执行

猜你喜欢

转载自blog.csdn.net/blwinner/article/details/73881987