• python学习笔记


    最近在学习python,使用过程中有个List和dict的声明比较特殊,在此备注下

    字典是可变对象,初始化一定不能放在for循环前面
    List声明必须放在程序开头(按道理List也是可变对象,但不知道为什么一定要在刚开始时就声明)
    代码中如果names=[]放在for循环里面, 其names.append()完后,print names永远只打印最后一个值;另外下面代码中dic={}的声明刚开始放在for循环前面,也会导致字典表的打印一直打印最后一次的内容
    以下代码是练习Vamei老师给的题目,返回文本中分数小于60的人名
    record.txt内容如下:
    # name, age, score
    
    tom, 12, 86
    
    Lee, 15, 99
    
    Lucy, 11, 58
    
    Joseph, 19, 56
    我自己研究完写了这么一段:
    def readFiles():
        L=[]
        names=[]
        f=open("E:\record.txt","r")
        for line in f:
            dic={}
            if line[0]=="#":
                li0=line[1:-1].split(",")
                #print li0
            else:
                li1=line[0:-1].split(",")
               #print li1
                dic["name"]=li1[0]
                dic["age"]=li1[1]
                dic["score"]=li1[2]
                L.append(dic)
        print L
        f.close()
        for i in range(len(L)):
            #print L[i]["score"]
            #names=[]
            if L[i]["score"]<"60":
                names.append(L[i]["name"])
                #print names
        print names
        
    

      vamei老师的教程不错,写的简单明了,适合新手入门。http://www.cnblogs.com/vamei/tag/Python/default.html?page=3

    为了完成练习中部置的功能,将上面的代码再加了一点功能,这里做个记录。

    def readFiles():
        L=[]
        names0=[]
        names1=[]
        names3=[]
        scoreSum=0
        f=open("E:\record.txt","r")
        for line in f:
            dic={}
            if line[0]=="#":
                li0=line[1:-1].split(",")
                #print li0
            else:
                li1=line[0:-1].split(",")
               #print li1
                dic["name"]=li1[0]
                dic["age"]=li1[1]
                dic["score"]=li1[2]
                L.append(dic)
        print L
        f.close()
        for i in range(len(L)):
            #print L[i]["score"]
            diccc={}
            if L[i]["score"]<"60":
                names0.append(L[i]["name"])
                #print names
            if L[i]["name"][0]=="L":
                names1.append(L[i]["name"])
            scoreSum=scoreSum+int(L[i]["score"])
            #names3.append(L[i]["name"].capitalize())
            diccc['name']=L[i]["name"].capitalize()
            diccc['age']=L[i]["age"]
            diccc['score']=L[i]["score"]
            names3.append(diccc)
    
        print names0
        print names1
        print scoreSum
        print names3
    
    print readFiles()
  • 相关阅读:
    %zsy %lqs 随感
    polynomial&generating function学习笔记
    PKUWC2020自闭记
    考前最后的感叹:CSP2019 Bless All! & AFO
    AFO
    NOI2019 Fe
    [十二省联考2019]骗分过样例 luoguP5285 loj#3050
    python异常处理,草稿
    python操作excel
    python网络编程(requests)
  • 原文地址:https://www.cnblogs.com/sussie/p/5900382.html
Copyright © 2020-2023  润新知