python基础---类的综合操作与练习题

#练习题。创建一个类:题目描述
class People():
tax=0
def init(self,name,age,work,salsry):
self.name=name
self.age=age
self.work=work
self.salsry=salsry
self.__energy=100
def working(self):
People.tax+=self.salsry*0.2
self.__energy=self.__energy-30 if self.__energy>30 else 0
def eat(self,money):
self.__energy=self.__energy+10 if self.__energy<90 else 100
self.salsry-=money
def sleep(self,energy):
self.__energy=self.__energy+60 if self.__energy<40 else 100
def say(self):
print(“我叫{},年龄是{},工作是{}。”.format(self.name,self.age,self.work))
print(self.__energy,self.salsry)
def get_energy(self):
return self.__energy
class Women(People):
def shopping(self,money):
self.salsry-=money
print(self.salsry)
class Men(People):
def say(self):
super().say()
print(“笑话”)
s=Women(‘zs’,13,‘df’,19999)
s.say()
s2=Men(‘zs’,13,‘df’,19999)
s2.say()

#练习题2.
题目描述
dic={ ‘001’:{‘name’:‘张三’,‘age’: 18 ,‘num’:‘001’},
‘002’:{‘name’:‘张二’,‘age’: 28 ,‘num’:‘002’}}
class FileAction():
@staticmethod
def writeDate():
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( )

#三角形输出。
class Paint():
def paintstar(self):
i=1
while i<6:#for i in range(1,6)
j=1
while j<=5-i:#for j in range(1,6-i)
print(’ ‘,end=’’)
j+=1
j=1
while j<=2i-1:#for j in range(1,2i)
if j1 or j2i-1 or i==5:#空心三角形的输入方法。
print("
",end=’’)
else:
print(" ",end=’’)
j+=1
print()
i+=1
s=Paint()
s.paintstar()

#类内对字典操作。
a={
‘001’:{‘name’:‘张三’,‘age’:‘18’,‘address’:‘北京’},
‘002’:{‘name’:‘张二’,‘age’:‘28’,‘address’:‘上海’},
‘003’:{‘name’:‘张大’,‘age’:‘38’,‘address’:‘北京’},
‘004’:{‘name’:‘张四’,‘age’:‘28’,‘address’:‘上海’},
‘005’:{‘name’:‘张六’,‘age’:‘38’,‘address’:‘北京’}
}
class StudentAdmin():
@staticmethod
def write():
f=open(‘a.txt’,‘w’)
f.write(str(a))
f.close()
@staticmethod
def read():
f=open(‘a.txt’,‘r’)
c=f.read()
f.close()
return eval©
s=StudentAdmin.write()
s=StudentAdmin.read()
while True:
bh=int(input(“请输入编号:”))
if bh1:
xh=input(“请输入学号:”)
if xh in a.keys():
print(“学号重复”)
continue#重复后重新走循环,再次输入编号。
else:
zd={}
zd[‘name’]=input(“请输入姓名:”)
zd[‘age’]=int(input(“请输入年龄:”))
zd[‘add’]=input(“请输入地址:”)
a[xh]=zd
print(a)
print(‘增加’)
elif bh
2:
xh = input(“请输入学号:”)
if xh not in a.keys():
print(“查无此人”)
continue
else:
print(“要删除的人是”,a[xh])
del a[xh]
print(a)
print(‘删除’)
elif bh3:
xh = input(“请输入学号:”)
if xh not in a.keys():
print(“查无此人”)
else:
a[xh][‘name’]=input(“请输入姓名:”)
a[xh][‘age’]=int(input(“请输入年龄:”))
a[xh][‘address’]=input(“请输入地址:”)
print(a)
print(“更改”)
elif bh
4:
xh = input(“请输入学号:”)
if xh not in a.keys():
print(“查无此人”)
continue
else:
print(a[xh])
print(“查找”)
elif bh==0:
StudentAdmin.write()#程序结束,先把添加修改后的值写入文件里
break#break跳出循环,exit()结束循环。

#魔术方法。
class A():
count=0
def init(self,name):
self.name=name
A.count+=1
def del(self):
A.count-=1
print(“删除”,self.name,“还剩%d个对象”%A.count)
a=A(“xz”)
b=A(“xl”)
del a#触发函数del的格式
del b

class Num():
def init(self,n):
self.n=n
def add(self, other):
return self.n+other.n
def sub(self, other):
return self.n-other.n
def mul(self, other):
return self.n*other.n

a=Num(4)
b=Num(7)
c=a+b#调用add函数的格式
d=a-b#调用sub函数的格式
e=a*b
print©
print(d)
print(e)

class Num():
def init(self,n):
self.n=n
def call(self, *args, *kwargs):
result=self.n
for a in args:
result
=a
for k,v in kwargs.items():
result+=v
return result
a=Num(2)
c=a(1,2,3,age=4,weight=90)#返回的result是最终相加的结果 1,2,3放入args,age=4,weight=90放入kwargs
print©

class Car():
obj=10
def new(cls, *args, **kwargs):
print(“here”)
return object.new(Car)
def init(self,name,cid):
print(‘hello’)
self.name=name
self.cid=cid
print(self.name,self.cid)
b=Car(‘bmw’,‘1230987’)
b.new(Car)
print(hasattr(Car,‘obj’))#判断类中是否有obj这个属性,返回布尔值
‘’’
class Car():
def new(cls, *args, **kwargs):
if not hasattr(Car,‘inst’):#如果Car里面没有inst属性
Car.inst=object.new(cls)#建立一个Car对象给inst属性。
return Car.inst#返回inst属性
def init(self, name, cid):
print(‘hello’)
self.name = name
self.cid = cid
a=Car(“zs”,‘1130’)
b=Car(‘as’,‘1230’)
print(a is b)
print(a.name)
print(b.name)#相同,以最后一次赋值为准。

猜你喜欢

转载自blog.csdn.net/zyf0111/article/details/88542757