Python基础总结

"""
有时候咱们须要将咱们保存的文本恢复为一个字典或者序列,Python为此提供了一个pickle包解决此问题;
存放咱们叫作pickling;
读取:unpickling;
pkl是pickle简写
"""python

import pickle
my_list=[122,23234,'python']
pickle_file = open('my_list.pkl','wb')#使用wb形式
pickle.dump(my_list,pickle_file)#倒入文件,也就是写入文件
pickle_file.close()#关闭文件,执行完此步骤后会生成一个my_list.pkl的二进制文件,可使用ue打开;函数

#读取
pickle_file = open('my_list.pkl','rb')#注意是rb
my_list = pickle.load(pickle_file)
print(my_list)#[122, 23234, 'python']
pickle_file.close()
 
my_lsit=['hello']
#assert len(my_lsit)!=1 不等于1时引起异常
try:
    f = open('22.txt')
    f.close()
except OSError as reason:#OSError表明监控哪一类异常
    print('文件出错:'+str(reason))#文件出错:[Errno 2] No such file or directory: '22.txt'
finally:#不管如何此语句都会被执行
    print('这里处理诸如文件没有关闭之类状况,好比关闭文件')测试

#else语句基本与c相同,但进行了扩展,能够和while,for,异常配合使用,但在循环中只有执行完了循环才会被执行;
#注意for调用和while是相同的
def testFunc(num):
    while num>1:
        if(num%2==0):
            print('未执行完成while')
            break
        print('正常执行完成while')
    else:#也就是说else要执行必须保证while全部代码被执行完成,而不是遇到中途跳出;
        print('执行完while后被执行')
#这里处理诸如文件没有关闭之类状况,好比关闭文件
#执行完while后被执行
testFunc(1)
testFunc(2)#未执行完成whilethis

try:
    int('123')
except ValueError as reason:
    print('出错啦')
else:
    print('运行正常')#这里只有不异常时才会被执行,和循环语句一个道理对象

#with主要目的是简化运算以及防止某些异常,如:
try:
    with open('22.txt','rb') as f:#局部做用
        print('open')
except:
    print('failed')继承

class Objectx:#类名大写
    __age__=18#变量默认为公有,若是须要私有则使用两个双下划线
    def name(self,a):#self就是this,代表是哪个对象在调用方法
        age = a
ob = Objectx()#注意定义方式与c不一样。
ob.name(88)
class sun(Objectx):#继承类,y=也能够继承内建库中的类;
    passit

class father():
    def __init__(self):
        pass
class sub(father):#Python支持多重继承
    def __init__(self):
        father.__init__(self)#调用父类构造初始化,这里的self是子类的self,注意不是父类的;但须要指定传递参数
        super().__init__()#自动寻找基类方法进行初始化
s = sub()class

#组合
class Tutle:
    def __init__(self,x):
        self.num = xtest

class Fish:
    def __init__(self,x):
        self.num = x
class Pool:
    def __init__(self,x,y):
        self.tutle = Tutle(x)
        self.fish = Fish(y)
    def print_num(self):#若是不加self,则至关于c的静态函数,调用方式是Pool.print_num()
        print(self.tutle.num,self.fish.num)
p = Pool(1,8)
p.print_num()import

#迭代器:序列,字典,python提供了两个内建操做,iter(),next(),next到最后会抛出异常
for i in 'hello':
    print(i)
links={'百度':'wwww.baidu.com',"bing":'wwww.bing.com.cn'}
for i in links:
    print(i,links[i])

class Fish:
    def __init__(self):
        self.a =0
        self.b =1
    def __iter__(self):
        return self
    def __next__(self):
        self.a,self.b=self.b,self.a+self.b
        return self.a

fish =Fish()
for i in fish:
    if i<100:
        print(i)
    else:
        break

#生成器:
def myFun():
    print('excute')
    yield 1#跟return相同,只是函数只是暂时挂起,再次执行时接着以前执行
    yield 2
f = myFun()
next(f)
next(f)

#__main__ #if __name__ == '__main__' 主要是导入模块时防止该模块测试函数被调用 #__name__表明模块的名字,加上此句话代表该模块只被导入不执行;

相关文章
相关标签/搜索