Python 复习


    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型与其他类型关系

TrueFalse
int!00
float!00.0
list!=[][]
str!=''''
tuple!=()()
dict!{}{}
Nonenot NoneNone


    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经常用

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值