zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    (4)UIView和父子控件
    (2)第一个IOS程序
    svn本地目录结构for window
    (1)xcode基本设置和控制器等介绍
    git版本控制 for window安装和命令行使用
    linux虚拟机如何配置网卡信息(确保两台服务器通信)
    linux系统中firewalld防火墙管理工具firewallcmd(CLI命令行)
    linux系统中firewalld防火墙管理工具firewallconfig(GUI图形用户界面)
    linux系统中使用nmtui命令配置网络参数(图形用户界面)
    网卡是什么?
  • 原文地址:https://www.cnblogs.com/sussie/p/5900382.html
Copyright © 2011-2022 走看看