1.练习题一
#我的方法
class A(): def __init__(self,dic): self.dic=dic def write_data(self): f=open("Data.txt","w",encoding="utf-8") for v in self.dic.values(): v=str(v) v=v[1:-1] f.write(str(v)) f.write("\n") print(v) f.close() def read_data(self): f=open("Data.txt","r",encoding="utf-8") conts=f.readlines() contall={} for cont in conts: cont=cont[:-1] cont="{"+cont+"}" cont=eval(cont) contall[cont["num"]]=cont print(contall) f.close() dic={'001':{"name":"张三","age":23,"num":"001"},'002':{"name":"李四","age":25,"num":"002"}} a=A(dic) a.write_data() a.read_data()
#大牛的方法
dic={ '001':{'name':'张三','age': 18 ,'num':'001'}, '002':{'name':'张二','age': 28 ,'num':'002'}} class FileAction(): @staticmethod def writeDate(dic): f=open("data.txt",'w') for k,v in dic.items(): for k1,v1 in v.items(): f.write( (k1+":"+str(v1))) if k1=='num': f.write('\n') else: f.write(',') f.close() @staticmethod def readData( ): f=open('data.txt','r') line=f.readline() dzd={} while len(line)>0: items=line.strip().split(',') zd={} for item in items: s=item.split(':') if s[0]=='age': zd[s[0]]=int(s[1]) else: zd[s[0]] = s[1] if s[0]=='num': dzd[s[1]]=zd line=f.readline() print(dzd) f.close() FileAction.readData( )
2.练习题二
class People(): tax=0 def __init__(self,name,age,work,salary): self.name=name self.age=age self.work=work self.salary=salary self.__energy=100 def eat(self,money): self.__energy=self.__energy+10 if self.__energy<90 else 100 self.salary-=100 #减到0的话欠着 def working(self): People.tax+=self.salary*0.2 self.__energy=self.__energy-30 if self.__energy>30 else 0 def sleep(self): self.__energy=self.__energy+60 if self.__energy<40 else 100 def say(self): print(self.name) def get_energy(self): return self.__energy class Women(People): def shopping(self,money): self.salary-=money class Man(People): def say(self): super().say() print("笑话") one=Man("张三",18,"开发",18000) one.say() w=Women("李四",12,"开发",2000) w.shopping(9000) w.say()
3.三元运算符
a=7 a-=3 if a>8 else 2 #相当于a-=(3 if a>8 else 2) print(a) #5 a=8 a = a-3 if a>8 else 2 #a =( a-3 if a>8 else 2) print(a) 封装:私有属性不能被继承 继承(重载):有继承才能重载