Python学习日记-1

发布时间:2019-07-30 10:53:44编辑:auto阅读(1438)

     *使用input和raw_input都可以读取控制台的输入,但是input和raw_input在处理数字时是有区别的。

    1.当输入为纯数字时,Input返回的是数值类型,如int,float。raw_inpout返回的是字符串类型,string类型

    2.input会计算在字符串中的数字表达式,而raw_input不会。

     

    def input(prompt):
        return (eval(raw_input(prompt)))

    eval 函数的功能是将字符串生成语句执行。

     

    *当然使用sys.stdin进行文件读取的时候,使用raw_input而不是input。

    dict数据类型存入文件的读写操作源代码:

    1. dbfilename = 'people-file'  
    2.  
    3. ENDDB = 'enddb.' 
    4.  
    5. ENDREC = 'endrec.' 
    6.  
    7. RECSEP = '=>' 
    8.  
    9.   
    10.  
    11. def storeDbase(db, dbfilenamedbfilename=dbfilename):  #加载dict数据到文件
    12.  
    13.     "formatted dump of database to flat file" 
    14.  
    15.     dbfile=open(dbfilename,'w')  #文件打开函数open(),w代表写操作
    16.  
    17.     for key in db: 
    18.  
    19.         dbfile.write(key+'\n')  #文件写操作。不带换行符
    20.  
    21.         for(name,value) in db[key].items(): 
    22.  
    23.             dbfile.write(name+RECSEP+repr(value)+'\n') #repr函数代表取得字符串规范表示。反引号同样的作用
    24.  
    25.         dbfile.write(ENDREC+'\n') 
    26.  
    27.     dbfile.write(ENDDB+'\n') 
    28.  
    29.     dbfile.close() 
    30.  
    31.      
    32.  
    33. def loadDbase(dbfilenamedbfilename=dbfilename):  #读取文件数据到dict函数
    34.  
    35.     "parse data to reconstruct database" 
    36.  
    37.     dbfile = open(dbfilename)  #默认关键字为‘r’
    38.  
    39.     import sys 
    40.  
    41.     sys.stdin = dbfile  #sys.stdin 系统输入
    42.  
    43.     db = {}  #定义dict
    44.  
    45.     key = raw_input() 
    46.  
    47.     while key != ENDDB: 
    48.  
    49.         rec = {} 
    50.  
    51.         field = raw_input() 
    52.  
    53.         while field != ENDREC: 
    54.  
    55.             name,value = field.split(RECSEP)  #split函数以括号内符号分割字符串
    56.  
    57.             rec[name] = eval(value) 
    58.  
    59.             field = raw_input() 
    60.  
    61.         print rec 
    62.  
    63.         db[key] = rec 
    64.  
    65.         key = raw_input() 
    66.  
    67.     return db 
    68.  
    69.   
    70.  
    71. if __name__ == '__main__':  
    72.  
    73.     storeDbase(db) 
    74.  
    75.     db1=loadDbase() 
    76.  
    77.     db1['tom']['name']='Tom Tomson' 
    78.  
    79.     storeDbase(db1) 

     

关键字

上一篇: python:yield总结

下一篇: python install selen