1.map 和 filt的区别list结合
# map()可遍历可迭代对象,通过lambda的指定函数处理元素后遍历。
@ 返回值是可迭代对象
list(map(lambda(x:x*2,range(2,6))))
>>>[ 4 , 6 , 8 , 10 ]
#filter()过滤函数,可遍历可迭代对象,根据函数处理元素后返回True(保留) / Flase(丢弃) 该元素。
@ 返回值是可迭代对象
list(filter(lambda( x : x > 8 , range(5,11))))
>>>[ 9 , 10 ]
2.长度:元祖和列表的长度
*注:
元组的长度固定不可变,元素不能修改;
列表的长度可变
bte = b'ABCDEF' # b: 二进制数。
# 长度
len(bte)
>>> 5
# 最大值
max(bte)
>>> 70
# 最小值
min(bte)
>>> 65
# 连接' + '号 和' * '号
b1 = b'GHI'
b1 += bte
>>> b'ABCDEFGHI'
b1 *= 2
>>> b'GHIGHI'
3.异常:基本异常,断言
@ 语法错误==编译错误==SytanxError
'原因:源代码拼写语法错误'
@ 运行时错误
'原因:如:未导入包,零除,文件不存在等'
@ 逻辑错误
'程序运行不报错,执行结果不正确,解释器不能解决'
@ 异常处理 'raise抛出异常'
@ 捕捉异常的顺序 ==> 派生程度越高排在越前面
'如:ValueError要排在Exception前面,因为Exception是所有派生类的父类,派生程度最低'
@ 断言处理
assert <bool表达式> , <字符串输出表达式>
4.列表的append()和extend() 列表的+号首位相连
ss=[1,3,5]
@ s.append(x),把对象x追加到s尾部
s1="AHG"
ss.append(s1)
ss.append([8,9])
@ s.extend(t),把序列t附加到尾部
ss.extend('AHG')
ss.extend([8,9])
print(ss)
>>>[1,3,5,'AHG',[8,9],'A','H','G',8,9]
5.排序,magic参数(*代表任意个数,**会输出一个字典)案例:去掉最高分最低分求平均分
def Magic(*x,**info):
xx.extend(x)
xx.sort()
print("xx1==>",xx) #>>> [12, 23, 23, 32, 34, 43, 54, 56, 63, 65, 78, 87]
del xx[0]
del xx[len(xx)-1]
print("xx2===>",xx) #>>> [23, 23, 32, 34, 43, 54, 56, 63, 65, 78]
sum1=sum(xx)
avg = sum1 / len(xx)
print("avg==>",avg)
print("Student's info: ",info)
Magic(34, 56, 23, 54, 78, 23, 65, 87, 12, 43, 63, 32, sutno=32, address='beijing')
>>> avg=47.1
>>> Stident's info: {'sutno': 32, 'address': 'beijing'}
6.zip()函数
# zip()把多个迭代对象对应元素打包成一个个的元组
x=[1,2,3,4]
y=[4,5,6,7,8,9]
list(zip(x,y))
>>> [(1,4),(2,5),(3,6),(4,7)]
o=[0,1,3,5]
e=[1,4,6,7,3]
for i , j in zip(o,e):
print("{0} * {1} = {2}".format(i,j,i*j))
>>> 0 * 1 = 0
1 * 4 = 4
...
7.实例方法(self)和类方法(cls) and 静态方法
# 实例方法 (self)
def 方法名 (self , 形参):
函数体
class Person:
def say(self,name):
self.name='bb'
print("name = ",name)
p=Person()
p.say('Lily')
>>> name = Lily
#静态方法 @staticmethod
class Temperature:
@staticmethod
def CtoF(C):
F=(float(C)*9/5)+32
return F
tempC=Temperature()
tempF=tempC.CtoF(37)
print("{0:.2f} 摄氏度 = {1:.2f} 华氏度".format(tempC,tempF))
>>> 37.00 摄氏度 = 98.60 华氏度
# 类方法 @classmethod (cls)
class Student:
@classmethod
def stuId(cls,id):
id_ = id
print("Stdent's id : ",id_)
stu=Student()
stu.stuId(46)
8.修饰符
9.输入整数的两个方法int 和eval
ine=int(input("Input a integer: ")
print(type(ine))
>>> 'int'
@ eval()这个函数会自动适配你输入的值返回相对应的值
ine=eval(input("Input a num: ") )
print(type(ine))
>>> 'int'
10.提示符>>>
11.标识符
@ 标识符:
1. '第一个符号只能是字母或下划线_'
2. '区分大小写'
@ 私有方法 __book
@ 构造函数 __init__()
@ 默认创建实例 __new__()
12.赋值语句
pp1 = 99
pp2 = 'uu'
pp1, pp2 = pp2, pp1
print(pp1, pp2)
13.求余求整的作用
14.操作符类型
@ 算术操作符
'+'(加) '-'(减) '*'(乘) '/'(除) '%'(求余) '**'(平方)
'//'(地板除)
a//b 应该是对除以b的结果向负无穷方向取整后的数 如:
5//2=2(2.5向负无穷方向取整为2),同时-5//2=-3(-2.5向负无穷方向取整为-3)
@ 逻辑操作符
'or'(或) 'and'(并且) 'not'(不) 'is'(地址相等)
'is not'(地址不同) 'in'(是成员) 'not in'(不是成员)
'=='(相等) '!='(不等于) '>='(大于等于) '<='(小于等于)
'>'(大于) '<'(小于) '='(赋值)
@ or 'A=True B=False 输出True的那个'
A or B >>>True
B or A >>>True
@ and 'A=True B=Flase 结果为True时输出第二个变量,结果False时输出第一个False的变量 0/空/False'
A and B >>>False
A and 1 >>>1
0 and 1 >>>0
0 and False >>>0
False and 0 >>>False
@ 位运算符
'~'(按位求补) '<<'(左移) '>>'(右移)
'&'(按位与) '^'(按位异或) '|'(按位或)
15.返回类型 None/2返回什么
@ None 是一个特殊的常量
@ None 不表示任何类型NoneType
'作用:'
@ 1用来占位
@ 2解除变量绑定
16.+号
@ 一些算术顺序
print(3**2**3) '''从右往左,a^(b^c)'''
>>> 6561
print(0 and 1 or not 2 < False) '(A and B) or (!C < D)'
>>> True
print(int('20',16),int('1010',2),hex(16),bin(10))
>>> Hex(20)=Dec(32) ,Bin(1010)=Dec(10) , hex(16)=0x10 , bin(10)=0b1010
17.字符串和数值之间repeat *号
pp='uuo'
print(pp*3)
>>> uuouuouuo
print('%(lang)s has %(num)03d types.' % {'lang': 'Python', 'num': 3})
print('%0*.*f' % (8, 2, 98))
@ 参数表:(全部位数,小数位数,整数) *号代表参数表的下一位
>>> Pythons has 003 types.
>>> 00098.00
18.集合的特点(无重复)
@ 元素不重复 , 元素为可hash对象,无序
{x**2 for x in [1,1,2]} #(1,1,4)
>>> {1,4}
@ 储存依据对象的hash码
@ 可hash对象(内置不可变对象)如(bool,int,float,complex,str,tuple,frozenset等)
@ 不可hash对象 (list,dict,set)
@ 特点: ' 可包含内置不可变对象,不能包含内置可变对象'
@ 集合是可变的
19.切片操作A:B 起点位置包不包括
@ s[i,j] 切片包含开始下标s[i],不包含结束下标s[j],如果忽略j,则默认到序列结尾
@ s[i,j,k] k为步长,省略k,默认步长为1
@ 负数下标 t=('a','b','d','o','f','j','k')
(正数)'0 , 1 , 2 , 3 || -3,-2,-1'(负数)
@ 分间隔 元素x 序列s
s.index(value,start,stop)
@ 查找元素
s = [1, '2', 'a', '4', 4, 5, 6, 7, 'uui']
print(s.index('uui',7,len(s)))
>>> 8
20.字符 r b
21.集合,元祖 初始化
@ 集合
def 初始化:
set() '创建一个空的可变集合'
frozenset() '创建一个不可变集合'
@ 元组
def 初始化:
ss=(2,)
print(type(ss))
>>> <class 'tuple'>
22.or 和 and 的操作 true or false的
上面14.操作符类型那里有例子+解释
23.切片 的分间隔
上面19.切片操作A:B 起点位置包不包括有详解
24.math 三角函数 乘方 开根号
@ 三角函数
math.cos() math.sin() math.exp() math.log(x,b)
@ 开根号
math.sqrt()
@ 乘方
a**n '如:2**8=256'
25.bool型与其他类型关系
True | False | |
---|---|---|
int | !0 | 0 |
float | !0 | 0.0 |
list | !=[] | [] |
str | !='' | '' |
tuple | !=() | () |
dict | !{} | {} |
None | not None | None |
26.高阶函数map
读程序20
1.map(对后面数据做一些操作),遍历(核心)
2.lamdba函数与map之间关系
list(map(lambda x : x*2, range(6)))
>>> [0,2,4,3,8,10]
3.列表复制和引用(核心)
@ 列表复制
list01=list("abcd")
>>> ['a','b','c','d']
list02=list01.copy()
>>> ['a','b','c','d']
4.面向对象 构造方法 父类
@ 构造方法
class Person:
@ 构造函数
def __init__(self,name,age):
self.name=name
self.age=age
@ 派生类
class Student(Person):
def __init__(self, name, age, stu_id):
Person.__init__(self,name,age)
self.stu_id=stu_id
5.字典的复用(核心)
6.循环判断循环次数和内容
编程题30 范围:
1.函数,魔法参数一个*两个*的
2.坐标
3.列表,列表遍历
4.统计词的个数(字典 get key )
5.字典排序socket 用到lamdba函数
@ 字典排序
d3={1:'apple',5:'orange',3:'banana'}
d4=sorted(d3.items())
print(d4)
>>> [(1, 'apple'), (3, 'banana'), (5, 'orange')]
for k,v in b3.items():
print(b3[k])
>>> apple orange banana
6.从小到大reverse
list001 = ["w23", "rfvd", 234, 43, 7, 89, 'fvssv']
list001.reverse()
print(list001)
>>> ['fvssv', 89, 7, 43, 234, 'rfvd', 'w23']
7.文件读写(文本文件)、
@ 读文件
with open("",'r')as fr:
for row in fr:
print(row)
csv_reader = csv.DictReader(file_in_, fieldnames='')
for line in csv_reader:
@ 写文件
with open("xxx.txt",'w')as fw:
fw.write("ccc")
8.画图(饼图和柱状图)标题 坐标 刻度ticks 范围 保存 图例
'画图(饼图和柱状图)标题 坐标 刻度ticks 范围 保存 图例'
@ 饼状图 'plt.pie(x=,labels=,autopct=)'
@ 柱状图 'plt.bar(x=[],y=[],height=[],width=0.2)'
@ 轴标签 'plt.xlabel() plt.ylabel()'
@ 坐标 'plt.subpolts_adjust(wspace=,hspace=,bottom=,top=)'
@ 刻度 'plt.xticks(range(),rotation=,ha=)'
@ 范围 'plt.yticks(range(0,101,10))'
@ 图例 'plt.legend()'
@ 保存 'plt.savefig("")'
9.用panda数据分析,加列加行(期中考差不多)
@ 加列
data["AVG"]=round((data.A+data.B+data.C)/3, 2)
@ 加行
data["MAX"]=list
'注意,添加的行的列数要和表格一样'
@ 读取
file="xxx"
df=pd.read_excel(file)
data=pd.DataFrame(df)
@ 保存
data.to_excel(savefile)
列表复制引用排序
类的继承关系
基本异常 断言
lambda经常用