标签:set append 清空 print 共享 https 匿名函数 width img
positional argument:位置参数
python中():
没有封号’;’,而用回车符来代替,所以一句话结束后开始另一句话必须回车
也没有大括号{},而使用tab来表明在方法内,而没有tab则表示方法结束
而冒号’:’主要是为了像if a<3 : a=2这种就不会出现混乱
def定义方法
变量
不需要定义类型,必须要初始化即赋值;没有字符型char,被并到字符串类型中了
动态类型:在运行期间确定变量的类型,python确定一个变量的类型是在第一次给他赋值的时候;
强类型:有强制的类型定义,一个整数,除非显示的类型转换,否则绝不能将它当作一个字符串
变量赋值,可以同时多个,如a,b = 2,3;c,d = a,b
单行注释#,多行注释’’’… …’’’或”””… …”””
字符串,单引号’’和双引号””是等同的,可以进行’+’操作和’*’操作;单行保留格式r’……’,多行’’’……’’’(和注释符号一样)
使用 j
或 J
后缀,可以赋值虚数,但j/J前必须有实数,如2+1j,而不能写成2+j;这样可以和变量j进行区分
列表的长度可变,可存储各类型变量/常量,可用append()改变自身;也可通过’+’与其他列表组合形成新的列表
切片[a:b]是一个很便捷的工具,左右切片位置可以是变量,但a必须小于b,否则为空[]。
range
range(start, stop, step)返回的是range对象,list(range(5)),则返回[0,1,2,3,4];list(range(1, 4)),返回[1,2,3];
list(range(1,5,2))返回[1,3]
break是结束整个循环体,continue是结束单次循环
形参(位置参数a,默认参数b=1)
形参中的默认值,def abc(a,b=4,c=[]),其中b,c即为默认值参数,所以实参中可这样,abc(5)而让b,c默认
形参中有位置参数a,与默认参数b=3,默认参数必须在后,即abc(a,b=3),而不能相反
注意:默认值只初始化一次,当默认值是一个可变对象(如列表,字典或大多数类的实例)时,方法执行完后不会释放
def f(a,b=[]): L.append(a) return L,调用f((1),f(2))后,分别输出[1],[1,2]
形参可接收元组和字典,一个星(*):表示接收的参数作为元组来处理;两个星(**):表示接收的参数作为字典来处理
不过元组会把后面的参数当成元组元素,所以要用关键参数来传值;而字典会把关键参数当成字典元素,
而关键参数又不能放在位置元素(也即字典参数)前,而直接传又会出错,不清楚为什么,所以暂时没有解决办法;
实参(关键参数b=3)
实参不可以定义变量,如abc(i=5),但可以是关键字参数,即字母一致,必须是abc(a=5),这里的a=5是参数而非定义
实参中的关键字参数顺序不重要,即可以abc(b=1,a=2)
day02
iterable:可迭代的对象,如list,tuple,dict,str,都是iterable(凡是可以for循环的,都是Iterable)
元组,长度和每个元素不能改变,且为圆括号或不用括号,tuple1=(1,2),tuple2=1,2 一个元素时后面要加逗号,(‘a’,)
集合
没有顺序且不可重复,可用set(iterable)方法-返回集合,或大括号定义,但大括号定义时不能为空,因为{}为字典
可进行逻辑运算& | ^
字典
初始化:a = {‘key1’:value1},添加:a[‘key2’]=value2;也可用dict()方法或列表推导式构建字典;
索引指的是根据键而不是位置,键可以是不可变的类型,数字、字符串、不包含可变类型的元组可作为键
keys()方法返回dict_keys类型(iterable,非list,不能索引)而不是列表,需要用list(dict1.keys())后才可以索引;
键:for a in dict.keys():,值:for a in dict.values():,键-值:for a,b in dict.items():,整体:for a in items():
pop(key1)弹出key1所对应的元素;popitem()弹出最后一个元素,为字典独有
列表:
添加:append(x),x是常数;extend(a),a是列表;insert(i, c),i是位置,c可以是常数也可以是列表
删除:remove(x),x是常数且必须存在于要移除列表中;pop(i),移除i 位置上的数且返回i 位置上的数
del list1[i1:i2],根据索引删除,i1和i2是索引;clear()清空列表
index(x),返回第一是x的索引;独有sort()方法
lambda关键字创建小的匿名函数,被局限于只能有一个单独的表达式,返回两个参数的总和: c = lambda a, b: a+b
map方法
map(func, iterable,iterable,……),func为方法,后面至少一个iterable,而iterable的数量和顺序必须与func形参一致
返回值为:传进func的各iterable值计算后的结果,可用list()将这些值保存起来,list(map(func, iterable,iterable,……))
列表推导式-List Comprehensions
与lis(map(func,iterable,…))类似,形如:[(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
规则:由一对方括号组成,方括号包含一个表达式,其后跟随一个for子句,然后是零个或多个for或if
子句
列表推导式的嵌套,[[row[i] for row in [[1,2],[3,4]]] for i in range(2)],结果为[[1,3],[2,4]]
zip()方法,zip([iterable, ...]),将iterable压缩成元组,可以看作是把列转换为行,解压缩zip(*zip())就是在转一次行列
enumerate方法,list(enumerate(iterable, start)),结果如:[(0,’ab’),(1,’bc’),(2,’ef’)]
比较:
in/not in,is/is not;比较操作符优先级小于算数操作符
级联比较,a < b == c测试a是否小于b并且b是否等于c;and/or/not,逻辑优先级小于比较操作符,且not>and>or
sort()方法仅用在list上,对原有list进行修改,而sorted(iterable)是对所有可迭代的对象,返回新的iterable对象
day03
方法
方法的本质上是对象,可以用变量对其引用,def abc():,a=abc,这样a()与abc()就是等同的,注意与a=abc()的区别
在方法中也可以定义方法,即方法可嵌套,但外部无法直接调用嵌套中的方法
嵌套方法的使用:①仅在主方法内部使用,在方法内部获得/使用嵌套方法的计算结果
②外部使用,先‘return 嵌套方法’,然后a=abc()调用主方法赋值给变量,即可完成在外部调用嵌套方法a(),毋忘加括号
拼接
+,仅限于相同类型,如同为字符串/元组/列表,但不能是字典/集合;
要想输出字符串+列表,必须把列表转换成字符串,如print(‘the list is:’+str([3,4,5,]))
input(‘提示信息’),用户输入
模块-module
导入模块,import module1,调用方法必须加模块名,module.func1
从模块中导入方法或变量,from module1 import func1/var1,调用时可直接用func1/var1而不用加模块名
from xx import xx形式,变量会被加入到当前的命名空间中,所以可能导致覆盖情况发生,故不推荐使用
使用as来避免重名,import module1 as md1,from mod import func/var as f/v
包-package,包是一个有层次的文件目录结构,它定义了由n个模块或n个子包组成的python应用程序执行环境
namespace命名空间,四个:Locals-函数内部,Enclosing-外面一层函数,Globals运行的全局变量,Builtin内置模块空间
LEGB,程序引用某个变量的名字时,就会从名字空间开始搜索,搜索顺序规则便是:LEGB,一层层查找,找到后便停止搜索
装饰器,使得方法变得可扩展,如对方法增加功能等
__name__,它的值由Python解释器设定:
如果脚本文件是作为主程序调用,其值就设为__main__,如果是作为模块被其他文件导入,它的值就是其文件名
locals(),返回局部变量所构成的字典;globals(),返回全局变量所构成的字典
vars(object),返回对象的属性和属性值的字典,没有参数时与locals()方法一致
reduce(function,iterable)方法,根据给定方法对迭代器中元素进行计算
day04
类
定义类,”class Car(FatherClass1,FatherClass2): “,类名不一定要大写,但建议用大写
继承,FatherClass为父类,可以多继承,即传入多个父类对象
类的实例化,car1=Car(),
类中有特殊方法__init__(self,a,b),在实例化时便会自动调用,其中self便是实例化本身,即car1
self是不用传入的,只需传入a,b即可,self可以用其他名字如me
注意:类的属性为可变对象(如列表,字典和大多数其他类型),只会初始化一次,即类的所有实例共享这一变量
(这与形参的默认值问题类似),当为不可变的基本类型(数字,字符串,元组),不存在这种问题
要避免这种问题,可将其放入__init__()方法中,即self.a=b,b接收的为可变对象,如[1,2,3]
标签:set append 清空 print 共享 https 匿名函数 width img
原文地址:https://www.cnblogs.com/justaman/p/8974020.html