Python基础----字典与文件读写操作的综合应用

#根据字典内元素筛选。
a=  [  {'name':'张三','age': 18 ,'address':'北京'},
       {'name':'张二','age': 48  ,'address':'上海'},
       {'name':'张大','age': 38 ,'address':'北京'}  ]
maxAgeZd=a[0]
i=0
while i<len(a):
    if a[i]['age']>maxAgeZd['age']:
        maxAgeZd = a[i]
    i+=1
print(maxAgeZd)

a=[2,3,4,1,10,9]
m=a[0]
n=a[0]
for i in range(len(a)):
    if a[i]>m:
        m=a[i]
    elif a[i]<n:
        n=a[i]
print(m,n)
#传送带。
a=[1,2,3,4,5,6]
j=0
while j<len(a)//2:
    i=0
    t=a[0]
    while i<len(a)-1:
        a[i]=a[i+1]
        i+=1
    a[len(a)-1]=t
    print(a)
    j+=1
#反向传送带。
a=[1,2,3,4,5]
t=a[len(a)-1]
i=len(a)-1
while i>0:
    a[i]=a[i-1]
    i-=1
a[0]=t
print(a)

def f(a,b):
    c=a+b
    return c
d=f(2,3)
print(d)
#LEGB法则的举例。
a=20
def f1():
    a=10
    b=1
    def f2():
        b=30
        c=40
        d=c+b
        print(b,c,d,max)
    f2()
    print(a,b)
f1()
print(a)
#函数返回值。
def fun(a,b):
    c=a+b
    d=a-b
    return c,d
x,y=fun(3,4)
print(x,y)
z=fun(5,7)
print(z)

a=[1,2,3]
def fun(a):
    a.append(12)
fun(a)
print(a)#可变类型的全局变量会被函数影响。
print(fun(a))#打印的是函数的返回值,而函数无返回值则返回None.
#用读写文件方式往字典内添加元素。
a={ '001':{'name':'张三','age': 18 ,'num':'001'},
      '002':{'name':'张二','age': 28 ,'num':'002'}}
class B():
    @staticmethod
    def write():
        f=open('a.txt','w')
        for x in a.keys():
            for k,v in a[x].items():
                f.write(k+':'+str(v))
                if k=='num':
                    f.write('\n')
                else:
                    f.write(',')
        f.close()
    @staticmethod
    def read():
        f=open('a.txt','r')
        c=f.readline()
        dzd={}
        while len(c)>0:
            items=c.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
            c = f.readline()
        f.close()
        print(dzd)
s=B()
s.write()
s.read()

a=[
    {'name':'张三','age': 18,'address':'北京','num':'001'},
    {'name':'张二','age': 48,'address':'上海','num':'002'},
    {'name':'张大','age': 38,'address':'山东','num':'003'}
]
#文件的增删改查:静态方法实现。
class StudentAdmin():
    @staticmethod
    def writeData(a):
        f=open('data.txt','w')
        f.write(str(a))
        f.close()
    @staticmethod
    def readData():
        f=open('data.txt','r')
        a=eval(f.read())
        print(a)
        f.close()
StudentAdmin.writeData(a)
StudentAdmin.readData()
while True:
    caozuo=int(input("----------\n增   请输入1\n删   请输入2\n改   请输入3\n查   请输入4\n关机  请输入0\n----------\n请输入操作:"))
    if caozuo==1:
        stuNum=input('请输入学号')
        jishu=0
        while jishu<len(a):
            if stuNum==a[jishu]['num']:
                print('该学号已经存在')
                break
            jishu+=1
        else:
            zd={}
            zd['name']=input('姓名')
            zd['age']=int(input('年龄'))
            zd['address']=input('地址')
            zd['num']=stuNum
            a.append(zd)
            print(a)
    elif caozuo==2:
        stuNum=input('请输入学号')
        jishu=0
        while jishu<len(a):
            if stuNum==a[jishu]['num']:
                del a[jishu]
                break
            jishu+=1
        else:
            print('不存在这个学号')
    elif caozuo==3:
        stuNum=input('请输入学号')
        jishu=0
        while jishu<len(a):
            if stuNum==a[jishu]['num']:
                a[jishu]['name']=input('姓名')
                a[jishu]['age']=input('年龄')
                a[jishu]['address']=input('地址')
                break
            jishu+=1
        else:
            print('不存在这个学号')
    elif caozuo==4:
        stuNum = input('请输入学号')
        jishu = 0
        while jishu < len(a):
            if stuNum == a[jishu]['num']:
                print(a[jishu])
                break
            jishu+=1
        else:
            print('不存在这个学号')
    elif caozuo==0:
        print("---关机,byebye了你呢")
        exit(0)
    else:
        print('请按提示,输入操作对应数字')

猜你喜欢

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