程序媛

第一眼——python

  开始接触python是因为公司需要一个python开发人员,于是我赶鸭子上架就去了。接触下来,竟然也觉得python挺有意思。于是磨着领导给我在老男孩培训机构报了个班继续学,学了才知道我这个半路出家的小尼姑原来错过了这么多基础知识。记性不好就得写下来,所以从今天开始就先整理起来啦!

  由于之前已经接触过python,所以很多python里面的方法已经使用过,在这里就先不做详细的记录,只是把之前不清楚的概念和细节记录下来:    

  从指定解释器和编码格式开始的编程:
  
   #!/usr/bin/env python    ------指定python解释器,这样使用 ‘./文件名.py’ 就可以执行一个python文件啦
   # -*- coding:utf-8 -*-    ------指定文件的编码格式utf8(python2.7的默认是asc码,3.0默认是utf8:所以3.0就无需指定编码格式)

      pyc文件:

  py文件编译之后就会生成一个pyc文件,里面存储的是被编译后的字节码,这个文件可以直接执行或者被引入。                                                                 

  执行时,如果py、pyc的内容相同,直接执行pyc文件,如果内容不同,则重新编译py文件后再执行新编译好的pyc文件

  

     输入:明文: raw_input()        密文: getpass.getpass()

 

  比较:  

  值的比较有两种:1.“==”  内容的比较     2.内存地址的比较:“is”(对象地址的对比,身份运算)

  

     集合:

  集合包括:列表、元祖、字典、哈希表(set)。还有在前面的基础上进行开发的栈,双向队列等。

  单值:数字:(整形、长整形)模糊、浮点型、复数、布尔值。字符串

  

    赋值:修改列表内存地址重新开辟空间,因此str1 = str2,str1发生改变后指针指向新的地址,str2还指向原地址,因此str2不变

  变量与地址由此推论,发现了惊天的大秘密!

  修改一个变量的值,其实是在内存中开了一块新空间存储新内容,而之前的内容并不会在内存中被修改,亲自试验,有图有真相!

    顺便记下来: id(变量名)    可以查看变量地址

    

  那么问题来了,如果我们一直修改变量的值,内存不就被大量不用的数据霸占了么?

   答: 这个时候高级语言的优势就显示出来了,除c语言之外,其他语言的虚拟机都具有垃圾回收机制,不需要程序员手动释放空间

  这里还有个缓冲池的概念:   两个变量在相同的时候,会被放入类似cache的缓冲池中。当变量超过了缓冲池的范围,就会指向不同的地址。   数字缓冲范围:(-5,257)

  

  

  字符串拼接,万恶的加号(反复开辟内存空间,降低了效率),

  例如 “hello”+“dear”+“world”,其实内存是反复开辟空间,来实现‘+’的效果:

  “hello”

    “hello”+“dear”  

      “hello”+“dear”+“world”

      这个时候字符串格式化就发挥它的作用了:使用占位符:%s,%d ;format方法

   

  .strip()方法 

  去掉两侧的空格、换行符

  去掉左侧\右侧空格、换行符:.lstrip()\.rstrip()

  如果想去掉其他符号只需要  .strip('其他符号'),就好啦,哈哈,被我发现了吧!

  

  索引和切片:

  索引:[0]、[-1],起始、结尾。列表、元祖和字符串都通用。

      切片:截取字符串[a:b],截取a-b不包括b 。列表、元祖和字符串都通用。

  分割:.split(),针对字符串

 

  列表操作:  

  赋值:修改列表内存地址不变,因此lst1 = lst2,lst1发生改变后,lst2也会发生改变  

  追加:append  删除:del  聚合:‘_’.join(lstname)   包含:in  不包含:not in

  感觉这个操作很神奇,所以要记下来:shopping_list[::2] #从头到尾每隔一个取一个

 

  元祖:即不可修改的列表

  字典:键值对k,v;无序  

  循环:for ele in dict:只能对key循环       

  for k,v in dict.items():可以得到字典的k,v  

  获取所有key:dict.keys()  

  获取所有value:dict.values()  

  获取所有键值对:dict.items():仅在for循环中使用,得到元组   

  

 

  文件读写操作: 无法对文件中的某一行进行修改,简直差评。

  找到文件:路径 打开文件:file_obj(文件句柄)= file(文件路径,打开模式['r 只读','w 只写','a 追加',‘r+’读写]),   

               open() 和file一样用~~~

  读:  file_obj.read()#读所有  

      file_obj.readlines()#按行读所有,已经逐渐被下面这种方法取代啦,看下面:

      for line in file_obj:#按行读,避免全部读入内存  

   写:  file_obj.write()        

              file_obj.writeline()    

              文件关闭:file_obj.close()

  

  

  已经接触python几个月了,也写了很多脚本,但是真正系统的学了,才发现连最基本的知识还有很多漏洞。回头看看我整理的笔记,虽然外人看起来是一个点一个点的零散,但是却把我的大窟窿小眼睛都给补上啦。写完这一段我也把第一次的作业都完成了,真是磨人的小妖精,这几个作业写了好几天,但是好的开始是成功的一半,以此来敦促自己不断进步吧~fighting!!!

  

posted @ 2015-10-30 16:14  Eva_J  阅读(296)  评论(0)    收藏  举报